Dash Core Source Documentation (0.16.0.1)

Find detailed information regarding the Dash Core source code.

An instance of this class represents one database. More...

#include <db.h>

+ Collaboration diagram for BerkeleyDatabase:

Public Member Functions

 BerkeleyDatabase ()
 Create dummy DB handle. More...
 
 BerkeleyDatabase (const fs::path &wallet_path, bool mock=false)
 Create DB handle to real database. More...
 
bool Rewrite (const char *pszSkip=nullptr)
 Rewrite the entire database on disk, with the exception of key pszSkip if non-zero. More...
 
bool Backup (const std::string &strDest)
 Back up the entire database to a file. More...
 
void Flush (bool shutdown)
 Make sure all changes are flushed to disk. More...
 
void IncrementUpdateCounter ()
 

Static Public Member Functions

static std::unique_ptr< BerkeleyDatabaseCreate (const fs::path &path)
 Return object for accessing database at specified path. More...
 
static std::unique_ptr< BerkeleyDatabaseCreateDummy ()
 Return object for accessing dummy database with no read/write capabilities. More...
 
static std::unique_ptr< BerkeleyDatabaseCreateMock ()
 Return object for accessing temporary in-memory database. More...
 

Public Attributes

std::atomic< unsigned int > nUpdateCounter
 
unsigned int nLastSeen
 
unsigned int nLastFlushed
 
int64_t nLastWalletUpdate
 

Private Member Functions

bool IsDummy ()
 Return whether this database handle is a dummy for testing. More...
 

Private Attributes

BerkeleyEnvironmentenv
 BerkeleyDB specific. More...
 
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.

Definition at line 95 of file db.h.

Constructor & Destructor Documentation

◆ BerkeleyDatabase() [1/2]

BerkeleyDatabase::BerkeleyDatabase ( )
inline

Create dummy DB handle.

Definition at line 100 of file db.h.

◆ BerkeleyDatabase() [2/2]

BerkeleyDatabase::BerkeleyDatabase ( const fs::path &  wallet_path,
bool  mock = false 
)
inline

Create DB handle to real database.

Definition at line 105 of file db.h.

References BerkeleyEnvironment::Close(), env, GetWalletEnv(), BerkeleyEnvironment::MakeMock(), BerkeleyEnvironment::Reset(), and strFile.

Member Function Documentation

◆ Backup()

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

◆ Create()

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

Return object for accessing database at specified path.

Definition at line 117 of file db.h.

Referenced by CWallet::CreateWalletFromFile(), and CWallet::Verify().

◆ CreateDummy()

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

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

Definition at line 123 of file db.h.

Referenced by BOOST_FIXTURE_TEST_CASE(), CoinSelection(), and CWallet::Verify().

◆ CreateMock()

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

Return object for accessing temporary in-memory database.

Definition at line 129 of file db.h.

Referenced by CreateTransactionTestSetup::CreateTransactionTestSetup(), and ListCoinsTestingSetup::ListCoinsTestingSetup().

◆ Flush()

void BerkeleyDatabase::Flush ( bool  shutdown)

Make sure all changes are flushed to disk.

Definition at line 790 of file db.cpp.

References env, BerkeleyEnvironment::Flush(), and IsDummy().

◆ IncrementUpdateCounter()

void BerkeleyDatabase::IncrementUpdateCounter ( )

Definition at line 535 of file db.cpp.

References nUpdateCounter.

Referenced by WalletBatch::EraseIC(), and WalletBatch::WriteIC().

◆ 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.

Definition at line 162 of file db.h.

References env.

Referenced by Backup(), BerkeleyBatch::BerkeleyBatch(), Flush(), BerkeleyBatch::PeriodicFlush(), and BerkeleyBatch::Rewrite().

◆ Rewrite()

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

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

Definition at line 744 of file db.cpp.

References BerkeleyBatch::Rewrite().

Friends And Related Function Documentation

◆ BerkeleyBatch

friend class BerkeleyBatch
friend

Definition at line 97 of file db.h.

Member Data Documentation

◆ env

BerkeleyEnvironment* BerkeleyDatabase::env
private

◆ nLastFlushed

unsigned int BerkeleyDatabase::nLastFlushed

Definition at line 150 of file db.h.

Referenced by MaybeCompactWalletDB().

◆ nLastSeen

unsigned int BerkeleyDatabase::nLastSeen

Definition at line 149 of file db.h.

Referenced by MaybeCompactWalletDB().

◆ nLastWalletUpdate

int64_t BerkeleyDatabase::nLastWalletUpdate

Definition at line 151 of file db.h.

Referenced by MaybeCompactWalletDB().

◆ nUpdateCounter

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

Definition at line 148 of file db.h.

Referenced by IncrementUpdateCounter(), and MaybeCompactWalletDB().

◆ strFile

std::string BerkeleyDatabase::strFile
private

The documentation for this class was generated from the following files:
Released under the MIT license