Bitcoin Core
32.1.0
P2P Digital Currency
Toggle main menu visibility
Loading...
Searching...
No Matches
src
interfaces
init.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_INIT_H
6
#define BITCOIN_INTERFACES_INIT_H
7
8
// This header is associated with several source files, and IWYU
9
// reaches different conclusions across them about whether these
10
// headers should be included or their classes forward-declared.
11
// Keep the includes so the result is the same for every file.
12
// IWYU pragma: begin_keep
13
#include <
interfaces/chain.h
>
14
#include <
interfaces/echo.h
>
15
#include <
interfaces/mining.h
>
16
#include <
interfaces/node.h
>
17
#include <
interfaces/rpc.h
>
18
#include <
interfaces/wallet.h
>
19
// IWYU pragma: end_keep
20
21
#include <memory>
22
#include <stdexcept>
23
24
namespace
node
{
25
struct
NodeContext
;
26
}
// namespace node
27
28
namespace
interfaces
{
29
class
Ipc
;
30
38
class
Init
39
{
40
public
:
41
virtual
~Init
() =
default
;
42
virtual
std::unique_ptr<Node>
makeNode
() {
return
nullptr
; }
43
virtual
std::unique_ptr<Chain>
makeChain
() {
return
nullptr
; }
44
virtual
std::unique_ptr<Mining>
makeMining
() {
return
nullptr
; }
45
virtual
std::unique_ptr<WalletLoader>
makeWalletLoader
(
Chain
& chain) {
return
nullptr
; }
46
virtual
std::unique_ptr<Echo>
makeEcho
() {
return
nullptr
; }
47
virtual
std::unique_ptr<Rpc>
makeRpc
() {
return
nullptr
; }
48
virtual
Ipc
*
ipc
() {
return
nullptr
; }
49
virtual
bool
canListenIpc
() {
return
false
; }
50
virtual
const
char
*
exeName
() {
return
nullptr
; }
51
virtual
void
makeMiningOld2
() {
throw
std::runtime_error(
"Old mining interface (@2) not supported. Please update your client!"
); }
52
};
53
60
std::unique_ptr<Init>
MakeNodeInit
(
node::NodeContext
&
node
,
int
argc,
char
* argv[],
int
&
exit_status
);
61
63
std::unique_ptr<Init>
MakeWalletInit
(
int
argc,
char
* argv[],
int
&
exit_status
);
64
66
std::unique_ptr<Init>
MakeGuiInit
(
int
argc,
char
* argv[]);
67
85
std::unique_ptr<Init>
MakeBasicInit
(
const
char
* exe_name,
const
char
* process_argv0=
""
);
86
}
// namespace interfaces
87
88
#endif
// BITCOIN_INTERFACES_INIT_H
exit_status
int exit_status
Definition
bitcoin-wallet.cpp:100
interfaces::Chain
Definition
chain.h:117
interfaces::Init
Definition
init.h:39
interfaces::Init::makeRpc
virtual std::unique_ptr< Rpc > makeRpc()
Definition
init.h:47
interfaces::Init::makeEcho
virtual std::unique_ptr< Echo > makeEcho()
Definition
init.h:46
interfaces::Init::ipc
virtual Ipc * ipc()
Definition
init.h:48
interfaces::Init::makeChain
virtual std::unique_ptr< Chain > makeChain()
Definition
init.h:43
interfaces::Init::canListenIpc
virtual bool canListenIpc()
Definition
init.h:49
interfaces::Init::~Init
virtual ~Init()=default
interfaces::Init::makeNode
virtual std::unique_ptr< Node > makeNode()
Definition
init.h:42
interfaces::Init::makeMining
virtual std::unique_ptr< Mining > makeMining()
Definition
init.h:44
interfaces::Init::exeName
virtual const char * exeName()
Definition
init.h:50
interfaces::Init::makeWalletLoader
virtual std::unique_ptr< WalletLoader > makeWalletLoader(Chain &chain)
Definition
init.h:45
interfaces::Init::makeMiningOld2
virtual void makeMiningOld2()
Definition
init.h:51
interfaces::Ipc
Definition
ipc.h:52
echo.h
chain.h
mining.h
wallet.h
interfaces
Definition
interfaces.cpp:42
interfaces::MakeGuiInit
std::unique_ptr< Init > MakeGuiInit(int argc, char *argv[])
Return implementation of Init interface for the gui process.
Definition
bitcoin-gui.cpp:55
interfaces::MakeNodeInit
std::unique_ptr< Init > MakeNodeInit(node::NodeContext &node, int argc, char *argv[], int &exit_status)
Definition
bitcoin-node.cpp:53
interfaces::MakeBasicInit
std::unique_ptr< Init > MakeBasicInit(const char *exe_name, const char *process_argv0)
Definition
basic.cpp:25
interfaces::MakeWalletInit
std::unique_ptr< Init > MakeWalletInit(int argc, char *argv[], int &exit_status)
Return implementation of Init interface for the wallet process.
Definition
bitcoin-wallet.cpp:10
node
Definition
messages.h:21
node.h
rpc.h
node::NodeContext
Definition
context.h:59
Generated on
for Bitcoin Core by
1.18.0