Bitcoin ABC 0.30.3
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)
 
bool GetCoin (const COutPoint &outpoint, Coin &coin) const override
 Retrieve the Coin (unspent transaction output) for a given outpoint. More...
 
- Public Member Functions inherited from CCoinsViewBacked
 CCoinsViewBacked (CCoinsView *viewIn)
 
bool GetCoin (const COutPoint &outpoint, Coin &coin) 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...
 
BlockHash GetBestBlock () const override
 Retrieve the block hash whose state this CCoinsView currently represents. More...
 
std::vector< BlockHashGetHeadBlocks () const override
 Retrieve the range of blocks that may have been only partially written. More...
 
void SetBackend (CCoinsView &viewIn)
 
bool BatchWrite (CCoinsMap &mapCoins, const BlockHash &hashBlock, bool erase=true) override
 Do a bulk modification (multiple Coin changes + BestBlock change). More...
 
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 bool GetCoin (const COutPoint &outpoint, Coin &coin) 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 BlockHash GetBestBlock () const
 Retrieve the block hash whose state this CCoinsView currently represents. More...
 
virtual std::vector< BlockHashGetHeadBlocks () const
 Retrieve the range of blocks that may have been only partially written. More...
 
virtual bool BatchWrite (CCoinsMap &mapCoins, const BlockHash &hashBlock, bool erase=true)
 Do a bulk modification (multiple Coin changes + BestBlock change). More...
 
virtual CCoinsViewCursorCursor () const
 Get a cursor to iterate over the whole state. More...
 
virtual ~CCoinsView ()
 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 374 of file coins.h.

Constructor & Destructor Documentation

◆ CCoinsViewErrorCatcher()

CCoinsViewErrorCatcher::CCoinsViewErrorCatcher ( CCoinsView view)
inlineexplicit

Definition at line 376 of file coins.h.

Member Function Documentation

◆ AddReadErrCallback()

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

Definition at line 379 of file coins.h.

◆ GetCoin()

bool CCoinsViewErrorCatcher::GetCoin ( const COutPoint outpoint,
Coin coin 
) const
overridevirtual

Retrieve the Coin (unspent transaction output) for a given outpoint.

Returns true only when an unspent coin was found, which is returned in coin. When false is returned, coin's value is unspecified.

Reimplemented from CCoinsViewBacked.

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


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