Monero
Loading...
Searching...
No Matches
lmdb::database Class Reference

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

#include <database.h>

Collaboration diagram for lmdb::database:

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.
template<typename F>
std::result_of< F(MDB_txn &)>::type try_write (F f, unsigned attempts=3)

Private Member Functions

MDB_envhandle () 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: