casereader: New function casereader_translate_stateless().
[pspp-builds.git] / src / data / casereader.h
index deab5641661ec111d6751254f77c73ca77200550..c26657cf5d49a62d7870d0337117c2bfaf8a99d2 100644 (file)
@@ -77,10 +77,14 @@ const struct taint *casereader_get_taint (const struct casereader *);
 
 casenumber casereader_get_case_cnt (struct casereader *);
 casenumber casereader_count_cases (struct casereader *);
-size_t casereader_get_value_cnt (struct casereader *);
+void casereader_truncate (struct casereader *, casenumber);
+const struct caseproto *casereader_get_proto (const struct casereader *);
 
+casenumber casereader_advance (struct casereader *, casenumber);
 void casereader_transfer (struct casereader *, struct casewriter *);
 \f
+struct casereader *casereader_create_empty (const struct caseproto *);
+
 struct casereader *
 casereader_create_filter_func (struct casereader *,
                                bool (*include) (const struct ccase *,
@@ -105,12 +109,22 @@ casereader_create_counter (struct casereader *, casenumber *counter,
                            casenumber initial_value);
 
 struct casereader *
-casereader_create_translator (struct casereader *, size_t output_value_cnt,
+casereader_create_translator (struct casereader *,
+                              const struct caseproto *output_proto,
                               struct ccase *(*translate) (struct ccase *,
                                                           void *aux),
                               bool (*destroy) (void *aux),
                               void *aux);
 
+struct casereader *
+casereader_translate_stateless (struct casereader *,
+                                const struct caseproto *output_proto,
+                                struct ccase *(*translate) (struct ccase *,
+                                                            casenumber idx,
+                                                            const void *aux),
+                                bool (*destroy) (void *aux),
+                                void *aux);
+
 /* A function which creates a numberic value from an existing case */
 typedef double new_value_func (const struct ccase *, casenumber, void *);
 
@@ -139,5 +153,10 @@ casereader_create_append_rank (struct casereader *,
                               enum rank_error *err,
                               distinct_func *distinct_callback, void *aux);
 
+struct casereader *
+casereader_create_distinct (struct casereader *input,
+                           const struct variable *key,
+                           const struct variable *weight);
+
 
 #endif /* data/casereader.h */