Bitcoin Core  27.99.0
P2P Digital Currency
Public Member Functions | Private Attributes | List of all members
ValidationSignals Class Reference

#include <validationinterface.h>

Public Member Functions

 ValidationSignals (std::unique_ptr< util::TaskRunnerInterface > task_runner)
 
 ~ValidationSignals ()
 
void FlushBackgroundCallbacks ()
 Call any remaining callbacks on the calling thread. More...
 
size_t CallbacksPending ()
 
void RegisterValidationInterface (CValidationInterface *callbacks)
 Register subscriber. More...
 
void UnregisterValidationInterface (CValidationInterface *callbacks)
 Unregister subscriber. More...
 
void UnregisterAllValidationInterfaces ()
 Unregister all subscribers. More...
 
void RegisterSharedValidationInterface (std::shared_ptr< CValidationInterface > callbacks)
 Register subscriber. More...
 
void UnregisterSharedValidationInterface (std::shared_ptr< CValidationInterface > callbacks)
 Unregister subscriber. More...
 
void CallFunctionInValidationInterfaceQueue (std::function< void()> func)
 Pushes a function to callback onto the notification queue, guaranteeing any callbacks generated prior to now are finished when the function is called. More...
 
void SyncWithValidationInterfaceQueue () LOCKS_EXCLUDED(cs_main)
 This is a synonym for the following, which asserts certain locks are not held: std::promise<void> promise; CallFunctionInValidationInterfaceQueue([&promise] { promise.set_value(); }); promise.get_future().wait();. More...
 
void UpdatedBlockTip (const CBlockIndex *, const CBlockIndex *, bool fInitialDownload)
 
void TransactionAddedToMempool (const NewMempoolTransactionInfo &, uint64_t mempool_sequence)
 
void TransactionRemovedFromMempool (const CTransactionRef &, MemPoolRemovalReason, uint64_t mempool_sequence)
 
void MempoolTransactionsRemovedForBlock (const std::vector< RemovedMempoolTransactionInfo > &, unsigned int nBlockHeight)
 
void BlockConnected (ChainstateRole, const std::shared_ptr< const CBlock > &, const CBlockIndex *pindex)
 
void BlockDisconnected (const std::shared_ptr< const CBlock > &, const CBlockIndex *pindex)
 
void ChainStateFlushed (ChainstateRole, const CBlockLocator &)
 
void BlockChecked (const CBlock &, const BlockValidationState &)
 
void NewPoWValidBlock (const CBlockIndex *, const std::shared_ptr< const CBlock > &)
 

Private Attributes

std::unique_ptr< ValidationSignalsImplm_internals
 

Detailed Description

Definition at line 161 of file validationinterface.h.

Constructor & Destructor Documentation

◆ ValidationSignals()

ValidationSignals::ValidationSignals ( std::unique_ptr< util::TaskRunnerInterface task_runner)
explicit

Definition at line 95 of file validationinterface.cpp.

◆ ~ValidationSignals()

ValidationSignals::~ValidationSignals ( )

Definition at line 98 of file validationinterface.cpp.

Member Function Documentation

◆ BlockChecked()

void ValidationSignals::BlockChecked ( const CBlock block,
const BlockValidationState state 
)

Definition at line 243 of file validationinterface.cpp.

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

◆ BlockConnected()

void ValidationSignals::BlockConnected ( ChainstateRole  role,
const std::shared_ptr< const CBlock > &  pblock,
const CBlockIndex pindex 
)

Definition at line 206 of file validationinterface.cpp.

Here is the call graph for this function:

◆ BlockDisconnected()

void ValidationSignals::BlockDisconnected ( const std::shared_ptr< const CBlock > &  pblock,
const CBlockIndex pindex 
)

Definition at line 225 of file validationinterface.cpp.

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

◆ CallbacksPending()

size_t ValidationSignals::CallbacksPending ( )

Definition at line 105 of file validationinterface.cpp.

◆ CallFunctionInValidationInterfaceQueue()

void ValidationSignals::CallFunctionInValidationInterfaceQueue ( std::function< void()>  func)

