Bitcoin
Public Member Functions | Static Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | Friends | List of all members
BerkeleyDatabase Class Reference

#include <db.h>

Public Member Functions

 BerkeleyDatabase ()
 
 BerkeleyDatabase (std::shared_ptr< BerkeleyEnvironment > env, std::string filename)
 
 ~BerkeleyDatabase ()
 
bool Rewrite (const char *pszSkip=nullptr)
 
bool Backup (const std::string &strDest)
 
void Flush (bool shutdown)
 
void IncrementUpdateCounter ()
 
void ReloadDbEnv ()
 

Static Public Member Functions

static std::unique_ptr< BerkeleyDatabaseCreate (const fs::path &path)
 
static std::unique_ptr< BerkeleyDatabaseCreateDummy ()
 
static std::unique_ptr< BerkeleyDatabaseCreateMock ()
 

Public Attributes

std::atomic< unsigned int > nUpdateCounter
 
unsigned int nLastSeen
 
unsigned int nLastFlushed
 
int64_t nLastWalletUpdate
 
std::shared_ptr< BerkeleyEnvironmentenv
 
std::unique_ptr< Db > m_db
 

Private Member Functions

bool IsDummy ()
 

Private Attributes

std::string strFile
 

Friends

class BerkeleyBatch
 

Detailed Description

An instance of this class represents one database. For BerkeleyDB this is just a (env, strFile) tuple.

Constructor & Destructor Documentation

◆ BerkeleyDatabase() [1/2]

BerkeleyDatabase::BerkeleyDatabase ( )
inline

Create dummy DB handle

◆ BerkeleyDatabase() [2/2]

BerkeleyDatabase::BerkeleyDatabase ( std::shared_ptr< BerkeleyEnvironment env,
std::string  filename 
)
inline

Create DB handle to real database

◆ ~BerkeleyDatabase()

BerkeleyDatabase::~BerkeleyDatabase ( )
inline

Member Function Documentation

◆ Backup()

bool BerkeleyDatabase::Backup ( const std::string &  strDest)

Back up the entire database to a file.

◆ Create()

static std::unique_ptr<BerkeleyDatabase> BerkeleyDatabase::Create ( const fs::path &  path)
inlinestatic

Return object for accessing database at specified path.

◆ CreateDummy()

static std::unique_ptr<BerkeleyDatabase> BerkeleyDatabase::CreateDummy ( )
inlinestatic

Return object for accessing dummy database with no read/write capabilities.

◆ CreateMock()

static std::unique_ptr<BerkeleyDatabase> BerkeleyDatabase::CreateMock ( )
inlinestatic

Return object for accessing temporary in-memory database.

◆ Flush()

void BerkeleyDatabase::Flush ( bool  shutdown)

Make sure all changes are flushed to disk.

◆ IncrementUpdateCounter()

void BerkeleyDatabase::IncrementUpdateCounter ( )

◆ IsDummy()

bool BerkeleyDatabase::IsDummy ( )
inlineprivate

Return whether this database handle is a dummy for testing. Only to be used at a low level, application should ideally not care about this.

◆ ReloadDbEnv()

void BerkeleyDatabase::ReloadDbEnv ( )

◆ Rewrite()

bool BerkeleyDatabase::Rewrite ( const char *  pszSkip = nullptr)

Rewrite the entire database on disk, with the exception of key pszSkip if non-zero

Friends And Related Function Documentation

◆ BerkeleyBatch

friend class BerkeleyBatch
friend

Member Data Documentation

◆ env

std::shared_ptr<BerkeleyEnvironment> BerkeleyDatabase::env

Pointer to shared database environment.

Normally there is only one BerkeleyDatabase object per BerkeleyEnvivonment, but in the special, backwards compatible case where multiple wallet BDB data files are loaded from the same directory, this will point to a shared instance that gets freed when the last data file is closed.

◆ m_db

std::unique_ptr<Db> BerkeleyDatabase::m_db

Database pointer. This is initialized lazily and reset during flushes, so it can be null.

◆ nLastFlushed

unsigned int BerkeleyDatabase::nLastFlushed

◆ nLastSeen

unsigned int BerkeleyDatabase::nLastSeen

◆ nLastWalletUpdate

int64_t BerkeleyDatabase::nLastWalletUpdate

◆ nUpdateCounter

std::atomic<unsigned int> BerkeleyDatabase::nUpdateCounter

◆ strFile

std::string BerkeleyDatabase::strFile
private

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