Changeset View
Changeset View
Standalone View
Standalone View
src/txdb.h
Show First 20 Lines • Show All 58 Lines • ▼ Show 20 Lines | struct CDiskTxPos : public CDiskBlockPos { | ||||
void SetNull() { | void SetNull() { | ||||
CDiskBlockPos::SetNull(); | CDiskBlockPos::SetNull(); | ||||
nTxOffset = 0; | nTxOffset = 0; | ||||
} | } | ||||
}; | }; | ||||
/** CCoinsView backed by the coin database (chainstate/) */ | /** CCoinsView backed by the coin database (chainstate/) */ | ||||
class CCoinsViewDB : public CCoinsView { | class CCoinsViewDB final : public CCoinsView { | ||||
protected: | protected: | ||||
CDBWrapper db; | CDBWrapper db; | ||||
public: | public: | ||||
CCoinsViewDB(size_t nCacheSize, bool fMemory = false, bool fWipe = false); | CCoinsViewDB(size_t nCacheSize, bool fMemory = false, bool fWipe = false); | ||||
bool GetCoin(const COutPoint &outpoint, Coin &coin) const override; | bool GetCoin(const COutPoint &outpoint, Coin &coin) const override; | ||||
bool HaveCoin(const COutPoint &outpoint) const override; | bool HaveCoin(const COutPoint &outpoint) const override; | ||||
uint256 GetBestBlock() const override; | uint256 GetBestBlock() const override; | ||||
bool BatchWrite(CCoinsMap &mapCoins, const uint256 &hashBlock) override; | bool BatchWrite(CCoinsMap &mapCoins, const uint256 &hashBlock) override; | ||||
CCoinsViewCursor *Cursor() const override; | CCoinsViewCursor *Cursor() const override; | ||||
//! Attempt to update from an older database format. | //! Attempt to update from an older database format. | ||||
//! Returns whether an error occurred. | //! Returns whether an error occurred. | ||||
bool Upgrade(); | bool Upgrade(); | ||||
size_t EstimateSize() const override; | size_t EstimateSize() const override; | ||||
}; | }; | ||||
/** Specialization of CCoinsViewCursor to iterate over a CCoinsViewDB */ | /** Specialization of CCoinsViewCursor to iterate over a CCoinsViewDB */ | ||||
class CCoinsViewDBCursor : public CCoinsViewCursor { | class CCoinsViewDBCursor : public CCoinsViewCursor { | ||||
public: | public: | ||||
~CCoinsViewDBCursor() {} | ~CCoinsViewDBCursor() {} | ||||
bool GetKey(COutPoint &key) const; | bool GetKey(COutPoint &key) const override; | ||||
bool GetValue(Coin &coin) const; | bool GetValue(Coin &coin) const override; | ||||
unsigned int GetValueSize() const; | unsigned int GetValueSize() const override; | ||||
bool Valid() const; | bool Valid() const override; | ||||
void Next(); | void Next() override; | ||||
private: | private: | ||||
CCoinsViewDBCursor(CDBIterator *pcursorIn, const uint256 &hashBlockIn) | CCoinsViewDBCursor(CDBIterator *pcursorIn, const uint256 &hashBlockIn) | ||||
: CCoinsViewCursor(hashBlockIn), pcursor(pcursorIn) {} | : CCoinsViewCursor(hashBlockIn), pcursor(pcursorIn) {} | ||||
std::unique_ptr<CDBIterator> pcursor; | std::unique_ptr<CDBIterator> pcursor; | ||||
std::pair<char, COutPoint> keyTmp; | std::pair<char, COutPoint> keyTmp; | ||||
friend class CCoinsViewDB; | friend class CCoinsViewDB; | ||||
Show All 28 Lines |