aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSoikk2022-08-13 18:49:30 +0200
committerSoikk2022-08-13 18:49:30 +0200
commit4b721332d570f53719894af922c22b7cba146b18 (patch)
tree9c5b8f75345310cd7f2479fca0ebaf20c7ca47dc /include
parent32dd785f881cf3ba6c1c6806cd3af3cbf56437c4 (diff)
downloadsoikk-DB-4b721332d570f53719894af922c22b7cba146b18.tar.xz
soikk-DB-4b721332d570f53719894af922c22b7cba146b18.tar.zst
Added primitive repl, delete functions for database and remove tag from file function.
Diffstat (limited to 'include')
-rw-r--r--include/database.h14
-rw-r--r--include/db.h6
-rw-r--r--include/parser.h26
-rw-r--r--include/repl.h6
-rw-r--r--include/storage.h8
5 files changed, 46 insertions, 14 deletions
diff --git a/include/database.h b/include/database.h
index bd60e72..d5ad8e9 100644
--- a/include/database.h
+++ b/include/database.h
@@ -15,19 +15,25 @@ typedef struct database{
database *newDatabase(char *name);
+int freeDatabase(database **db);
+
+int deleteDatabase(database **db);
+
uint64_t addFile(database *db, char *file);
uint64_t addTag(database *db, char *tag);
+int removeFile(database *db, char *file);
+
+int removeTag(database *db, char *tag);
+
int addFileTag(database *db, char *file, char *tag);
int addFileTags(database *db, char *file, int ntags, ...);
int addTagFiles(database *db, char *tag, int nfiles, ...);
-int removeFile(database *db, char *file);
-
-int removeTag(database *db, char *tag);
+int removeFileTag(database *db, char *file, char *tag);
int searchFile(database *db, char *file, uint64_t n, uint64_t **r, uint64_t *rl);
@@ -39,8 +45,6 @@ database *loadDatabase(const char* path);
void printDatabase(database *db);
-void debugAVLtree(node *n);
-
void debugDatabase(database *db);
#endif
diff --git a/include/db.h b/include/db.h
index ccdfc11..2571d02 100644
--- a/include/db.h
+++ b/include/db.h
@@ -13,11 +13,11 @@
#include "strnatcmp.h"
#include "crc64.h"
-#include "repl.h"
-#include "parser.h"
+#include "str.h"
#include "storage.h"
#include "database.h"
-#include "str.h"
+#include "repl.h"
+#include "parser.h"
#include "bm.h"
#endif
diff --git a/include/parser.h b/include/parser.h
index 2e46967..6b68b48 100644
--- a/include/parser.h
+++ b/include/parser.h
@@ -4,14 +4,34 @@
#include "db.h"
-typedef enum {
+#define NKEYWORDS 16
+#define EXIT_CODE 1
+
+typedef enum{
+ COMMAND_EXIT, COMMAND_DEBUG,
+ COMMAND_CREATE, COMMAND_DELETE, COMMAND_OPEN, COMMAND_SAVE, COMMAND_CLOSE,
+ COMMAND_ADDF, COMMAND_ADDT, COMMAND_DELETEF, COMMAND_DELETET,
+ COMMAND_TAG, COMMAND_REMOVE,
+ COMMAND_SHOW, COMMAND_SHOWT, COMMAND_SHOWF,
+} COMMANDS;
+
+typedef enum{
META_COMMAND_SUCCESS,
META_COMMAND_FAIL,
} metaCommandStatus;
+typedef struct{
+ uint64_t argc;
+ char **argv;
+} argList;
+
+
+argList *newArgList(void);
+
+argList *splitInput(inputBuffer *in);
int handleMetaCommand(inputBuffer *in);
-int handleInput(inputBuffer *in);
+int handleInput(argList *args, database **db);
-#endif \ No newline at end of file
+#endif
diff --git a/include/repl.h b/include/repl.h
index 26abe9b..f9f0510 100644
--- a/include/repl.h
+++ b/include/repl.h
@@ -4,9 +4,9 @@
#include "db.h"
-typedef struct {
+typedef struct{
char *buffer;
- ssize_t inputSize;
+ int64_t inputSize;
} inputBuffer;
@@ -16,6 +16,6 @@ void freeInputBuffer(inputBuffer *in);
void getInput(inputBuffer *in);
-void prompt(void);
+void prompt(database *db);
#endif
diff --git a/include/storage.h b/include/storage.h
index 8edf8b0..e46c9a8 100644
--- a/include/storage.h
+++ b/include/storage.h
@@ -92,6 +92,8 @@ typedef node* tree;
ltable *newLtable(uint64_t size);
+int deleteLtable(ltable **lt);
+
int insertLtable(ltable *lt, char *str);
int removeLtable(ltable *lt, char *str);
@@ -106,6 +108,8 @@ ltable *loadLtable(FILE *fp);
ctable *newCtable(uint64_t size);
+int deleteCtable(ctable **ct);
+
int insertCtable(ctable *ct, uint64_t n);
int removeCtable(ctable *ct, uint64_t n);
@@ -120,6 +124,8 @@ ctable *loadCtable(FILE *fp);
mtable *newMtable(uint64_t size);
+int deleteMtable(mtable **mt);
+
int insertMtable(mtable *mt, relation r);
int removeMtable(mtable *mt, relation r);
@@ -138,6 +144,8 @@ mtable *loadMtable(FILE *fp);
node *newNode(uint64_t h, uint64_t i);
+int deleteTree(tree *root);
+
node *insertNode(node *r, uint64_t h, uint64_t i);
node *removeNode(node *r, uint64_t h);