Electroneum
Public Member Functions | Private Member Functions | Private Attributes | List of all members
lmdb::database Class Reference

Manages a LMDB environment for safe memory-map resizing. Thread-safe. More...

#include <database.h>

Collaboration diagram for lmdb::database:
Collaboration graph
[legend]

Public Member Functions

 database (environment env)
 
 database (database &&)=delete
 
 database (database const &)=delete
 
virtual ~database () noexcept
 
databaseoperator= (database &&)=delete
 
databaseoperator= (database const &)=delete
 
expect< void > resize () noexcept
 
expect< read_txncreate_read_txn (suspended_txn txn=nullptr) noexcept
 
expect< suspended_txnreset_txn (read_txn txn) noexcept
 
expect< write_txncreate_write_txn () noexcept
 
expect< void > commit (write_txn txn) noexcept
 Commit the read-write transaction. More...
 
template<typename F >
std::result_of< F(MDB_txn &)>::type try_write (F f, unsigned attempts=3)
 

Private Member Functions

MDB_env * handle () const noexcept
 
expect< write_txndo_create_txn (unsigned int flags) noexcept
 

Private Attributes

environment env
 
context ctx
 

Detailed Description

Manages a LMDB environment for safe memory-map resizing. Thread-safe.

Constructor & Destructor Documentation

◆ database() [1/3]

lmdb::database::database ( environment  env)

◆ database() [2/3]

lmdb::database::database ( database &&  )
delete

◆ database() [3/3]

lmdb::database::database ( database const &  )
delete

◆ ~database()

lmdb::database::~database ( )
virtualnoexcept

Member Function Documentation

◆ commit()

expect< void > lmdb::database::commit ( write_txn  txn)
noexcept

Commit the read-write transaction.

◆ create_read_txn()

expect< read_txn > lmdb::database::create_read_txn ( suspended_txn  txn = nullptr)
noexcept
Returns
A read only LMDB transaction, reusing txn if provided.

◆ create_write_txn()

expect< write_txn > lmdb::database::create_write_txn ( )
noexcept
Returns
A read-write LMDB transaction.

◆ do_create_txn()

expect< write_txn > lmdb::database::do_create_txn ( unsigned int  flags)
privatenoexcept

◆ handle()

MDB_env* lmdb::database::handle ( ) const
inlineprivatenoexcept
Returns
The LMDB environment associated with the object.

◆ operator=() [1/2]

database& lmdb::database::operator= ( database &&  )
delete

◆ operator=() [2/2]

database& lmdb::database::operator= ( database const &  )
delete

◆ reset_txn()

expect< suspended_txn > lmdb::database::reset_txn ( read_txn  txn)
noexcept
Returns
txn after releasing context.

◆ resize()

expect< void > lmdb::database::resize ( )
noexcept

Resize the memory map for the LMDB environment. Will block until all reads/writes on the environment complete.

◆ try_write()

template<typename F >
std::result_of<F(MDB_txn&)>::type lmdb::database::try_write ( F  f,
unsigned  attempts = 3 
)
inline

Create a write transaction, pass it to f, then try to commit the write if f succeeds.

Template Parameters
Fmust be callable with signature expect<T>(MDB_txn&).
Parameters
fmust be re-startable if lmdb::error(MDB_MAP_FULL).
Returns
The result of calling f.

Member Data Documentation

◆ ctx

context lmdb::database::ctx
private

◆ env

environment lmdb::database::env
private

The documentation for this class was generated from the following files: