/** @file store_mdb.h * * @brief LMDB graph store backend. * * This module stores triples in a LMDB embedded store, organized * into named graphs. The store is optimized and indexed for fast lookup of any * number of bound terms. * * The store must be first initialized once, to create the environment files * and folders as well as the internal databases, then it must be opened once * per session. Within that session multiple R/W operations can be performed * using transactions. * * Note that, even though the terms "graph", "context", etc. are used, no code * in this module checks for valid RDF data. In theory any term can be any * binary data. This allows using the store for non-RDF graph data. * * TODO more doc */ #ifndef _LSUP_STORE_MDB_H #define _LSUP_STORE_MDB_H #include "lmdb.h" #include "buffer.h" #include "store.h" // FIXME find a better cross-platform path. #define DEFAULT_ENV_PATH "./mdb_store" // RAMdisk path for MDB volatile store. #define LSUP_MDB_RAMDISK_PATH TMPDIR "/lsup_mem_graph" extern const LSUP_StoreInt mdbstore_int; /// MDB store interface. extern const LSUP_StoreIteratorInt mdbiter_int; /// MDB iterator interface. #endif /* _LSUP_STORE_MDB_H */