Changed all the licence notices in all the files.
[pspp-builds.git] / src / sort.h
index 928a5170b1340caeeb105687020e2ad11db61136..347574c4d20ba5bd90f68625eb0159cd537e0d8a 100644 (file)
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA. */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA. */
 
 #if !sort_h
 #define sort_h 1
 
-#include "vfm.h"
-
-/* Sort direction. */
-enum sort_direction
-  {
-    SRT_ASCEND,                        /* A, B, C, ..., X, Y, Z. */
-    SRT_DESCEND                        /* Z, Y, X, ..., C, B, A. */
-  };
-
-/* SORT CASES input program. */
-struct sort_cases_pgm 
-  {
-    int ref_cnt;                        /* Reference count. */
-                        
-    struct variable **vars;             /* Variables to sort. */
-    enum sort_direction *dirs;          /* Sort directions. */
-    int var_cnt;                        /* Number of variables to sort. */
-
-    struct internal_sort *isrt;         /* Internal sort output. */
-    struct external_sort *xsrt;         /* External sort output. */
-  };
-
-/* SORT CASES programmatic interface. */
-struct sort_cases_pgm *parse_sort (void);
-int sort_cases (struct sort_cases_pgm *, int separate);
-void read_sort_output (struct sort_cases_pgm *,
-                       write_case_func *, write_case_data);
-void destroy_sort_cases_pgm (struct sort_cases_pgm *);
+#include <stddef.h>
+#include "bool.h"
+
+struct casereader;
+struct dictionary;
+struct variable;
+
+struct sort_criteria *sort_parse_criteria (const struct dictionary *,
+                                           struct variable ***, int *,
+                                           bool *saw_direction);
+void sort_destroy_criteria (struct sort_criteria *);
+
+struct casefile *sort_execute (struct casereader *,
+                               const struct sort_criteria *);
+int sort_active_file_in_place (const struct sort_criteria *);
+struct casefile *sort_active_file_to_casefile (const struct sort_criteria *);
 
 #endif /* !sort_h */