Pushes a function to callback onto the notification queue, guaranteeing any callbacks generated prior to now are finished when the function is called.

Be very careful blocking on func to be called if any locks are held - validation interface clients may not be able to make progress as they often wait for things like cs_main, so blocking until func is called with cs_main will result in a deadlock (that DEBUG_LOCKORDER will miss).

Definition at line 139 of file validationinterface.cpp.

Here is the caller graph for this function:

◆ ChainStateFlushed()

void ValidationSignals::ChainStateFlushed ( ChainstateRole  role,
const CBlockLocator locator 
)

Definition at line 235 of file validationinterface.cpp.

Here is the call graph for this function:

◆ FlushBackgroundCallbacks()

void ValidationSignals::FlushBackgroundCallbacks ( )

Call any remaining callbacks on the calling thread.

Definition at line 100 of file validationinterface.cpp.

◆ MempoolTransactionsRemovedForBlock()

void ValidationSignals::MempoolTransactionsRemovedForBlock ( const std::vector< RemovedMempoolTransactionInfo > &  txs_removed_for_block,
unsigned int  nBlockHeight 
)

Definition at line 215 of file validationinterface.cpp.

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

◆ NewPoWValidBlock()

void ValidationSignals::NewPoWValidBlock ( const CBlockIndex pindex,
const std::shared_ptr< const CBlock > &  block 
)

Definition at line 249 of file validationinterface.cpp.

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

◆ RegisterSharedValidationInterface()

void ValidationSignals::RegisterSharedValidationInterface ( std::shared_ptr< CValidationInterface callbacks)

Register subscriber.

Definition at line 110 of file validationinterface.cpp.

Here is the caller graph for this function:

◆ RegisterValidationInterface()

void ValidationSignals::RegisterValidationInterface ( CValidationInterface callbacks)

Register subscriber.

Definition at line 117 of file validationinterface.cpp.

Here is the call graph for this function:

◆ SyncWithValidationInterfaceQueue()

void ValidationSignals::SyncWithValidationInterfaceQueue ( )

This is a synonym for the following, which asserts certain locks are not held: std::promise<void> promise; CallFunctionInValidationInterfaceQueue([&promise] { promise.set_value(); }); promise.get_future().wait();.

Definition at line 144 of file validationinterface.cpp.

Here is the call graph for this function:

◆ TransactionAddedToMempool()

void ValidationSignals::TransactionAddedToMempool ( const NewMempoolTransactionInfo tx,
uint64_t  mempool_sequence 
)

Definition at line 186 of file validationinterface.cpp.

Here is the call graph for this function:

◆ TransactionRemovedFromMempool()

void ValidationSignals::TransactionRemovedFromMempool ( const CTransactionRef tx,
MemPoolRemovalReason  reason,
uint64_t  mempool_sequence 
)

Definition at line 196 of file validationinterface.cpp.

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

◆ UnregisterAllValidationInterfaces()

void ValidationSignals::UnregisterAllValidationInterfaces ( )

Unregister all subscribers.

Definition at line 134 of file validationinterface.cpp.

◆ UnregisterSharedValidationInterface()

void ValidationSignals::UnregisterSharedValidationInterface ( std::shared_ptr< CValidationInterface callbacks)

Unregister subscriber.

Definition at line 124 of file validationinterface.cpp.

Here is the call graph for this function:

◆ UnregisterValidationInterface()

void ValidationSignals::UnregisterValidationInterface ( CValidationInterface callbacks)

Unregister subscriber.

DEPRECATED. This is not safe to use when the RPC server or main message handler thread is running.

Definition at line 129 of file validationinterface.cpp.

Here is the caller graph for this function:

◆ UpdatedBlockTip()

void ValidationSignals::UpdatedBlockTip ( const CBlockIndex pindexNew,
const CBlockIndex pindexFork,
bool  fInitialDownload 
)

Definition at line 172 of file validationinterface.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ m_internals

std::unique_ptr<ValidationSignalsImpl> ValidationSignals::m_internals
private

Definition at line 163 of file validationinterface.h.


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