aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Posen <jim.posen@gmail.com>2018-05-15 14:57:22 -0700
committerJim Posen <jim.posen@gmail.com>2018-06-04 19:22:21 -0700
commite5af5fc6fb4658599b940d1d50853129b31b8766 (patch)
tree49a664e962fe76d77e22364750cf6ca3dd0d74db
parent9b0ec1a7f9ffae816fd5ca32ff7e7559640b6f6d (diff)
db: Make reusable base class for index databases.
-rw-r--r--src/txdb.cpp10
-rw-r--r--src/txdb.h21
2 files changed, 21 insertions, 10 deletions
diff --git a/src/txdb.cpp b/src/txdb.cpp
index 90d937d4c0..624b23962a 100644
--- a/src/txdb.cpp
+++ b/src/txdb.cpp
@@ -415,8 +415,12 @@ bool CCoinsViewDB::Upgrade() {
return !ShutdownRequested();
}
+BaseIndexDB::BaseIndexDB(const fs::path& path, size_t n_cache_size, bool f_memory, bool f_wipe, bool f_obfuscate) :
+ CDBWrapper(path, n_cache_size, f_memory, f_wipe, f_obfuscate)
+{}
+
TxIndexDB::TxIndexDB(size_t n_cache_size, bool f_memory, bool f_wipe) :
- CDBWrapper(GetDataDir() / "indexes" / "txindex", n_cache_size, f_memory, f_wipe)
+ BaseIndexDB(GetDataDir() / "indexes" / "txindex", n_cache_size, f_memory, f_wipe)
{}
bool TxIndexDB::ReadTxPos(const uint256 &txid, CDiskTxPos& pos) const
@@ -433,7 +437,7 @@ bool TxIndexDB::WriteTxs(const std::vector<std::pair<uint256, CDiskTxPos>>& v_po
return WriteBatch(batch);
}
-bool TxIndexDB::ReadBestBlock(CBlockLocator& locator) const
+bool BaseIndexDB::ReadBestBlock(CBlockLocator& locator) const
{
bool success = Read(DB_BEST_BLOCK, locator);
if (!success) {
@@ -442,7 +446,7 @@ bool TxIndexDB::ReadBestBlock(CBlockLocator& locator) const
return success;
}
-bool TxIndexDB::WriteBestBlock(const CBlockLocator& locator)
+bool BaseIndexDB::WriteBestBlock(const CBlockLocator& locator)
{
return Write(DB_BEST_BLOCK, locator);
}
diff --git a/src/txdb.h b/src/txdb.h
index 3c509373f4..f9d9e4246c 100644
--- a/src/txdb.h
+++ b/src/txdb.h
@@ -123,6 +123,19 @@ public:
bool LoadBlockIndexGuts(const Consensus::Params& consensusParams, std::function<CBlockIndex*(const uint256&)> insertBlockIndex);
};
+class BaseIndexDB : public CDBWrapper
+{
+public:
+ BaseIndexDB(const fs::path& path, size_t n_cache_size,
+ bool f_memory = false, bool f_wipe = false, bool f_obfuscate = false);
+
+ /// Read block locator of the chain that the index is in sync with.
+ bool ReadBestBlock(CBlockLocator& locator) const;
+
+ /// Write block locator of the chain that the index is in sync with.
+ bool WriteBestBlock(const CBlockLocator& locator);
+};
+
/**
* Access to the txindex database (indexes/txindex/)
*
@@ -132,7 +145,7 @@ public:
* and block index entries may not be flushed to disk until after this database
* is updated.
*/
-class TxIndexDB : public CDBWrapper
+class TxIndexDB : public BaseIndexDB
{
public:
explicit TxIndexDB(size_t n_cache_size, bool f_memory = false, bool f_wipe = false);
@@ -144,12 +157,6 @@ public:
/// Write a batch of transaction positions to the DB.
bool WriteTxs(const std::vector<std::pair<uint256, CDiskTxPos>>& v_pos);
- /// Read block locator of the chain that the txindex is in sync with.
- bool ReadBestBlock(CBlockLocator& locator) const;
-
- /// Write block locator of the chain that the txindex is in sync with.
- bool WriteBestBlock(const CBlockLocator& locator);
-
/// Migrate txindex data from the block tree DB, where it may be for older nodes that have not
/// been upgraded yet to the new database.
bool MigrateData(CBlockTreeDB& block_tree_db, const CBlockLocator& best_locator);