diff options
author | James O'Beirne <james.obeirne@pm.me> | 2021-06-18 14:14:15 -0400 |
---|---|---|
committer | James O'Beirne <james.obeirne@pm.me> | 2021-06-18 14:14:15 -0400 |
commit | 0f8a5a4dd530549d37c43da52c923ac3b2af1a03 (patch) | |
tree | a945e825a5a1ff3faa098e2f4f83d2a2792cbe99 /src/txdb.cpp | |
parent | 615c1adfb07b9b466173166dc2e53ace540e4b32 (diff) |
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.cpp | 22 |
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>( |