X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fvfm.h;h=d1ef883080fbc054501a0508a11f15c998d96e6f;hb=7dc203206d3f3172474a4ec0f4dcab5364f4ce26;hp=5d9403bbdea43f8edaf61741e585c9dc3733974c;hpb=b9e28aa5614a079548c616bcf97aa804024ad647;p=pspp diff --git a/src/vfm.h b/src/vfm.h index 5d9403bbde..d1ef883080 100644 --- a/src/vfm.h +++ b/src/vfm.h @@ -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 *); };