Bitcoin Core
31.1.0
P2P Digital Currency
Toggle main menu visibility
Loading...
Searching...
No Matches
src
interfaces
ipc.h
Go to the documentation of this file.
1
// Copyright (c) 2021-present The Bitcoin Core developers
2
// Distributed under the MIT software license, see the accompanying
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5
#ifndef BITCOIN_INTERFACES_IPC_H
6
#define BITCOIN_INTERFACES_IPC_H
7
8
#include <functional>
9
#include <memory>
10
#include <typeindex>
11
12
namespace
ipc
{
13
struct
Context
;
14
}
// namespace ipc
15
16
namespace
interfaces
{
17
class
Init
;
18
49
class
Ipc
50
{
51
public
:
52
virtual
~Ipc
() =
default
;
53
55
virtual
std::unique_ptr<Init>
spawnProcess
(
const
char
* exe_name) = 0;
56
60
virtual
bool
startSpawnedProcess
(
int
argc,
char
* argv[],
int
&
exit_status
) = 0;
61
67
virtual
std::unique_ptr<Init>
connectAddress
(std::string& address) = 0;
68
71
virtual
void
listenAddress
(std::string& address) = 0;
72
74
virtual
void
disconnectIncoming
() = 0;
75
78
template
<
typename
Interface>
79
void
addCleanup
(Interface& iface, std::function<
void
()> cleanup)
80
{
81
addCleanup
(
typeid
(Interface), &iface, std::move(cleanup));
82
}
83
85
virtual
ipc::Context
&
context
() = 0;
86
87
protected
:
90
virtual
void
addCleanup
(std::type_index type,
void
* iface, std::function<
void
()> cleanup) = 0;
91
};
92
94
std::unique_ptr<Ipc>
MakeIpc
(
const
char
* exe_name,
const
char
* process_argv0,
Init
&
init
);
95
}
// namespace interfaces
96
97
#endif
// BITCOIN_INTERFACES_IPC_H
exit_status
int exit_status
Definition
bitcoin-wallet.cpp:98
Init
Definition
init.h:13
interfaces::Init
Definition
init.h:31
interfaces::Ipc
Definition
ipc.h:50
interfaces::Ipc::context
virtual ipc::Context & context()=0
IPC context struct accessor (see struct definition for more description).
interfaces::Ipc::spawnProcess
virtual std::unique_ptr< Init > spawnProcess(const char *exe_name)=0
Spawn a child process returning pointer to its Init interface.
interfaces::Ipc::listenAddress
virtual void listenAddress(std::string &address)=0
interfaces::Ipc::disconnectIncoming
virtual void disconnectIncoming()=0
Disconnect any incoming connections that are still connected.
interfaces::Ipc::startSpawnedProcess
virtual bool startSpawnedProcess(int argc, char *argv[], int &exit_status)=0
interfaces::Ipc::~Ipc
virtual ~Ipc()=default
interfaces::Ipc::addCleanup
virtual void addCleanup(std::type_index type, void *iface, std::function< void()> cleanup)=0
interfaces::Ipc::addCleanup
void addCleanup(Interface &iface, std::function< void()> cleanup)
Definition
ipc.h:79
interfaces::Ipc::connectAddress
virtual std::unique_ptr< Init > connectAddress(std::string &address)=0
init
Definition
bitcoin-gui.cpp:17
interfaces
Definition
interfaces.cpp:41
interfaces::MakeIpc
std::unique_ptr< Ipc > MakeIpc(const char *exe_name, const char *process_argv0, Init &init)
Return implementation of Ipc interface.
Definition
interfaces.cpp:132
ipc
Definition
ipc.h:12
ipc::Context
Definition
context.h:15
Generated on
for Bitcoin Core by
1.17.0