summaryrefslogtreecommitdiff
path: root/src/include/mdb.h
diff options
context:
space:
mode:
authorbpc2003 <wpesfriendnva@gmail.com>2025-03-10 11:15:04 -0400
committerbpc2003 <wpesfriendnva@gmail.com>2025-03-10 11:15:04 -0400
commit7c8e83f655e41b11e970fd0abad5a96a3fb73e47 (patch)
tree057e9c4dd571a4f6f4738b51d53641fcb20ea4dc /src/include/mdb.h
parent9b568eba7d0652e9f9457958f16dc35702c4a950 (diff)
Consolidated each header into single header
Diffstat (limited to 'src/include/mdb.h')
-rw-r--r--src/include/mdb.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/include/mdb.h b/src/include/mdb.h
new file mode 100644
index 0000000..6e6fca9
--- /dev/null
+++ b/src/include/mdb.h
@@ -0,0 +1,48 @@
+#ifndef FILEOPS_H
+#define FILEOPS_H
+
+#define TABLEN 1024
+
+extern int blen;
+
+enum btype {
+ BEGIN = 1,
+ END, PAIR,
+
+ ERROR
+};
+
+struct byte {
+ enum btype type;
+ char *value;
+};
+
+struct byte *parse(unsigned char *buf);
+
+union value {
+ char *str;
+ double num;
+ unsigned int b : 1;
+};
+
+struct keytab {
+ char *key;
+ int flag;
+ union value v;
+};
+
+struct keytablist {
+ struct keytab tab[TABLEN];
+};
+
+int *getkeys(struct keytablist *list, int id);
+struct keytab getkey(struct keytablist *list, int id, char *key);
+void setkey(struct keytablist **list, int *len, int id, char *pair);
+void delkey(struct keytablist *list, int id, char *key);
+
+// TODO: integrate every header into single file
+// TODO: make readdb return struct keytab list*
+unsigned char *readdb(char *filename);
+void writedb(char *filename, struct keytablist *list, int len);
+
+#endif