summaryrefslogtreecommitdiff
path: root/src/include/xdbms.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/xdbms.c')
-rw-r--r--src/include/xdbms.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/include/xdbms.c b/src/include/xdbms.c
new file mode 100644
index 0000000..eb6193e
--- /dev/null
+++ b/src/include/xdbms.c
@@ -0,0 +1,31 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "engine/engine.h"
+#include "xml/xml.h"
+#include "xdbms.h"
+
+static tablist_t *db;
+
+int xdb_init(char *filename) {
+ if (filename == NULL)
+ fprintf(stderr, "Warning: running in-memory database\n");
+ db = readdb(filename);
+ if (db == NULL) {
+ fprintf(stderr, "Error: Invalid DB file\n");
+ return 1;
+ }
+ return 0;
+}
+
+void xdb_close(void) {
+ delkeys(db, -1, NULL, 0);
+ free(db);
+}
+
+char *xdb_stmt(char *stmt) {
+ map_t *decoded = decode(stmt);
+ printf("%s\n", encode(decoded));
+ freemap(decoded);
+ return NULL;
+}