dataset: Before deleting variables, make sure new values are added.
[pspp] / src / data / dataset.h
index ce8b980d2e69c1cbc6207bd7c3ce8dc3b77a3c23..1938bd7f809130cd97d2b5889e80ec48455a346d 100644 (file)
 #include "data/transformations.h"
 
 struct casereader;
+struct casereader_translator_class;
 struct dataset;
 struct dictionary;
 struct session;
+struct transformation;
 \f
 struct dataset *dataset_create (struct session *, const char *);
 struct dataset *dataset_clone (struct dataset *, const char *);
@@ -78,22 +80,23 @@ void dataset_set_display (struct dataset *, enum dataset_display);
 \f
 /* Transformations. */
 
-void add_transformation (struct dataset *ds,
-                        trns_proc_func *, trns_free_func *, void *);
-void add_transformation_with_finalizer (struct dataset *ds,
-                                       trns_finalize_func *,
-                                        trns_proc_func *,
-                                        trns_free_func *, void *);
-size_t next_transformation (const struct dataset *ds);
+void add_transformation (struct dataset *ds, const struct trns_class *, void *);
 
 bool proc_cancel_all_transformations (struct dataset *ds);
-struct trns_chain *proc_capture_transformations (struct dataset *ds);
+void proc_push_transformations (struct dataset *);
+void proc_pop_transformations (struct dataset *, struct trns_chain *);
+bool proc_has_transformations (const struct dataset *);
 
 void proc_start_temporary_transformations (struct dataset *ds);
 bool proc_in_temporary_transformations (const struct dataset *ds);
 bool proc_make_temporary_transformations_permanent (struct dataset *ds);
 bool proc_cancel_temporary_transformations (struct dataset *ds);
 struct variable *add_permanent_ordering_transformation (struct dataset *);
+
+bool dataset_transform_source (struct dataset *,
+                               const struct casereader_translator_class *,
+                               void *aux);
+void dataset_delete_vars (struct dataset *, struct variable **, size_t n);
 \f
 /* Procedures. */
 
@@ -109,6 +112,10 @@ bool proc_commit (struct dataset *);
 
 bool dataset_end_of_command (struct dataset *);
 \f
+struct measure_guesser *measure_guesser_create (struct dataset *);
+void measure_guesser_run (struct measure_guesser *, const struct casereader *);
+void measure_guesser_destroy (struct measure_guesser *);
+\f
 const struct ccase *lagged_case (const struct dataset *ds, int n_before);
 void dataset_need_lag (struct dataset *ds, int n_before);
 \f