Changeset View
Changeset View
Standalone View
Standalone View
src/wallet/bdb.h
Show First 20 Lines • Show All 89 Lines • ▼ Show 20 Lines | |||||
class BerkeleyBatch; | class BerkeleyBatch; | ||||
/** | /** | ||||
* An instance of this class represents one database. | * An instance of this class represents one database. | ||||
* For BerkeleyDB this is just a (env, strFile) tuple. | * For BerkeleyDB this is just a (env, strFile) tuple. | ||||
*/ | */ | ||||
class BerkeleyDatabase : public WalletDatabase { | class BerkeleyDatabase : public WalletDatabase { | ||||
public: | public: | ||||
/** Create dummy DB handle */ | BerkeleyDatabase() = delete; | ||||
BerkeleyDatabase() : WalletDatabase(), env(nullptr) {} | |||||
/** Create DB handle to real database */ | /** Create DB handle to real database */ | ||||
BerkeleyDatabase(std::shared_ptr<BerkeleyEnvironment> envIn, | BerkeleyDatabase(std::shared_ptr<BerkeleyEnvironment> envIn, | ||||
std::string filename) | std::string filename) | ||||
: WalletDatabase(), env(std::move(envIn)), | : WalletDatabase(), env(std::move(envIn)), | ||||
strFile(std::move(filename)) { | strFile(std::move(filename)) { | ||||
auto inserted = | auto inserted = | ||||
this->env->m_databases.emplace(strFile, std::ref(*this)); | this->env->m_databases.emplace(strFile, std::ref(*this)); | ||||
▲ Show 20 Lines • Show All 70 Lines • ▼ Show 20 Lines | public: | ||||
*/ | */ | ||||
std::unique_ptr<Db> m_db; | std::unique_ptr<Db> m_db; | ||||
std::string strFile; | std::string strFile; | ||||
/** Make a BerkeleyBatch connected to this database */ | /** Make a BerkeleyBatch connected to this database */ | ||||
std::unique_ptr<DatabaseBatch> | std::unique_ptr<DatabaseBatch> | ||||
MakeBatch(const char *mode = "r+", bool flush_on_close = true) override; | MakeBatch(const char *mode = "r+", bool flush_on_close = true) override; | ||||
private: | |||||
/** | |||||
* 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. | |||||
*/ | |||||
bool IsDummy() const { return env == nullptr; } | |||||
}; | }; | ||||
/** RAII class that provides access to a Berkeley database */ | /** RAII class that provides access to a Berkeley database */ | ||||
class BerkeleyBatch : public DatabaseBatch { | class BerkeleyBatch : public DatabaseBatch { | ||||
/** RAII class that automatically cleanses its data on destruction */ | /** RAII class that automatically cleanses its data on destruction */ | ||||
class SafeDbt final { | class SafeDbt final { | ||||
Dbt m_dbt; | Dbt m_dbt; | ||||
▲ Show 20 Lines • Show All 54 Lines • Show Last 20 Lines |