Go to the documentation of this file.
33 #include <type_traits>
115 for (
unsigned i = 0; i < attempts; ++i)
122 const auto wrote = f(*(*txn));
expect< void > resize() noexcept
Definition: database.cpp:129
std::atomic_flag lock
Definition: database.h:60
expect< write_txn > create_write_txn() noexcept
Definition: database.cpp:174
#define F(w, k)
Definition: sha512-blocks.c:61
context ctx
Definition: database.h:67
std::result_of< F(MDB_txn &)>::type try_write(F f, unsigned attempts=3)
Definition: database.h:113
expect< void > commit(write_txn txn) noexcept
Commit the read-write transaction.
Definition: database.cpp:179
#define MONERO_CHECK(...)
Check expect<void> and return errors in current scope.
Definition: expect.h:47
#define MONERO_PRECOND(...)
If precondition fails, return ::error::kInvalidArgument in current scope.
Definition: expect.h:39
database(database &&)=delete
Closes LMDB environment handle.
Definition: database.h:43
MDB_env * handle() const noexcept
Definition: database.h:70
std::unique_ptr< MDB_txn, abort_write_txn > write_txn
Definition: transaction.h:94
expect< suspended_txn > reset_txn(read_txn txn) noexcept
Definition: database.cpp:166
const
Definition: build_protob.py:9
Manages a LMDB environment for safe memory-map resizing. Thread-safe.
Definition: database.h:65
std::atomic< std::size_t > active
Definition: database.h:59
std::error_code error() const noexcept
Definition: expect.h:276
virtual ~database() noexcept
Definition: database.cpp:124
expect< read_txn > create_read_txn(suspended_txn txn=nullptr) noexcept
Definition: database.cpp:147
expect< environment > open_environment(const char *path, MDB_dbi max_dbs) noexcept
Definition: database.cpp:78
environment env
Definition: database.h:66
expect< write_txn > do_create_txn(unsigned int flags) noexcept
Definition: database.cpp:91
Definition: blockchain_ancestry.cpp:72
std::unique_ptr< MDB_txn, abort_txn > suspended_txn
Definition: transaction.h:92
Context given to LMDB.
Definition: database.h:58
std::unique_ptr< MDB_txn, release_read_txn > read_txn
Definition: transaction.h:93
database(environment env)
Definition: database.cpp:113
database(database const &)=delete
void operator()(MDB_env *ptr) const noexcept
Definition: database.h:44
Definition: database.cpp:46
error
Tracks LMDB error codes.
Definition: error.h:45
std::unique_ptr< MDB_env, close_env > environment
Definition: database.h:51