Bitcoin Core 28.99.0
P2P Digital Currency
Public Member Functions | Private Attributes | List of all members
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
 Retrieve the Coin (unspent transaction output) for a given outpoint. More...
 
bool HaveCoin (const COutPoint &outpoint) const override
 Just check whether a given outpoint is unspent. More...
 
- Public Member Functions inherited from CCoinsViewBacked
 CCoinsViewBacked (CCoinsView *viewIn)
 
std::optional< CoinGetCoin (const COutPoint &outpoint) const override
 Retrieve the Coin (unspent transaction output) for a given outpoint. More...
 
bool HaveCoin (const COutPoint &outpoint) const override
 Just check whether a given outpoint is unspent. More...
 
uint256 GetBestBlock () const override
 Retrieve the block hash whose state this CCoinsView currently represents. More...
 
std::vector< uint256GetHeadBlocks () const override
 Retrieve the range of blocks that may have been only partially written. More...
 
void SetBackend (CCoinsView &viewIn)
 
bool BatchWrite (CoinsViewCacheCursor &cursor, const uint256 &hashBlock) override
 Do a bulk modification (multiple Coin changes + BestBlock change). More...
 
std::unique_ptr< CCoinsViewCursorCursor () const override
 Get a cursor to iterate over the whole state. More...
 
size_t EstimateSize () const override
 Estimate database size (0 if not implemented) More...
 
- Public Member Functions inherited from CCoinsView
virtual std::optional< CoinGetCoin (const COutPoint &outpoint) const
 Retrieve the Coin (unspent transaction output) for a given outpoint. More...
 
virtual bool HaveCoin (const COutPoint &outpoint) const
 Just check whether a given outpoint is unspent. More...
 
virtual uint256 GetBestBlock () const
 Retrieve the block hash whose state this CCoinsView currently represents. More...
 
virtual std::vector< uint256GetHeadBlocks () const
 Retrieve the range of blocks that may have been only partially written. More...
 
virtual bool BatchWrite (CoinsViewCacheCursor &cursor, const uint256 &hashBlock)
 Do a bulk modification (multiple Coin changes + BestBlock change). More...
 
virtual std::unique_ptr< CCoinsViewCursorCursor () const
 Get a cursor to iterate over the whole state. More...
 
virtual ~CCoinsView ()=default
 As we use CCoinsViews polymorphically, have a virtual destructor. More...
 
virtual size_t EstimateSize () const
 Estimate database size (0 if not implemented) More...
 

Private Attributes

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

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 511 of file coins.h.

Constructor & Destructor Documentation

◆ CCoinsViewErrorCatcher()

CCoinsViewErrorCatcher::CCoinsViewErrorCatcher ( CCoinsView view)
inlineexplicit

Definition at line 514 of file coins.h.

Member Function Documentation

◆ AddReadErrCallback()

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

Definition at line 516 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.

Reimplemented from CCoinsViewBacked.

Definition at line 380 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.

Reimplemented from CCoinsViewBacked.

Definition at line 385 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 525 of file coins.h.


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