case, caseproto: Implement save and load.
[pspp] / src / data / caseproto.h
index b0f45c418c47aae8017b0469a5307cff6b9cd7f6..d675bfe1d7cb91a4706e51a44b208bbf7074641e 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2009 Free Software Foundation, Inc.
+   Copyright (C) 2009, 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
 #include <stdbool.h>
 #include <stddef.h>
 #include <stdlib.h>
-#include <data/value.h>
-#include <libpspp/cast.h>
-#include <libpspp/compiler.h>
+
+#include "data/value.h"
+#include "libpspp/cast.h"
+#include "libpspp/compiler.h"
+#include "libpspp/pxd.h"
 
 /* Case prototype.
 
@@ -68,6 +70,7 @@ struct caseproto
        the former must be regenerated. */
     size_t *long_strings;       /* Array of indexes of long string widths. */
     size_t n_long_strings;      /* Number of long string widths. */
+    struct pxd_object *pxd;     /* Saved copy. */
 
     /* Widths. */
     size_t n_widths;            /* Number of widths. */
@@ -134,6 +137,10 @@ bool caseproto_is_conformable (const struct caseproto *a,
 bool caseproto_equal (const struct caseproto *a, size_t a_start,
                       const struct caseproto *b, size_t b_start,
                       size_t n);
+
+/* Save and load. */
+struct pxd_object *caseproto_save (const struct caseproto *, struct pxd *);
+struct caseproto *caseproto_load (struct pxd_object *, const struct pxd *);
 \f
 /* Creation and destruction. */