34 ENTRY( HTABLE, htstore_int ) \
35 ENTRY( MDB, mdbstore_int ) \
59typedef struct store_t {
109 const VOLK_StoreType store_type,
const char *store_id,
size_t size,
215#define VOLK_store_update_ctx(store, ...) \
216 VOLK_store_update_txn (store, NULL, __VA_ARGS__)
243#define VOLK_store_add_init(store, ...) \
244 VOLK_store_add_init_txn (store, NULL, __VA_ARGS__)
308#define VOLK_store_add_term(store, ...) \
309 VOLK_store_add_term_txn (store, NULL, __VA_ARGS__)
356#define VOLK_store_lookup(store, ...) \
357 VOLK_store_lookup_txn (store, NULL, __VA_ARGS__)
462#define VOLK_store_remove(store, ...) \
463 VOLK_store_remove_txn (store, NULL, __VA_ARGS__)
481#define VOLK_store_ctx_list(store) \
482 VOLK_store_ctx_list_txn (store, NULL)
VOLK_StoreFeature
Store feature flags.
VOLK_rc VOLK_store_begin(VOLK_Store *store, int flags, void **txn)
Begin a transaction.
void * VOLK_store_add_init_txn(VOLK_Store *store, void *txn, const VOLK_Buffer *sc)
Initialize bulk triple load.
VOLK_rc VOLK_store_add_done(VOLK_Store *store, void *it)
Finalize an add loop and free iterator.
void VOLK_store_add_abort(VOLK_Store *store, void *it)
Abort an add loop and free iterator.
const VOLK_StoreInt * VOLK_store_int(VOLK_StoreType type)
Return store interface for a specific type.
VOLK_rc VOLK_store_add_iter(VOLK_Store *store, void *it, const VOLK_BufferTriple *sspo)
Add one triple into the store.
VOLK_StoreFeature VOLK_store_features(const VOLK_Store *store)
Feature flags belonging to the store interface.
VOLK_rc VOLK_store_add_term_txn(VOLK_Store *store, void *txn, VOLK_Buffer *sterm)
Add a single term to the store.
void * VOLK_store_lookup_txn(const VOLK_Store *store, void *txn, const VOLK_Buffer *ss, const VOLK_Buffer *sp, const VOLK_Buffer *so, const VOLK_Buffer *sc, size_t *ct)
Look up triples by pattern matching.
VOLK_rc VOLK_store_iter_next(VOLK_Store *store, void *it, VOLK_BufferTriple *sspo, VOLK_Buffer **ctx)
Yield the matching triples and advance the iterator.
char * VOLK_store_id(const VOLK_Store *store)
Store identifier.
VOLK_Buffer ** VOLK_store_ctx_list_txn(VOLK_Store *store, void *txn)
get index of all graph (context) URIs in a store.
VOLK_StoreType
Store types. All prefixed with VOLK_STORE_.
void VOLK_store_iter_free(VOLK_Store *store, void *it)
Free an iterator allocated by a lookup.
const char * VOLK_store_type_label(VOLK_StoreType type)
Return the store type label.
size_t VOLK_store_size(const VOLK_Store *store)
Store size in triples.
VOLK_Store * VOLK_store_new(const VOLK_StoreType store_type, const char *store_id, size_t size, bool clear)
Create a new store.
void * VOLK_store_iter_txn(const VOLK_Store *store, void *it)
Get iterator active transaction handle.
VOLK_rc VOLK_store_commit(VOLK_Store *store, void *txn)
Commit a transaction.
VOLK_rc VOLK_store_remove_txn(VOLK_Store *store, void *txn, const VOLK_Buffer *ss, const VOLK_Buffer *sp, const VOLK_Buffer *so, const VOLK_Buffer *sc, size_t *ct)
Delete triples by pattern matching.
void VOLK_store_abort(VOLK_Store *store, void *txn)
Abort (roll back) a transaction.
void VOLK_store_free(VOLK_Store *store)
Free a store created with VOLK_store_new().
VOLK_rc VOLK_store_update_ctx_txn(VOLK_Store *store, void *txn, const VOLK_Buffer *old_c, const VOLK_Buffer *new_c)
Update the context of triples in a context-aware store.
Simple in-memory triple store back end based on hash tables.
LMDB graph store backend.
General-purpose data buffer.
void * data
Store back end data.
const VOLK_StoreInt * sif
Store interface.
VOLK_StoreType type
Store type.