Bitcoin Core 28.99.0
P2P Digital Currency
|
NodeContext struct containing references to chain state and connection state. More...
#include <context.h>
Public Member Functions | |
NodeContext () | |
Declare default constructor and destructor that are not inline, so code instantiating the NodeContext struct doesn't need to #include class definitions for all the unique_ptr members. More... | |
~NodeContext () | |
Public Attributes | |
std::unique_ptr< kernel::Context > | kernel |
libbitcoin_kernel context More... | |
std::unique_ptr< ECC_Context > | ecc_context |
interfaces::Init * | init {nullptr} |
Init interface for initializing current process and connecting to other processes. More... | |
std::function< bool()> | shutdown_request |
Function to request a shutdown. More... | |
util::SignalInterrupt * | shutdown_signal {nullptr} |
Interrupt object used to track whether node shutdown was requested. More... | |
std::unique_ptr< AddrMan > | addrman |
std::unique_ptr< CConnman > | connman |
std::unique_ptr< CTxMemPool > | mempool |
std::unique_ptr< const NetGroupManager > | netgroupman |
std::unique_ptr< CBlockPolicyEstimator > | fee_estimator |
std::unique_ptr< PeerManager > | peerman |
std::unique_ptr< ChainstateManager > | chainman |
std::unique_ptr< BanMan > | banman |
ArgsManager * | args {nullptr} |
std::vector< BaseIndex * > | indexes |
std::unique_ptr< interfaces::Chain > | chain |
std::vector< std::unique_ptr< interfaces::ChainClient > > | chain_clients |
List of all chain clients (wallet processes or other client) connected to node. More... | |
std::unique_ptr< interfaces::Mining > | mining |
Reference to chain client that should used to load or create wallets opened by the gui. More... | |
interfaces::WalletLoader * | wallet_loader {nullptr} |
std::unique_ptr< CScheduler > | scheduler |
std::function< void()> | rpc_interruption_point = [] {} |
std::unique_ptr< KernelNotifications > | notifications |
Issues blocking calls about sync status, errors and warnings. More... | |
std::unique_ptr< ValidationSignals > | validation_signals |
Issues calls about blocks and transactions. More... | |
std::atomic< int > | exit_status {EXIT_SUCCESS} |
std::unique_ptr< node::Warnings > | warnings |
Manages all the node warnings. More... | |
std::thread | background_init_thread |
NodeContext struct containing references to chain state and connection state.
This is used by init, rpc, and test code to pass object references around without needing to declare the same variables and parameters repeatedly, or to use globals. More variables could be added to this struct (particularly references to validation objects) to eliminate use of globals and make code more modular and testable. The struct isn't intended to have any member functions. It should just be a collection of references that can be used without pulling in unwanted dependencies or functionality.
|
default |
Declare default constructor and destructor that are not inline, so code instantiating the NodeContext struct doesn't need to #include class definitions for all the unique_ptr members.
|
default |
ArgsManager* node::NodeContext::args {nullptr} |
std::unique_ptr<interfaces::Chain> node::NodeContext::chain |
std::vector<std::unique_ptr<interfaces::ChainClient> > node::NodeContext::chain_clients |
std::unique_ptr<ChainstateManager> node::NodeContext::chainman |
std::unique_ptr<ECC_Context> node::NodeContext::ecc_context |
std::atomic<int> node::NodeContext::exit_status {EXIT_SUCCESS} |
std::unique_ptr<CBlockPolicyEstimator> node::NodeContext::fee_estimator |
interfaces::Init* node::NodeContext::init {nullptr} |
std::unique_ptr<kernel::Context> node::NodeContext::kernel |
std::unique_ptr<CTxMemPool> node::NodeContext::mempool |
std::unique_ptr<interfaces::Mining> node::NodeContext::mining |
std::unique_ptr<const NetGroupManager> node::NodeContext::netgroupman |
std::unique_ptr<KernelNotifications> node::NodeContext::notifications |
std::unique_ptr<PeerManager> node::NodeContext::peerman |
std::function<void()> node::NodeContext::rpc_interruption_point = [] {} |
std::unique_ptr<CScheduler> node::NodeContext::scheduler |
std::function<bool()> node::NodeContext::shutdown_request |
util::SignalInterrupt* node::NodeContext::shutdown_signal {nullptr} |
std::unique_ptr<ValidationSignals> node::NodeContext::validation_signals |
interfaces::WalletLoader* node::NodeContext::wallet_loader {nullptr} |
std::unique_ptr<node::Warnings> node::NodeContext::warnings |