Bitcoin Core
32.1.0
P2P Digital Currency
Toggle main menu visibility
Loading...
Searching...
No Matches
src
ipc
protocol.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_IPC_PROTOCOL_H
6
#define BITCOIN_IPC_PROTOCOL_H
7
8
#include <
interfaces/init.h
>
9
#include <
ipc/util.h
>
10
11
#include <functional>
12
#include <memory>
13
#include <typeindex>
14
15
namespace
ipc
{
16
struct
Context
;
17
22
class
Protocol
23
{
24
public
:
25
virtual
~Protocol
() =
default
;
26
36
virtual
std::unique_ptr<interfaces::Init>
connect
(
mp::Stream
stream) = 0;
37
41
virtual
void
listen
(
mp::SocketId
listen_fd,
interfaces::Init
&
init
) = 0;
42
57
virtual
void
serve
(
interfaces::Init
&
init
,
const
std::function<
mp::Stream
()>& make_stream) = 0;
58
60
virtual
mp::Stream
makeStream
(
mp::SocketId
socket) = 0;
61
63
virtual
void
disconnectIncoming
() = 0;
64
67
virtual
void
addCleanup
(std::type_index type,
void
* iface, std::function<
void
()> cleanup) = 0;
68
70
virtual
Context
&
context
() = 0;
71
};
72
}
// namespace ipc
73
74
#endif
// BITCOIN_IPC_PROTOCOL_H
interfaces::Init
Definition
init.h:39
ipc::Protocol
Definition
protocol.h:23
ipc::Protocol::listen
virtual void listen(mp::SocketId listen_fd, interfaces::Init &init)=0
ipc::Protocol::disconnectIncoming
virtual void disconnectIncoming()=0
Disconnect any incoming connections that are still connected.
ipc::Protocol::addCleanup
virtual void addCleanup(std::type_index type, void *iface, std::function< void()> cleanup)=0
ipc::Protocol::context
virtual Context & context()=0
Context accessor.
ipc::Protocol::serve
virtual void serve(interfaces::Init &init, const std::function< mp::Stream()> &make_stream)=0
ipc::Protocol::connect
virtual std::unique_ptr< interfaces::Init > connect(mp::Stream stream)=0
ipc::Protocol::~Protocol
virtual ~Protocol()=default
ipc::Protocol::makeStream
virtual mp::Stream makeStream(mp::SocketId socket)=0
Make stream object from socket id.
init.h
util.h
init
Definition
basic.cpp:11
ipc
Definition
ipc.h:14
mp::SocketId
int SocketId
Definition
util.h:27
mp::Stream
SocketId Stream
Definition
util.h:30
ipc::Context
Definition
context.h:15
Generated on
for Bitcoin Core by
1.18.0