Bitcoin Core 31.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
CCoinsViewErrorCatcher Class Referencefinal

This is a minimally invasive approach to shutdown on LevelDB read errors from the chainstate, while keeping user interface out of the common library, which is shared between bitcoind, and bitcoin-qt and non-server tools. More...

#include <coins.h>

Inheritance diagram for CCoinsViewErrorCatcher:
[legend]
Collaboration diagram for CCoinsViewErrorCatcher:
[legend]

Public Member Functions

 CCoinsViewErrorCatcher (CCoinsView *view)
void AddReadErrCallback (std::function< void()> f)
std::optional< CoinGetCoin (const COutPoint &outpoint) const override
bool HaveCoin (const COutPoint &outpoint) const override
std::optional< CoinPeekCoin (const COutPoint &outpoint) const override
Public Member Functions inherited from CCoinsViewBacked
 CCoinsViewBacked (CCoinsView *viewIn)
uint256 GetBestBlock () const override
 Retrieve the block hash whose state this CCoinsView currently represents.
std::vector< uint256GetHeadBlocks () const override
void SetBackend (CCoinsView &viewIn)
void BatchWrite (CoinsViewCacheCursor &cursor, const uint256 &hashBlock) override
std::unique_ptr< CCoinsViewCursorCursor () const override
 Get a cursor to iterate over the whole state.
size_t EstimateSize () const override
 Estimate database size (0 if not implemented).
Public Member Functions inherited from CCoinsView
virtual ~CCoinsView ()=default
 As we use CCoinsViews polymorphically, have a virtual destructor.

Private Attributes

std::vector< std::function< void()> > m_err_callbacks
 A list of callbacks to execute upon leveldb read error.

Additional Inherited Members

Protected Attributes inherited from CCoinsViewBacked
CCoinsViewbase

Detailed Description

This is a minimally invasive approach to shutdown on LevelDB read errors from the chainstate, while keeping user interface out of the common library, which is shared between bitcoind, and bitcoin-qt and non-server tools.

Writes do not need similar protection, as failure to write is handled by the caller.

Definition at line 571 of file coins.h.

Constructor & Destructor Documentation

◆ CCoinsViewErrorCatcher()

CCoinsViewErrorCatcher::CCoinsViewErrorCatcher ( CCoinsView * view)
inlineexplicit

Definition at line 574 of file coins.h.

Here is the call graph for this function:

Member Function Documentation

◆ AddReadErrCallback()

void CCoinsViewErrorCatcher::AddReadErrCallback ( std::function< void()> f)
inline

Definition at line 576 of file coins.h.

◆ GetCoin()

std::optional< Coin > CCoinsViewErrorCatcher::GetCoin ( const COutPoint & outpoint) const
overridevirtual

Retrieve the Coin (unspent transaction output) for a given outpoint. May populate the cache. Use PeekCoin() to perform a non-caching lookup.

Reimplemented from CCoinsViewBacked.

Definition at line 415 of file coins.cpp.

Here is the call graph for this function:

◆ HaveCoin()

bool CCoinsViewErrorCatcher::HaveCoin ( const COutPoint & outpoint) const
overridevirtual

Just check whether a given outpoint is unspent. May populate the cache. Use PeekCoin() to perform a non-caching lookup.

Reimplemented from CCoinsViewBacked.

Definition at line 420 of file coins.cpp.

Here is the call graph for this function:

◆ PeekCoin()

std::optional< Coin > CCoinsViewErrorCatcher::PeekCoin ( const COutPoint & outpoint) const
overridevirtual

Retrieve the Coin (unspent transaction output) for a given outpoint, without caching results. Does not populate the cache. Use GetCoin() to cache the result.

Reimplemented from CCoinsViewBacked.

Definition at line 425 of file coins.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ m_err_callbacks

std::vector<std::function<void()> > CCoinsViewErrorCatcher::m_err_callbacks
private

A list of callbacks to execute upon leveldb read error.

Definition at line 586 of file coins.h.


The documentation for this class was generated from the following files: