walletdb: Introduce WalletDatabase abstract class

Make WalletDatabase actually an abstract class and not just a typedef
for BerkeleyDatabase. Have BerkeleyDatabase inherit this class.
This commit is contained in:
Andrew Chow
2020-06-15 16:24:00 -04:00
parent 2179dbcbcd
commit d416ae560e
6 changed files with 84 additions and 33 deletions

View File

@@ -1012,20 +1012,20 @@ bool IsWalletLoaded(const fs::path& wallet_path)
}
/** Return object for accessing database at specified path. */
std::unique_ptr<BerkeleyDatabase> CreateWalletDatabase(const fs::path& path)
std::unique_ptr<WalletDatabase> CreateWalletDatabase(const fs::path& path)
{
std::string filename;
return MakeUnique<BerkeleyDatabase>(GetWalletEnv(path, filename), std::move(filename));
}
/** Return object for accessing dummy database with no read/write capabilities. */
std::unique_ptr<BerkeleyDatabase> CreateDummyWalletDatabase()
std::unique_ptr<WalletDatabase> CreateDummyWalletDatabase()
{
return MakeUnique<BerkeleyDatabase>();
}
/** Return object for accessing temporary in-memory database. */
std::unique_ptr<BerkeleyDatabase> CreateMockWalletDatabase()
std::unique_ptr<WalletDatabase> CreateMockWalletDatabase()
{
return MakeUnique<BerkeleyDatabase>(std::make_shared<BerkeleyEnvironment>(), "");
}