18const char* EXE_NAME =
"bitcoin-node";
32 std::unique_ptr<interfaces::WalletClient> makeWalletClient(
interfaces::Chain& chain)
override
39 std::unique_ptr<interfaces::Ipc>
m_ipc;
47 auto init = std::make_unique<init::BitcoinNodeInit>(
node, argc > 0 ? argv[0] :
"");
51 if (
init->m_ipc->startSpawnedProcess(argc, argv, exit_status)) {
std::unique_ptr< interfaces::Ipc > m_ipc
#define Assert(val)
Identity function.
Interface giving clients (wallet processes, maybe other analysis tools in the future) ability to acce...
Initial interface created when a process is first started, and used to give and get access to other i...
Interface providing access to interprocess-communication (IPC) functionality.
std::unique_ptr< Chain > MakeChain(NodeContext &node)
Return implementation of Chain interface.
std::unique_ptr< Echo > MakeEcho()
Return implementation of Echo interface.
std::unique_ptr< Ipc > MakeIpc(const char *exe_name, const char *process_argv0, Init &init)
Return implementation of Ipc interface.
std::unique_ptr< WalletClient > MakeWalletClient(Chain &chain, ArgsManager &args)
Return implementation of ChainClient interface for a wallet client.
std::unique_ptr< Node > MakeNode(NodeContext &context)
Return implementation of Node interface.
std::unique_ptr< Init > MakeNodeInit(NodeContext &node, int argc, char *argv[], int &exit_status)
Return implementation of Init interface for the node process.
NodeContext struct containing references to chain state and connection state.
interfaces::Init * init
Init interface for initializing current process and connecting to other processes.