summaryrefslogtreecommitdiff
path: root/sfile.h
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <ssp@src.gnome.org>2004-11-15 23:15:59 +0000
committerSøren Sandmann Pedersen <ssp@src.gnome.org>2004-11-15 23:15:59 +0000
commitb40d94ca41bbe47c84174f4bcf0a5ef542881637 (patch)
tree933c7ca56f0d13782d6cf0305b1e75ae632125e3 /sfile.h
parent6ef81657815892305c8263b33e30f90f2c110bc3 (diff)
*** empty log message ***
Diffstat (limited to 'sfile.h')
-rw-r--r--sfile.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/sfile.h b/sfile.h
new file mode 100644
index 0000000..9f2fd58
--- /dev/null
+++ b/sfile.h
@@ -0,0 +1,58 @@
+typedef struct SFormat SFormat;
+typedef struct SFile SFile;
+
+/* - Describing Types - */
+
+SFormat * sdesc_new_record (const char *name,
+ SFormat *content,
+ ...);
+SFormat * sdesc_new_list (const char *name,
+ SFormat *content);
+SFormat * sdesc_new_pointer (const char *name);
+SFormat * sdesc_new_integer (const char *name);
+SFormat * sdesc_new_string (const char *name);
+
+/* - Reading - */
+SFile * sfile_load (const char *filename,
+ SFormat *format,
+ GError **err);
+void sfile_begin_get_record (SFile *file);
+int sfile_begin_get_list (SFile *file);
+void sfile_get_pointer (SFile *file,
+ gpointer *pointer);
+void sfile_get_integer (SFile *file,
+ int *integer);
+void sfile_get_string (SFile *file,
+ char **string);
+void sfile_end_get (SFile *file,
+ gpointer object);
+
+#if 0
+/* incremental loading (worth considering at least) */
+SFileLoader *sfile_loader_new (SFormat *format);
+void sfile_loader_add_text (SFileLoader *loader,
+ const char *text,
+ int len);
+SFile * sfile_loader_finish (SFileLoader *loader,
+ GError **err);
+void sfile_loader_free (SFileLoader *loader);
+#endif
+
+/* - Writing - */
+SFile * sfile_new (SFormat *format);
+void sfile_begin_add_record (SFile *file,
+ gpointer id);
+void sfile_begin_add_list (SFile *file,
+ gpointer id);
+void sfile_end_add (SFile *file);
+void sfile_add_string (SFile *file,
+ const char *string);
+void sfile_add_integer (SFile *file,
+ int integer);
+void sfile_add_pointer (SFile *file,
+ gpointer pointer);
+gboolean sfile_save (SFile *sfile,
+ const char *filename,
+ GError **err);
+
+