27#ifndef PROTOCORE_DBM_H
28#define PROTOCORE_DBM_H
32#if PROTOCORE_ENABLE_DBM
50typedef struct protocore_dbm
61proto_bool protocore_dbm_open(
struct protocore_dbm *db, WalStore *wal);
68proto_bool protocore_dbm_put(
struct protocore_dbm *db,
const char *key, uint16_t key_len,
const uint8_t *val,
75long protocore_dbm_get(
struct protocore_dbm *db,
const char *key, uint16_t key_len, uint8_t *buf,
size_t cap);
81proto_bool protocore_dbm_del(
struct protocore_dbm *db,
const char *key, uint16_t key_len);
84proto_bool protocore_dbm_contains(
const struct protocore_dbm *db,
const char *key, uint16_t key_len);
87uint32_t protocore_dbm_count(
const struct protocore_dbm *db);
90proto_bool protocore_dbm_sync(
struct protocore_dbm *db);
94typedef proto_bool (*protocore_dbm_iter_cb)(
const char *key, uint16_t key_len,
void *ctx);
97uint32_t protocore_dbm_iterate(
const struct protocore_dbm *db, protocore_dbm_iter_cb cb,
void *ctx);
105uint64_t protocore_dbm_live_bytes(
const struct protocore_dbm *db);
118proto_bool protocore_dbm_compact(
struct protocore_dbm *db, WalStore *dst);
#define PROTOCORE_DBM_KEY_MAX
#define PROTOCORE_DBM_SLOTS
#define PROTOCORE_BEGIN_DECLS
Give a header's declarations C linkage, so their symbol names carry no parameter types.
_Bool proto_bool
The truth value.
#define PROTOCORE_END_DECLS