aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/database.h9
-rw-r--r--include/storage.h11
-rw-r--r--include/str.h1
-rw-r--r--include/tags.h22
4 files changed, 19 insertions, 24 deletions
diff --git a/include/database.h b/include/database.h
index 2b1c91a..339b48b 100644
--- a/include/database.h
+++ b/include/database.h
@@ -8,6 +8,7 @@ typedef struct database{
char name[32];
ltable *lfiles, *ltags;
htable *hfiles, *htags;
+ htable *fcount, *tcount;
mtable *map;
} database;
@@ -18,11 +19,17 @@ database *loadDatabase(const char* path);
int storeDatabase(database *db, const char *path);
+uint64_t addFile(database *db, char *file);
+
+uint64_t addTag(database *db, char *tag);
+
int addFileTag(database *db, char *file, char *tag);
int addFileTags(database *db, char *file, int ntags, ...);
-int searchTag(database *db, char *tag, uint64_t *rl);
+int searchTag(database *db, char *tag, uint64_t n, uint64_t **r, uint64_t *rl);
+
+int searchFile(database *db, char *file, uint64_t n, uint64_t **r, uint64_t *rl);
void printDatabase(database *db);
diff --git a/include/storage.h b/include/storage.h
index 82ea55a..bef740a 100644
--- a/include/storage.h
+++ b/include/storage.h
@@ -3,6 +3,17 @@
#include "db.h"
+/* (From tags.h)
+ tags are stored in a big table (or their hashes are) ordered
+ by alphabetical order
+ tags can have namespaces which are a special tag that starts
+ with a ':'
+ all tags in a namespace are located between two occurrences
+ of the namespace within the list,
+ e.g [":people", "sam hyde", "hitler", ":people"]
+ maybe namespaces use another hashing function to prevent
+ collisions because of the lack of space because of the ':'
+*/
/*
tags are stored in a big table (or their hashes are) ordered
diff --git a/include/str.h b/include/str.h
index de119f8..999f1e3 100644
--- a/include/str.h
+++ b/include/str.h
@@ -14,5 +14,4 @@ char *normalizeStrLimit(const char *str, uint32_t *l, uint32_t limit);
ssize_t strInTags(const char *tags, int n, const char *ndl, int m, char sep);
-
#endif
diff --git a/include/tags.h b/include/tags.h
deleted file mode 100644
index 0b7f5a9..0000000
--- a/include/tags.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef TAGS_H
-#define TAGS_H
-
-/*
- tags are stored in a big table (or their hashes are) ordered
- by alphabetical order
- tags can have namespaces which are a special tag that starts
- with a ':'
- all tags in a namespace are located between two occurrences
- of the namespace within the list,
- e.g [":people", "sam hyde", "hitler", ":people"]
- maybe namespaces use another hashing function to prevent
- collisions because of the lack of space because of the ':'
-*/
-
-#define MAXTAGS 4094
-
-void insertTag(char **tags, char *tag){
- if()
-}
-
-#endif \ No newline at end of file