summaryrefslogtreecommitdiff
path: root/math/metadb.h
diff options
context:
space:
mode:
Diffstat (limited to 'math/metadb.h')
-rw-r--r--math/metadb.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/math/metadb.h b/math/metadb.h
new file mode 100644
index 0000000..d00f34a
--- /dev/null
+++ b/math/metadb.h
@@ -0,0 +1,68 @@
+/* $Id$ */
+
+/*
+ * Copyright (c) 2006 Dimitri A. Sokolyuk <demon@vhost.dyndns.org>
+ *
+ * Permission to use, copy, modify, and 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 _METADB_H_
+#define _METADB_H_
+
+#define INDEXDB "_index.db"
+#define METADB "_meta.db"
+#define SEARCHDB "_search.db"
+
+#define METADATA "meta.txt"
+#define SECTION "section.txt"
+
+enum mtype { M_SET, M_RECORD };
+enum sorder { TITLEI, TITLED, DATEI, DATED, AUTHORI, AUTHORD };
+
+struct meta {
+ enum mtype type;
+ time_t date;
+ unsigned int id;
+ char *dir;
+ char *title;
+ char *abstract;
+ char *author;
+ char *email;
+ char *html;
+ char *mws;
+ char *mw;
+ char *pdf;
+ char *code;
+ char *img;
+ char *language;
+ char *tokens;
+};
+
+__BEGIN_DECLS
+struct meta *openmeta(char *);
+void closemeta(struct meta *);
+
+int db_open(int);
+void db_close(void);
+void db_wipe(void);
+int db_add(struct meta *, int, int);
+size_t db_nelem(unsigned int);
+
+struct meta *db_get(struct meta *, unsigned int);
+struct meta *db_children(unsigned int, size_t *);
+struct meta *db_path(unsigned int, size_t *);
+struct meta *db_find(char *, size_t *);
+void db_sort(struct meta *, size_t, enum sorder);
+__END_DECLS
+
+#endif /* not _METADB_H_ */