summaryrefslogtreecommitdiff
path: root/src/include/xdbms.c
diff options
context:
space:
mode:
authorbpc2003 <wpesfriendnva@gmail.com>2025-05-23 22:19:18 -0400
committerbpc2003 <wpesfriendnva@gmail.com>2025-05-23 22:19:18 -0400
commit5f5c0ec887a4cd7640261250d638300a3ea90d02 (patch)
tree81a0af3a98183cc053fac365a67964a057ad50d7 /src/include/xdbms.c
parentb28d02537cd3c2e39dc4db9d5f53a59b694dda13 (diff)
Get started on public API
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;
+}