X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fvfm.h;h=b35a0abdda4d338a223f958bbde9e6f9291c098d;hb=c0240125a4702cccce5d4ea1d58d9e7f3d739dff;hp=5d9403bbdea43f8edaf61741e585c9dc3733974c;hpb=b9e28aa5614a079548c616bcf97aa804024ad647;p=pspp diff --git a/src/vfm.h b/src/vfm.h index 5d9403bbde..b35a0abdda 100644 --- a/src/vfm.h +++ b/src/vfm.h @@ -14,8 +14,8 @@ 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 !vfm_h #define vfm_h 1 @@ -36,7 +36,6 @@ extern struct case_source *vfm_source; struct case_source { const struct case_source_class *class; /* Class. */ - size_t value_cnt; /* Number of `union value's in case. */ void *aux; /* Auxiliary data. */ }; @@ -69,13 +68,15 @@ extern const struct case_source_class sort_source_class; struct dictionary; struct case_source *create_case_source (const struct case_source_class *, - const struct dictionary *, void *); +void free_case_source (struct case_source *); + int case_source_is_complex (const struct case_source *); int case_source_is_class (const struct case_source *, const struct case_source_class *); struct casefile *storage_source_get_casefile (struct case_source *); +struct case_source *storage_source_create (struct casefile *); /* The replacement active file, to which cases are written. */ extern struct case_sink *vfm_sink; @@ -85,11 +86,6 @@ struct case_sink { const struct case_sink_class *class; /* Class. */ void *aux; /* Auxiliary data. */ - - /* Cases written to a case sink belong to a dictionary, but - their data is compacted to drop scratch variables. */ - const struct dictionary *dict; /* Dictionary for cases. */ - int *idx_to_fv; /* `dict' index -> case `data' index. */ size_t value_cnt; /* Number of `union value's in case. */ }; @@ -107,9 +103,10 @@ struct case_sink_class /* Closes and destroys the sink. */ void (*destroy) (struct case_sink *); - /* Closes and destroys the sink and returns a source that can - read back the cases that were written, perhaps transformed - in some way. */ + /* Closes the sink and returns a source that can read back + the cases that were written, perhaps transformed in some + way. The sink must still be separately destroyed by + calling destroy(). */ struct case_source *(*make_source) (struct case_sink *); };