19#ifndef PROTOCORE_DOCSTORE_H
20#define PROTOCORE_DOCSTORE_H
37void pc_docstore_open(pc_doc_store *ds, pc_dbm *db);
43bool pc_docstore_put(pc_doc_store *ds,
const char *
id, uint16_t id_len,
const uint8_t *json, uint32_t json_len);
49long pc_docstore_get(pc_doc_store *ds,
const char *
id, uint16_t id_len, uint8_t *buf,
size_t cap);
52bool pc_docstore_del(pc_doc_store *ds,
const char *
id, uint16_t id_len);
55bool pc_docstore_contains(
const pc_doc_store *ds,
const char *
id, uint16_t id_len);
58uint32_t pc_docstore_count(
const pc_doc_store *ds);
61bool pc_docstore_sync(pc_doc_store *ds);
67using pc_doc_match_cb = bool (*)(
const char *id, uint16_t id_len,
const uint8_t *json, uint32_t json_len,
void *ctx);
73uint32_t pc_docstore_find_str(pc_doc_store *ds,
const char *field,
const char *value, pc_doc_match_cb cb,
void *ctx);
76uint32_t pc_docstore_find_int(pc_doc_store *ds,
const char *field,
long value, pc_doc_match_cb cb,
void *ctx);
79uint32_t pc_docstore_find_bool(pc_doc_store *ds,
const char *field,
bool value, pc_doc_match_cb cb,
void *ctx);
Log-structured hash key-value store on the WAL (PC_ENABLE_DBM, requires PC_ENABLE_WAL).
User-facing configuration for ProtoCore.