aboutsummaryrefslogtreecommitdiff
path: root/src/txdb.cpp
diff options
context:
space:
mode:
authorJames O'Beirne <james.obeirne@pm.me>2021-06-18 14:14:15 -0400
committerJames O'Beirne <james.obeirne@pm.me>2021-06-18 14:14:15 -0400
commit0f8a5a4dd530549d37c43da52c923ac3b2af1a03 (patch)
treea945e825a5a1ff3faa098e2f4f83d2a2792cbe99 /src/txdb.cpp
parent615c1adfb07b9b466173166dc2e53ace540e4b32 (diff)
downloadbitcoin-0f8a5a4dd530549d37c43da52c923ac3b2af1a03.tar.xz
move-only(ish): don't expose CCoinsViewDBCursor
No need for this to be a part of the header anymore. Includes a small reference type style change.
Diffstat (limited to 'src/txdb.cpp')
-rw-r--r--src/txdb.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/txdb.cpp b/src/txdb.cpp
index bd0e9f7317..e6469ee159 100644
--- a/src/txdb.cpp
+++ b/src/txdb.cpp
@@ -168,6 +168,28 @@ bool CBlockTreeDB::ReadLastBlockFile(int &nFile) {
return Read(DB_LAST_BLOCK, nFile);
}
+/** Specialization of CCoinsViewCursor to iterate over a CCoinsViewDB */
+class CCoinsViewDBCursor: public CCoinsViewCursor
+{
+public:
+ CCoinsViewDBCursor(CDBIterator* pcursorIn, const uint256&hashBlockIn):
+ CCoinsViewCursor(hashBlockIn), pcursor(pcursorIn) {}
+ ~CCoinsViewDBCursor() {}
+
+ bool GetKey(COutPoint &key) const override;
+ bool GetValue(Coin &coin) const override;
+ unsigned int GetValueSize() const override;
+
+ bool Valid() const override;
+ void Next() override;
+
+private:
+ std::unique_ptr<CDBIterator> pcursor;
+ std::pair<char, COutPoint> keyTmp;
+
+ friend class CCoinsViewDB;
+};
+
std::unique_ptr<CCoinsViewCursor> CCoinsViewDB::Cursor() const
{
auto i = std::make_unique<CCoinsViewDBCursor>(