treewide: Replace <name>_cnt by n_<name>s and <name>_cap by allocated_<name>.
[pspp] / src / data / casereader.h
index c26657cf5d49a62d7870d0337117c2bfaf8a99d2..680e669928331a6ffccea5f72c4392e499f3b825 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2007, 2009 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009, 2010, 2011, 2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
    A casereader abstracts interfaces through which cases may be
    read.  A casereader may be a front-end for a system file, a
-   portable file, the active file in a data set, or anything else
-   on which a casereader interface has been overlaid.  Casereader
-   layering, in which a casereader acts as a filter or translator
-   on top of another casereader, is also supported.
+   portable file, a dataset, or anything else on which a
+   casereader interface has been overlaid.  Casereader layering,
+   in which a casereader acts as a filter or translator on top of
+   another casereader, is also supported.
 
    There is no central interface for obtaining casereaders: a
    casereader for reading a system file is obtained from the
 #ifndef DATA_CASEREADER_H
 #define DATA_CASEREADER_H 1
 
-#include <libpspp/compiler.h>
-#include <data/case.h>
-#include <data/missing-values.h>
+#include "libpspp/compiler.h"
+#include "data/case.h"
+#include "data/missing-values.h"
 
 struct dictionary;
 struct casereader;
 struct casewriter;
+struct subcase;
 
 struct ccase *casereader_read (struct casereader *);
 bool casereader_destroy (struct casereader *);
 
 struct casereader *casereader_clone (const struct casereader *);
-void casereader_split (struct casereader *,
-                       struct casereader **, struct casereader **);
 struct casereader *casereader_rename (struct casereader *);
 void casereader_swap (struct casereader *, struct casereader *);
 
@@ -75,8 +74,8 @@ bool casereader_error (const struct casereader *);
 void casereader_force_error (struct casereader *);
 const struct taint *casereader_get_taint (const struct casereader *);
 
-casenumber casereader_get_case_cnt (struct casereader *);
-casenumber casereader_count_cases (struct casereader *);
+casenumber casereader_get_n_cases (struct casereader *);
+casenumber casereader_count_cases (const struct casereader *);
 void casereader_truncate (struct casereader *, casenumber);
 const struct caseproto *casereader_get_proto (const struct casereader *);
 
@@ -99,7 +98,7 @@ casereader_create_filter_weight (struct casereader *,
                                  struct casewriter *exclude);
 struct casereader *
 casereader_create_filter_missing (struct casereader *,
-                                  const struct variable **vars, size_t var_cnt,
+                                  const struct variable *const *vars, size_t n_vars,
                                   enum mv_class,
                                  casenumber *n_missing,
                                   struct casewriter *exclude);
@@ -125,6 +124,13 @@ casereader_translate_stateless (struct casereader *,
                                 bool (*destroy) (void *aux),
                                 void *aux);
 
+struct casereader *casereader_project (struct casereader *,
+                                       const struct subcase *);
+struct casereader *casereader_project_1 (struct casereader *, int column);
+struct casereader *casereader_select (struct casereader *,
+                                      casenumber first, casenumber last,
+                                      casenumber by);
+
 /* A function which creates a numberic value from an existing case */
 typedef double new_value_func (const struct ccase *, casenumber, void *);