Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::lmdblib::LMDBEnvironment Class Reference

#include <lmdb_environment.hpp>

Classes

struct  ResourceGuard
 

Public Types

using Ptr = std::unique_ptr< LMDBEnvironment >
 
using SharedPtr = std::shared_ptr< LMDBEnvironment >
 

Public Member Functions

 LMDBEnvironment (const std::string &directory, uint64_t mapSizeKb, uint32_t maxNumDBs, uint32_t maxNumReaders)
 Opens/creates the LMDB environment.
 
 LMDBEnvironment (const LMDBEnvironment &other)=delete
 
 LMDBEnvironment (LMDBEnvironment &&other)=delete
 
LMDBEnvironmentoperator= (const LMDBEnvironment &other)=delete
 
LMDBEnvironmentoperator= (LMDBEnvironment &&other)=delete
 
 ~LMDBEnvironment ()
 
MDB_env * underlying () const
 
void wait_for_reader ()
 
void release_reader ()
 
void wait_for_writer ()
 
void release_writer ()
 
uint64_t getNextId ()
 
uint64_t get_map_size () const
 
uint64_t get_data_file_size () const
 

Private Attributes

std::atomic_uint64_t _id
 
std::string _directory
 
MDB_env * _mdbEnv
 
ResourceGuard _readGuard
 
ResourceGuard _writeGuard
 

Detailed Description

Definition at line 18 of file lmdb_environment.hpp.

Member Typedef Documentation

◆ Ptr

Definition at line 20 of file lmdb_environment.hpp.

◆ SharedPtr

Definition at line 21 of file lmdb_environment.hpp.

Constructor & Destructor Documentation

◆ LMDBEnvironment() [1/3]

bb::lmdblib::LMDBEnvironment::LMDBEnvironment ( const std::string &  directory,
uint64_t  mapSizeKb,
uint32_t  maxNumDBs,
uint32_t  maxNumReaders 
)

Opens/creates the LMDB environment.

Parameters
directoryThe directory in which the environment is to be created
mapSizeKbThe maximum size of the database, can be increased from a previously used value
maxNumDbsThe maximum number of databases that can be created withn this environment
maxNumReadersThe maximum number of concurrent read transactions permitted.

Definition at line 11 of file lmdb_environment.cpp.

◆ LMDBEnvironment() [2/3]

bb::lmdblib::LMDBEnvironment::LMDBEnvironment ( const LMDBEnvironment other)
delete

◆ LMDBEnvironment() [3/3]

bb::lmdblib::LMDBEnvironment::LMDBEnvironment ( LMDBEnvironment &&  other)
delete

◆ ~LMDBEnvironment()

bb::lmdblib::LMDBEnvironment::~LMDBEnvironment ( )

Definition at line 60 of file lmdb_environment.cpp.

Member Function Documentation

◆ get_data_file_size()

uint64_t bb::lmdblib::LMDBEnvironment::get_data_file_size ( ) const

Definition at line 77 of file lmdb_environment.cpp.

◆ get_map_size()

uint64_t bb::lmdblib::LMDBEnvironment::get_map_size ( ) const

Definition at line 70 of file lmdb_environment.cpp.

◆ getNextId()

uint64_t bb::lmdblib::LMDBEnvironment::getNextId ( )
inline

Definition at line 47 of file lmdb_environment.hpp.

◆ operator=() [1/2]

LMDBEnvironment & bb::lmdblib::LMDBEnvironment::operator= ( const LMDBEnvironment other)
delete

◆ operator=() [2/2]

LMDBEnvironment & bb::lmdblib::LMDBEnvironment::operator= ( LMDBEnvironment &&  other)
delete

◆ release_reader()

void bb::lmdblib::LMDBEnvironment::release_reader ( )

Definition at line 45 of file lmdb_environment.cpp.

◆ release_writer()

void bb::lmdblib::LMDBEnvironment::release_writer ( )

Definition at line 55 of file lmdb_environment.cpp.

◆ underlying()

MDB_env * bb::lmdblib::LMDBEnvironment::underlying ( ) const

Definition at line 65 of file lmdb_environment.cpp.

◆ wait_for_reader()

void bb::lmdblib::LMDBEnvironment::wait_for_reader ( )

Definition at line 40 of file lmdb_environment.cpp.

◆ wait_for_writer()

void bb::lmdblib::LMDBEnvironment::wait_for_writer ( )

Definition at line 50 of file lmdb_environment.cpp.

Member Data Documentation

◆ _directory

std::string bb::lmdblib::LMDBEnvironment::_directory
private

Definition at line 55 of file lmdb_environment.hpp.

◆ _id

std::atomic_uint64_t bb::lmdblib::LMDBEnvironment::_id
private

Definition at line 54 of file lmdb_environment.hpp.

◆ _mdbEnv

MDB_env* bb::lmdblib::LMDBEnvironment::_mdbEnv
private

Definition at line 56 of file lmdb_environment.hpp.

◆ _readGuard

ResourceGuard bb::lmdblib::LMDBEnvironment::_readGuard
private

Definition at line 85 of file lmdb_environment.hpp.

◆ _writeGuard

ResourceGuard bb::lmdblib::LMDBEnvironment::_writeGuard
private

Definition at line 86 of file lmdb_environment.hpp.


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