struct variable;
+/* A count of cases or the index of a case within a collection of
+ them. */
+#define CASENUMBER_MAX LONG_MAX
+typedef long int casenumber;
+
/* Opaque structure that represents a case. Use accessor
functions instead of accessing any members directly. Use
case_move() or case_clone() instead of copying. */
-struct ccase
+struct ccase
{
struct case_data *case_data; /* Actual data. */
};
size_t case_get_value_cnt (const struct ccase *);
-void case_resize (struct ccase *, size_t new_value_cnt);
+void case_resize (struct ccase *, size_t new_cnt);
void case_swap (struct ccase *, struct ccase *);
bool case_try_create (struct ccase *, size_t value_cnt);
bool case_try_clone (struct ccase *, const struct ccase *);
void case_copy (struct ccase *dst, size_t dst_idx,
- const struct ccase *src, size_t src_idx,
- size_t cnt);
+ const struct ccase *src, size_t src_idx,
+ size_t cnt);
-void case_to_values (const struct ccase *, union value *, size_t);
-void case_from_values (struct ccase *,
- const union value *, size_t);
+void case_copy_out (const struct ccase *,
+ size_t start_idx, union value *, size_t value_cnt);
+void case_copy_in (struct ccase *,
+ size_t start_idx, const union value *, size_t value_cnt);
const union value *case_data (const struct ccase *, const struct variable *);
double case_num (const struct ccase *, const struct variable *);
union value *case_data_rw_idx (struct ccase *, size_t idx);
int case_compare (const struct ccase *, const struct ccase *,
- struct variable *const *, size_t var_cnt);
+ const struct variable *const *, size_t var_cnt);
int case_compare_2dict (const struct ccase *, const struct ccase *,
- struct variable *const *, struct variable *const *,
+ const struct variable *const *,
+ const struct variable *const *,
size_t var_cnt);
const union value *case_data_all (const struct ccase *);