46 const int pagesize = 4096;
48 GDBM_FILE db = gdbm_open((
char *) path, pagesize, GDBM_WRCREAT, 00600, NULL);
52 db = gdbm_open((
char *) path, pagesize, GDBM_READER, 00600, NULL);
64 if (!store || (klen > INT_MAX))
73 dkey.dptr = (
char *) key;
75 data = gdbm_fetch(db, dkey);
93 void *value,
size_t vlen)
95 if (!store || (klen > INT_MAX) || (vlen > INT_MAX))
99 datum databuf = { 0 };
102 GDBM_FILE db = store;
104 dkey.dptr = (
char *) key;
107 databuf.dsize = vlen;
108 databuf.dptr = value;
110 return gdbm_store(db, dkey, databuf, GDBM_REPLACE);
118 if (!store || (klen > INT_MAX))
124 GDBM_FILE db = store;
126 dkey.dptr = (
char *) key;
129 return gdbm_delete(db, dkey);
static void store_gdbm_close(StoreHandle **ptr)
Close a Store connection - Implements StoreOps::close() -.
static int store_gdbm_delete_record(StoreHandle *store, const char *key, size_t klen)
Delete a record from the Store - Implements StoreOps::delete_record() -.
static void * store_gdbm_fetch(StoreHandle *store, const char *key, size_t klen, size_t *vlen)
Fetch a Value from the Store - Implements StoreOps::fetch() -.
static void store_gdbm_free(StoreHandle *store, void **ptr)
Free a Value returned by fetch() - Implements StoreOps::free() -.
static StoreHandle * store_gdbm_open(const char *path)
Open a connection to a Store - Implements StoreOps::open() -.
static int store_gdbm_store(StoreHandle *store, const char *key, size_t klen, void *value, size_t vlen)
Write a Value to the Store - Implements StoreOps::store() -.
static const char * store_gdbm_version(void)
Get a Store version string - Implements StoreOps::version() -.
Convenience wrapper for the library headers.
void StoreHandle
Opaque type for store backend.
#define STORE_BACKEND_OPS(_name)