From 0f8a5a4dd530549d37c43da52c923ac3b2af1a03 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Fri, 18 Jun 2021 14:14:15 -0400 Subject: [PATCH] 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. --- src/txdb.cpp | 22 ++++++++++++++++++++++ src/txdb.h | 22 ---------------------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/txdb.cpp b/src/txdb.cpp index bd0e9f7317f..e6469ee1599 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 pcursor; + std::pair keyTmp; + + friend class CCoinsViewDB; +}; + std::unique_ptr CCoinsViewDB::Cursor() const { auto i = std::make_unique( diff --git a/src/txdb.h b/src/txdb.h index e1096ffeba0..845d80788f2 100644 --- a/src/txdb.h +++ b/src/txdb.h @@ -70,28 +70,6 @@ public: void ResizeCache(size_t new_cache_size) EXCLUSIVE_LOCKS_REQUIRED(cs_main); }; -/** 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 pcursor; - std::pair keyTmp; - - friend class CCoinsViewDB; -}; - /** Access to the block database (blocks/index/) */ class CBlockTreeDB : public CDBWrapper {