Bitcoin Core 31.99.0
P2P Digital Currency
Public Member Functions | Protected Attributes | List of all members
CCoinsViewBacked Class Reference

CCoinsView backed by another CCoinsView. More...

#include <coins.h>

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

Public Member Functions

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

Protected Attributes

CCoinsViewbase
 

Detailed Description

CCoinsView backed by another CCoinsView.

Definition at line 371 of file coins.h.

Constructor & Destructor Documentation

◆ CCoinsViewBacked()

CCoinsViewBacked::CCoinsViewBacked ( CCoinsView in_view)
inlineexplicit

Definition at line 377 of file coins.h.

Member Function Documentation

◆ BatchWrite()

void CCoinsViewBacked::BatchWrite ( CoinsViewCacheCursor cursor,
const uint256 block_hash 
)
inlineoverridevirtual

Do a bulk modification (multiple Coin changes + BestBlock change).

The passed cursor is used to iterate through the coins.

Implements CCoinsView.

Reimplemented in CCoinsViewCache.

Definition at line 386 of file coins.h.

Here is the call graph for this function:

◆ Cursor()

std::unique_ptr< CCoinsViewCursor > CCoinsViewBacked::Cursor ( ) const
inlineoverridevirtual

Get a cursor to iterate over the whole state. Implementations may return nullptr.

Implements CCoinsView.

Reimplemented in CCoinsViewCache.

Definition at line 387 of file coins.h.

Here is the call graph for this function:

◆ EstimateSize()

size_t CCoinsViewBacked::EstimateSize ( ) const
inlineoverridevirtual

Estimate database size.

Implements CCoinsView.

Definition at line 388 of file coins.h.

Here is the call graph for this function:

◆ GetBestBlock()

uint256 CCoinsViewBacked::GetBestBlock ( ) const
inlineoverridevirtual

Retrieve the block hash whose state this CCoinsView currently represents.

Implements CCoinsView.

Reimplemented in CCoinsViewCache.

Definition at line 384 of file coins.h.

Here is the call graph for this function:

◆ GetCoin()

std::optional< Coin > CCoinsViewBacked::GetCoin ( const COutPoint outpoint) const
inlineoverridevirtual

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

May populate the cache. Use PeekCoin() to perform a non-caching lookup.

Implements CCoinsView.

Reimplemented in CCoinsViewCache, CCoinsViewErrorCatcher, and CCoinsViewMemPool.

Definition at line 381 of file coins.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetHeadBlocks()

std::vector< uint256 > CCoinsViewBacked::GetHeadBlocks ( ) const
inlineoverridevirtual

Retrieve the range of blocks that may have been only partially written.

If the database is in a consistent state, the result is the empty vector. Otherwise, a two-element vector is returned consisting of the new and the old block hash, in that order.

Implements CCoinsView.

Definition at line 385 of file coins.h.

Here is the call graph for this function:

◆ HaveCoin()

bool CCoinsViewBacked::HaveCoin ( const COutPoint outpoint) const
inlineoverridevirtual

Just check whether a given outpoint is unspent.

May populate the cache. Use PeekCoin() to perform a non-caching lookup.

Implements CCoinsView.

Reimplemented in CCoinsViewCache, and CCoinsViewErrorCatcher.

Definition at line 383 of file coins.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PeekCoin()

std::optional< Coin > CCoinsViewBacked::PeekCoin ( const COutPoint outpoint) const
inlineoverridevirtual

Retrieve the Coin (unspent transaction output) for a given outpoint, without caching results.

Does not populate the cache. Use GetCoin() to cache the result.

Implements CCoinsView.

Reimplemented in CCoinsViewCache, and CCoinsViewErrorCatcher.

Definition at line 382 of file coins.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetBackend()

void CCoinsViewBacked::SetBackend ( CCoinsView in_view)
inline

Definition at line 379 of file coins.h.

Here is the caller graph for this function:

Member Data Documentation

◆ base

CCoinsView* CCoinsViewBacked::base
protected

Definition at line 374 of file coins.h.


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