Bitcoin Core 31.99.0
P2P Digital Currency
Public Member Functions | List of all members
CCoinsView Class Referenceabstract

Pure abstract view on the open txout dataset. More...

#include <coins.h>

Inheritance diagram for CCoinsView:
[legend]

Public Member Functions

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...
 

Detailed Description

Pure abstract view on the open txout dataset.

Definition at line 307 of file coins.h.

Constructor & Destructor Documentation

◆ ~CCoinsView()

virtual CCoinsView::~CCoinsView ( )
virtualdefault

As we use CCoinsViews polymorphically, have a virtual destructor.

Member Function Documentation

◆ BatchWrite()

virtual void CCoinsView::BatchWrite ( CoinsViewCacheCursor cursor,
const uint256 block_hash 
)
pure virtual

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

The passed cursor is used to iterate through the coins.

Implemented in CoinsViewEmpty, CCoinsViewBacked, CCoinsViewCache, and CCoinsViewDB.

Here is the caller graph for this function:

◆ Cursor()

virtual std::unique_ptr< CCoinsViewCursor > CCoinsView::Cursor ( ) const
pure virtual

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

Implemented in CoinsViewEmpty, CCoinsViewBacked, CCoinsViewCache, and CCoinsViewDB.

Here is the caller graph for this function:

◆ EstimateSize()

virtual size_t CCoinsView::EstimateSize ( ) const
pure virtual

Estimate database size.

Implemented in CoinsViewEmpty, CCoinsViewBacked, and CCoinsViewDB.

Here is the caller graph for this function:

◆ GetBestBlock()

virtual uint256 CCoinsView::GetBestBlock ( ) const
pure virtual

Retrieve the block hash whose state this CCoinsView currently represents.

Implemented in CoinsViewEmpty, CCoinsViewBacked, CCoinsViewCache, and CCoinsViewDB.

Here is the caller graph for this function:

◆ GetCoin()

virtual std::optional< Coin > CCoinsView::GetCoin ( const COutPoint outpoint) const
pure virtual

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

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

Implemented in CoinsViewEmpty, CCoinsViewBacked, CCoinsViewCache, CCoinsViewErrorCatcher, CCoinsViewDB, and CCoinsViewMemPool.

Here is the caller graph for this function:

◆ GetHeadBlocks()

virtual std::vector< uint256 > CCoinsView::GetHeadBlocks ( ) const
pure virtual

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.

Implemented in CoinsViewEmpty, CCoinsViewBacked, and CCoinsViewDB.

Here is the caller graph for this function:

◆ HaveCoin()

virtual bool CCoinsView::HaveCoin ( const COutPoint outpoint) const
pure virtual

Just check whether a given outpoint is unspent.

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

Implemented in CoinsViewEmpty, CCoinsViewBacked, CCoinsViewCache, CCoinsViewErrorCatcher, and CCoinsViewDB.

Here is the caller graph for this function:

◆ PeekCoin()

virtual std::optional< Coin > CCoinsView::PeekCoin ( const COutPoint outpoint) const
pure virtual

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

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

Implemented in CoinsViewEmpty, CCoinsViewBacked, CCoinsViewCache, CCoinsViewErrorCatcher, and CCoinsViewDB.

Here is the caller graph for this function:

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