Volksdata 1.0b7
RDF library
Loading...
Searching...
No Matches
store.h File Reference

Generic store dependency. More...

Include dependency graph for store.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  VOLK_Store
 Store structure. More...

Macros

#define BACKEND_TBL
#define ENTRY(a, b)
#define VOLK_store_add_init(store, ...)
 Non-transactional version of VOLK_store_add_init_txn().
#define VOLK_store_add_term(store, ...)
 Non-transactional version of VOLK_store_add_term_txn().
#define VOLK_store_ctx_list(store)
 Non-transactional version of VOLK_store_ctx_list_txn().
#define VOLK_store_lookup(store, ...)
 Non-transactional version of VOLK_store_lookup_txn().
#define VOLK_store_remove(store, ...)
 Non-transactional version of VOLK_store_remove_txn().
#define VOLK_store_update_ctx(store, ...)

Enumerations

enum  VOLK_StoreType { BACKEND_TBL }
 Store types. All prefixed with VOLK_STORE_. More...

Functions

void VOLK_store_abort (VOLK_Store *store, void *txn)
 Abort (roll back) a transaction.
void VOLK_store_add_abort (VOLK_Store *store, void *it)
 Abort an add loop and free iterator.
VOLK_rc VOLK_store_add_done (VOLK_Store *store, void *it)
 Finalize an add loop and free iterator.
void * VOLK_store_add_init_txn (VOLK_Store *store, void *txn, const VOLK_Buffer *sc)
 Initialize bulk triple load.
VOLK_rc VOLK_store_add_iter (VOLK_Store *store, void *it, const VOLK_BufferTriple *sspo)
 Add one triple into the store.
VOLK_rc VOLK_store_add_term_txn (VOLK_Store *store, void *txn, VOLK_Buffer *sterm)
 Add a single term to the store.
VOLK_rc VOLK_store_begin (VOLK_Store *store, VOLK_StoreFlags flags, void **txn)
 Begin a transaction.
VOLK_rc VOLK_store_commit (VOLK_Store *store, void *txn)
 Commit a transaction.
VOLK_Buffer ** VOLK_store_ctx_list_txn (VOLK_Store *store, void *txn)
 get index of all graph (context) URIs in a store.
VOLK_StoreFeature VOLK_store_features (const VOLK_Store *store)
 Feature flags belonging to the store interface.
void VOLK_store_free (VOLK_Store *store)
 Free a store created with VOLK_store_new().
char * VOLK_store_id (const VOLK_Store *store)
 Store identifier.
const VOLK_StoreIntVOLK_store_int (VOLK_StoreType type)
 Return store interface for a specific type.
void VOLK_store_iter_free (VOLK_Store *store, void *it)
 Free an iterator allocated by a lookup.
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.
void * VOLK_store_iter_txn (const VOLK_Store *store, void *it)
 Get iterator active transaction handle.
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_StoreVOLK_store_new (const VOLK_StoreType store_type, const char *store_id, size_t size, bool clear)
 Create a new store.
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.
size_t VOLK_store_size (const VOLK_Store *store)
 Store size in triples.
const char * VOLK_store_type_label (VOLK_StoreType type)
 Return the store type label.
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.

Detailed Description

Generic store dependency.

This code allows to use the store interface with any supported back end without any knowledge of the back end implementations. Code using the store interface need only include this file.

New store implementations should be added to this file as #includes as well as entries in the BACKEND_TBL macro.

Definition in file store.h.

Macro Definition Documentation

◆ ENTRY

#define ENTRY ( a,
b )
Value:
VOLK_STORE_##a,

Definition at line 40 of file store.h.