5#ifndef BITCOIN_INTERFACES_IPC_H
6#define BITCOIN_INTERFACES_IPC_H
55 virtual std::unique_ptr<Init>
spawnProcess(
const char* exe_name) = 0;
78 template<
typename Interface>
79 void addCleanup(Interface& iface, std::function<
void()> cleanup)
81 addCleanup(
typeid(Interface), &iface, std::move(cleanup));
90 virtual void addCleanup(std::type_index type,
void* iface, std::function<
void()> cleanup) = 0;
94std::unique_ptr<Ipc>
MakeIpc(
const char* exe_name,
const char* process_argv0,
Init&
init);
virtual ipc::Context & context()=0
IPC context struct accessor (see struct definition for more description).
virtual std::unique_ptr< Init > spawnProcess(const char *exe_name)=0
Spawn a child process returning pointer to its Init interface.
virtual void listenAddress(std::string &address)=0
virtual void disconnectIncoming()=0
Disconnect any incoming connections that are still connected.
virtual bool startSpawnedProcess(int argc, char *argv[], int &exit_status)=0
virtual void addCleanup(std::type_index type, void *iface, std::function< void()> cleanup)=0
void addCleanup(Interface &iface, std::function< void()> cleanup)
virtual std::unique_ptr< Init > connectAddress(std::string &address)=0
std::unique_ptr< Ipc > MakeIpc(const char *exe_name, const char *process_argv0, Init &init)
Return implementation of Ipc interface.