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

CCoinsView backed by the coin database (chainstate/) More...

#include <txdb.h>

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

Public Member Functions

 CCoinsViewDB (DBParams db_params, CoinsViewOptions options)
 
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...
 
bool NeedsUpgrade ()
 Whether an unsupported database format is used. More...
 
size_t EstimateSize () const override
 Estimate database size. More...
 
void ResizeCache (size_t new_cache_size) EXCLUSIVE_LOCKS_REQUIRED(cs_main)
 Dynamically alter the underlying leveldb cache 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

DBParams m_db_params
 
CoinsViewOptions m_options
 
std::unique_ptr< CDBWrapperm_db
 

Detailed Description

CCoinsView backed by the coin database (chainstate/)

Definition at line 34 of file txdb.h.

Constructor & Destructor Documentation

◆ CCoinsViewDB()

CCoinsViewDB::CCoinsViewDB ( DBParams  db_params,
CoinsViewOptions  options 
)
explicit

Definition at line 54 of file txdb.cpp.

Member Function Documentation

◆ BatchWrite()

void CCoinsViewDB::BatchWrite ( CoinsViewCacheCursor cursor,
const uint256 block_hash 
)
overridevirtual

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

The passed cursor is used to iterate through the coins.

Implements CCoinsView.

Definition at line 107 of file txdb.cpp.

Here is the call graph for this function:

◆ Cursor()

std::unique_ptr< CCoinsViewCursor > CCoinsViewDB::Cursor ( ) const
overridevirtual

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

Implements CCoinsView.

Definition at line 201 of file txdb.cpp.

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

◆ EstimateSize()

size_t CCoinsViewDB::EstimateSize ( ) const
overridevirtual

Estimate database size.

Implements CCoinsView.

Definition at line 173 of file txdb.cpp.

◆ GetBestBlock()

uint256 CCoinsViewDB::GetBestBlock ( ) const
overridevirtual

Retrieve the block hash whose state this CCoinsView currently represents.

Implements CCoinsView.

Definition at line 92 of file txdb.cpp.

Here is the caller graph for this function:

◆ GetCoin()

std::optional< Coin > CCoinsViewDB::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.

Implements CCoinsView.

Definition at line 73 of file txdb.cpp.

Here is the caller graph for this function:

◆ GetHeadBlocks()

std::vector< uint256 > CCoinsViewDB::GetHeadBlocks ( ) const
overridevirtual

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 99 of file txdb.cpp.

Here is the caller graph for this function:

◆ HaveCoin()

bool CCoinsViewDB::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.

Implements CCoinsView.

Definition at line 87 of file txdb.cpp.

Here is the caller graph for this function:

◆ NeedsUpgrade()

bool CCoinsViewDB::NeedsUpgrade ( )

Whether an unsupported database format is used.

Definition at line 33 of file txdb.cpp.

◆ PeekCoin()

std::optional< Coin > CCoinsViewDB::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.

Implements CCoinsView.

Definition at line 82 of file txdb.cpp.

Here is the call graph for this function:

◆ ResizeCache()

void CCoinsViewDB::ResizeCache ( size_t  new_cache_size)

Dynamically alter the underlying leveldb cache size.

Definition at line 59 of file txdb.cpp.

Member Data Documentation

◆ m_db

std::unique_ptr<CDBWrapper> CCoinsViewDB::m_db
protected

Definition at line 39 of file txdb.h.

◆ m_db_params

DBParams CCoinsViewDB::m_db_params
protected

Definition at line 37 of file txdb.h.

◆ m_options

CoinsViewOptions CCoinsViewDB::m_options
protected

Definition at line 38 of file txdb.h.


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