![]() |
Bitcoin Core 31.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< TorController > | tor_controller |
| 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... | |
| BlockCreateOptions | mining_args |
| Mining options used to create block templates. 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 |
| BlockCreateOptions node::NodeContext::mining_args |
Mining options used to create block templates.
This value member is an exception to the dependency guidance above because BlockCreateOptions is a minimal dependency. It could be moved to the BlockTemplateCache proposed in bitcoin/bitcoin#33421.
| 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<TorController> node::NodeContext::tor_controller |
| std::unique_ptr<ValidationSignals> node::NodeContext::validation_signals |
| interfaces::WalletLoader* node::NodeContext::wallet_loader {nullptr} |
| std::unique_ptr<node::Warnings> node::NodeContext::warnings |