Bitcoin Core  0.20.99
P2P Digital Currency
Public Member Functions | Public Attributes | List of all members
WalletDatabase Class Referenceabstract

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

#include <db.h>

Inheritance diagram for WalletDatabase:
[legend]

Public Member Functions

 WalletDatabase ()
 Create dummy DB handle. More...
 
virtual ~WalletDatabase ()
 
virtual void Open (const char *mode)=0
 Open the database if it is not already opened. More...
 
virtual void AddRef ()=0
 Indicate the a new database user has began using the database. More...
 
virtual void RemoveRef ()=0
 Indicate that database user has stopped using the database and that it could be flushed or closed. More...
 
virtual bool Rewrite (const char *pszSkip=nullptr)=0
 Rewrite the entire database on disk, with the exception of key pszSkip if non-zero. More...
 
virtual bool Backup (const std::string &strDest) const =0
 Back up the entire database to a file. More...
 
virtual void Flush ()=0
 Make sure all changes are flushed to database file. More...
 
virtual void Close ()=0
 Flush to the database file and close the database. More...
 
virtual bool PeriodicFlush ()=0
 
virtual void IncrementUpdateCounter ()=0
 
virtual void ReloadDbEnv ()=0
 
virtual std::string Filename ()=0
 Return path to main database file for logs and error messages. More...
 
virtual std::unique_ptr< DatabaseBatchMakeBatch (const char *mode="r+", bool flush_on_close=true)=0
 Make a DatabaseBatch connected to this database. More...
 

Public Attributes

std::atomic< int > m_refcount {0}
 Counts the number of active database users to be sure that the database is not closed while someone is using it. More...
 
std::atomic< unsigned int > nUpdateCounter
 
unsigned int nLastSeen
 
unsigned int nLastFlushed
 
int64_t nLastWalletUpdate
 

Detailed Description

An instance of this class represents one database.

Definition at line 103 of file db.h.

Constructor & Destructor Documentation

◆ WalletDatabase()

WalletDatabase::WalletDatabase ( )
inline

Create dummy DB handle.

Definition at line 107 of file db.h.

◆ ~WalletDatabase()

virtual WalletDatabase::~WalletDatabase ( )
inlinevirtual

Definition at line 108 of file db.h.

Member Function Documentation

◆ AddRef()

virtual void WalletDatabase::AddRef ( )
pure virtual

Indicate the a new database user has began using the database.

Increments m_refcount

Implemented in DummyDatabase, and BerkeleyDatabase.

◆ Backup()

virtual bool WalletDatabase::Backup ( const std::string &  strDest) const
pure virtual

Back up the entire database to a file.

Implemented in DummyDatabase, and BerkeleyDatabase.

◆ Close()

virtual void WalletDatabase::Close ( )
pure virtual

Flush to the database file and close the database.

Also close the environment if no other databases are open in it.

Implemented in DummyDatabase, and BerkeleyDatabase.

◆ Filename()

virtual std::string WalletDatabase::Filename ( )
pure virtual

Return path to main database file for logs and error messages.

Implemented in DummyDatabase, and BerkeleyDatabase.

◆ Flush()

virtual void WalletDatabase::Flush ( )
pure virtual

Make sure all changes are flushed to database file.

Implemented in DummyDatabase, and BerkeleyDatabase.

◆ IncrementUpdateCounter()

virtual void WalletDatabase::IncrementUpdateCounter ( )
pure virtual

Implemented in DummyDatabase, and BerkeleyDatabase.

◆ MakeBatch()

virtual std::unique_ptr<DatabaseBatch> WalletDatabase::MakeBatch ( const char *  mode = "r+",
bool  flush_on_close = true 
)
pure virtual

Make a DatabaseBatch connected to this database.

Implemented in DummyDatabase, and BerkeleyDatabase.

◆ Open()

virtual void WalletDatabase::Open ( const char *  mode)
pure virtual

Open the database if it is not already opened.

Implemented in DummyDatabase, and BerkeleyDatabase.

◆ PeriodicFlush()

virtual bool WalletDatabase::PeriodicFlush ( )
pure virtual

Implemented in DummyDatabase, and BerkeleyDatabase.

Here is the caller graph for this function:

◆ ReloadDbEnv()

virtual void WalletDatabase::ReloadDbEnv ( )
pure virtual

Implemented in DummyDatabase, and BerkeleyDatabase.

◆ RemoveRef()

virtual void WalletDatabase::RemoveRef ( )
pure virtual

Indicate that database user has stopped using the database and that it could be flushed or closed.

Decrement m_refcount

Implemented in DummyDatabase, and BerkeleyDatabase.

◆ Rewrite()

virtual bool WalletDatabase::Rewrite ( const char *  pszSkip = nullptr)
pure virtual

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

Implemented in DummyDatabase, and BerkeleyDatabase.

Member Data Documentation

◆ m_refcount

std::atomic<int> WalletDatabase::m_refcount {0}

Counts the number of active database users to be sure that the database is not closed while someone is using it.

Definition at line 114 of file db.h.

◆ nLastFlushed

unsigned int WalletDatabase::nLastFlushed

Definition at line 148 of file db.h.

◆ nLastSeen

unsigned int WalletDatabase::nLastSeen

Definition at line 147 of file db.h.

◆ nLastWalletUpdate

int64_t WalletDatabase::nLastWalletUpdate

Definition at line 149 of file db.h.

◆ nUpdateCounter

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

Definition at line 146 of file db.h.


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