1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#ifndef MDB_H
#define MDB_H
#define TABLEN 1024
typedef struct {
char *key;
int flag;
union {
char *str;
double num;
unsigned int boolean : 1;
} value;
} tabidx_t;
typedef struct {
int len;
tabidx_t tab[TABLEN];
} tablist_t;
/* getkeys: gets the provided keys from the provided id,
* if the id is set to -1, it will get the provided key from every document,
* if keys is NULL, it will get every key. */
tablist_t *getkeys(tablist_t *list, int id, char **keys, int len);
/* setkeys: sets the provided key-value pairs in the provided object,
* if the id is -1, it will set the provided pairs in every object. */
int setkeys(tablist_t **list, int id, char **pairs, int len);
/* delkeys: deletes the provided keys from the provided id,
* if the id is -1, it will delete the provided key from every document,
* if keys is NULL it, will delete every key. */
int delkeys(tablist_t *list, int id, char **keys, int len);
/* readdb: reads the provided db file,
* if the filename is NULL, it will return an empty table list,
* if the file format is invalid, it will return NULL. */
tablist_t *readdb(char *filename);
/* writedb: writes a table list to a database file. */
void writedb(char *filename, tablist_t *list);
#endif
|