summaryrefslogtreecommitdiff
path: root/src/include
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
parentb28d02537cd3c2e39dc4db9d5f53a59b694dda13 (diff)
Get started on public API
Diffstat (limited to 'src/include')
-rw-r--r--src/include/init.c25
-rw-r--r--src/include/xdbms.c31
-rw-r--r--src/include/xdbms.h10
3 files changed, 36 insertions, 30 deletions
diff --git a/src/include/init.c b/src/include/init.c
deleted file mode 100644
index 76f46a1..0000000
--- a/src/include/init.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "xdbms.h"
-#include "engine/engine.h"
-
-static tablist_t *db;
-
-int xdb_init(char *filename)
-{
- if (filename == NULL)
- fprintf(stderr, "Warning: running in-memory database\n");
- db = readdb(filename);
-
- tablist_t *tmp = getkeys(db, -1, NULL, 0);
- for (int i = 0; i < tmp[0].len; ++i) {
- printf("id: %d\n", i);
- for (int j = 0; tmp[0].tab[j].flag; ++j)
- printf("%s\n", tmp[0].tab[j].key);
- }
- free(tmp);
- delkeys(db, -1, NULL, 0);
- free(db);
- return 0;
-}
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;
+}
diff --git a/src/include/xdbms.h b/src/include/xdbms.h
index a18996d..af7d1dc 100644
--- a/src/include/xdbms.h
+++ b/src/include/xdbms.h
@@ -1,13 +1,13 @@
#ifndef XDBMS_H
#define XDBMS_H
-// init: intialize an XDBMS DB
+// xdb_init: intialize an XDBMS DB
int xdb_init(char *filename);
-// exec: execute a statement on an XDBMS DB
-char *exec(char *stmt);
+// xdb_stmt: execute a statement on an XDBMS DB
+char *xdb_stmt(char *stmt);
-// close: close an XDBMS DB
-int close();
+// xdb_close: close an XDBMS DB
+void xdb_close(void);
#endif