19const char* EXE_NAME =
"bitcoin-node";
21class BitcoinNodeInit :
public interfaces::Init
24 BitcoinNodeInit(node::NodeContext& node,
const char* arg0)
26 m_ipc(interfaces::
MakeIpc(EXE_NAME, arg0, *this))
34 std::unique_ptr<interfaces::WalletLoader> makeWalletLoader(interfaces::Chain& chain)
override
39 interfaces::Ipc* ipc()
override {
return m_ipc.get(); }
40 bool canListenIpc()
override {
return true; }
41 const char* exeName()
override {
return EXE_NAME; }
42 node::NodeContext& m_node;
43 std::unique_ptr<interfaces::Ipc> m_ipc;
51 auto init = std::make_unique<init::BitcoinNodeInit>(
node, argc > 0 ? argv[0] :
"");
#define Assert(val)
Identity function.
void InitContext(NodeContext &node)
Initialize node context shutdown and args variables.
std::unique_ptr< Node > MakeNode(node::NodeContext &context)
Return implementation of Node interface.
std::unique_ptr< Echo > MakeEcho()
Return implementation of Echo interface.
std::unique_ptr< WalletLoader > MakeWalletLoader(Chain &chain, ArgsManager &args)
std::unique_ptr< Mining > MakeMining(node::NodeContext &node, bool wait_loaded=true)
std::unique_ptr< Ipc > MakeIpc(const char *exe_name, const char *process_argv0, Init &init)
Return implementation of Ipc interface.
std::unique_ptr< Init > MakeNodeInit(node::NodeContext &node, int argc, char *argv[], int &exit_status)
std::unique_ptr< Chain > MakeChain(node::NodeContext &node)
Return implementation of Chain interface.