From bcf933fb9e8cc327a0c095b3456360a3ebf9fe6e Mon Sep 17 00:00:00 2001
From: Přemysl Janouch
Date: Thu, 9 May 2013 00:49:45 +0200
Subject: Move dictionary generation to its own module
---
src/generator.h | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)
create mode 100644 src/generator.h
(limited to 'src/generator.h')
diff --git a/src/generator.h b/src/generator.h
new file mode 100644
index 0000000..bc0b09b
--- /dev/null
+++ b/src/generator.h
@@ -0,0 +1,56 @@
+/*
+ * generator.h: dictionary generator
+ *
+ * Nothing fancy. Just something moved out off the `stardict' test to be
+ * conveniently reused by the included tools.
+ *
+ * Copyright (c) 2013, Přemysl Janouch
+ * All rights reserved.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ */
+
+#ifndef GENERATOR_H
+#define GENERATOR_H
+
+/** Simplifies the task of creating a StarDict dictionary. */
+typedef struct generator Generator;
+
+struct generator
+{
+ StardictInfo * info; //!< Dictionary information, fill it in
+
+ goffset entry_mark; //!< Marks the entry's start offset
+
+ GFileOutputStream * dict_stream; //!< Dictionary stream
+ GDataOutputStream * dict_data; //!< Dictionary data stream wrapper
+
+ GFileOutputStream * idx_stream; //!< Index file stream
+ GDataOutputStream * idx_data; //!< Index file data stream wrapper
+};
+
+Generator *generator_new (const gchar *base, GError **error);
+gboolean generator_finish (Generator *self, GError **error);
+void generator_free (Generator *self);
+
+void generator_begin_entry (Generator *self);
+gboolean generator_write_type (Generator *self, gchar type, GError **error);
+gboolean generator_write_raw (Generator *self,
+ gpointer data, gsize data_size, gboolean mark_end, GError **error);
+gboolean generator_write_string (Generator *self,
+ const gchar *s, gboolean mark_end, GError **error);
+gboolean generator_finish_entry (Generator *self,
+ const gchar *word, GError **error);
+
+#endif /* ! GENERATOR_H */
--
cgit v1.2.3-70-g09d2