bglibs
bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/cdb.h
1#ifndef CDB_H
2#define CDB_H
3
4#include "iobuf.h"
5#include "sysdeps.h"
6
7struct str;
8
9#define CDB_HASHSTART 5381
10extern uint32 cdb_hashadd(uint32,unsigned char);
11extern uint32 cdb_hash(const char *,unsigned int);
12
13struct cdb {
14 char *map; /* 0 if no map is available */
15 int fd;
16 uint32 size; /* initialized if map is nonzero */
17 uint32 loop; /* number of hash slots searched under this key */
18 uint32 khash; /* initialized if loop is nonzero */
19 uint32 kpos; /* initialized if loop is nonzero */
20 uint32 hpos; /* initialized if loop is nonzero */
21 uint32 hslots; /* initialized if loop is nonzero */
22 uint32 dpos; /* initialized if cdb_findnext() returns 1 */
23 uint32 dlen; /* initialized if cdb_findnext() returns 1 */
24
25 uint32 nextrec; /* initialized if cdb_{first,next}rec() returns 1 */
26 /* (uint32)-1 means no next record */
27};
28
29extern void cdb_free(struct cdb *);
30extern void cdb_init(struct cdb *,int fd);
31
32extern int cdb_read(struct cdb *,unsigned char *,unsigned int,uint32);
33
34extern void cdb_findstart(struct cdb *);
35extern int cdb_findnext(struct cdb *,const char *,unsigned int);
36extern int cdb_find(struct cdb *,const char *,unsigned int);
37
38#define cdb_datapos(c) ((c)->dpos)
39#define cdb_datalen(c) ((c)->dlen)
40
41extern int cdb_get(struct cdb*, const struct str* key, struct str* data);
42extern int cdb_getnext(struct cdb*, const struct str* key, struct str* data);
43
44struct cdb_hp;
45struct cdb_hplist;
46
47struct cdb_make {
48 unsigned char final[2048];
49 uint32 count[256];
50 uint32 start[256];
51 struct cdb_hplist *head;
52 struct cdb_hp *split; /* includes space for hash */
53 struct cdb_hp *hash;
54 uint32 numentries;
55 obuf b;
56 uint32 pos;
57 int fd;
58} ;
59
60extern int cdb_make_start(struct cdb_make *,int);
61extern int cdb_make_addbegin(struct cdb_make *,unsigned int,unsigned int);
62extern int cdb_make_addend(struct cdb_make *,unsigned int,unsigned int,uint32);
63extern int cdb_make_add(struct cdb_make *,const char *,unsigned int,const char *,unsigned int);
64extern int cdb_make_finish(struct cdb_make *);
65
66#endif
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/cdb.h:47
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/cdb.h:13
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/obuf.h:22
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/str.h:31