summaryrefslogtreecommitdiff
path: root/src/lib/mdb.h
blob: 1a47a52e08f93208a3b65b044e033f1970f88ee7 (plain)
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
#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;

// Table operations
tabidx_t getkey(tablist_t *list, int id, char *key);
// TODO: Make these private
int delkey(tablist_t *list, int id, char *key);

// Batch Operations
int *getkeys(tablist_t *list, int id);  // TODO: Reimplement getkeys
int setkeys(tablist_t **list, int id, char *pair);
int delkeys(tablist_t *list, char *key);

// file operations
tablist_t *readdb(char *filename);
void writedb(char *filename, tablist_t *list);

#endif