Bitcoin ABC  0.24.7
P2P Digital Currency
init.h
Go to the documentation of this file.
1 // Copyright (c) 2009-2010 Satoshi Nakamoto
2 // Copyright (c) 2009-2018 The Bitcoin Core developers
3 // Copyright (c) 2018-2019 The Bitcoin developers
4 // Distributed under the MIT software license, see the accompanying
5 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
6 
7 #ifndef BITCOIN_INIT_H
8 #define BITCOIN_INIT_H
9 
10 #include <util/system.h>
11 
12 #include <memory>
13 #include <string>
14 
15 class ArgsManager;
16 class Config;
17 class CScheduler;
18 class CWallet;
20 struct NodeContext;
21 namespace interfaces {
22 struct BlockAndHeaderTipInfo;
23 }
24 class RPCServer;
25 
26 namespace boost {
27 class thread_group;
28 } // namespace boost
29 namespace util {
30 class Ref;
31 } // namespace util
32 
34 void Interrupt(NodeContext &node);
35 void Shutdown(NodeContext &node);
37 void InitLogging(const ArgsManager &args);
40 
47 bool AppInitBasicSetup(ArgsManager &args);
55 bool AppInitParameterInteraction(Config &config, const ArgsManager &args);
63 bool AppInitSanityChecks();
76 bool AppInitInterfaces(NodeContext &node);
83 bool AppInitMain(Config &config, RPCServer &rpcServer,
84  HTTPRPCRequestProcessor &httpRPCRequestProcessor,
85  NodeContext &node,
86  interfaces::BlockAndHeaderTipInfo *tip_info = nullptr);
87 
91 void SetupServerArgs(NodeContext &node);
92 
94 std::string LicenseInfo();
95 
96 #endif // BITCOIN_INIT_H
interfaces
Definition: dummywallet.cpp:12
CScheduler
Simple class for background tasks that should be run periodically or once "after a while".
Definition: scheduler.h:35
InitLogging
void InitLogging(const ArgsManager &args)
Initialize the logging infrastructure.
Definition: init.cpp:1674
LicenseInfo
std::string LicenseInfo()
Returns licensing information (for -version)
Definition: init.cpp:1303
SetupServerArgs
void SetupServerArgs(NodeContext &node)
Register all arguments with the ArgsManager.
Definition: init.cpp:388
HTTPRPCRequestProcessor
Definition: httprpc.h:17
AppInitParameterInteraction
bool AppInitParameterInteraction(Config &config, const ArgsManager &args)
Initialization: parameter interaction.
Definition: init.cpp:1766
interfaces::BlockAndHeaderTipInfo
Block and header tip information.
Definition: node.h:46
RPCServer
Class for registering and managing all RPC calls.
Definition: server.h:40
InitParameterInteraction
void InitParameterInteraction(ArgsManager &args)
Parameter interaction: change current parameters depending on various rules.
Definition: init.cpp:1562
Interrupt
void Interrupt(NodeContext &node)
Interrupt threads.
Definition: init.cpp:164
AppInitSanityChecks
bool AppInitSanityChecks()
Initialization sanity checks: ecc init, sanity checks, dir lock.
Definition: init.cpp:2131
Config
Definition: config.h:17
Shutdown
void Shutdown(NodeContext &node)
Definition: init.cpp:185
AppInitMain
bool AppInitMain(Config &config, RPCServer &rpcServer, HTTPRPCRequestProcessor &httpRPCRequestProcessor, NodeContext &node, interfaces::BlockAndHeaderTipInfo *tip_info=nullptr)
Bitcoin main initialization.
Definition: init.cpp:2176
system.h
ArgsManager
Definition: system.h:152
CWallet
A CWallet maintains a set of transactions and balances, and provides the ability to create new transa...
Definition: wallet.h:678
AppInitBasicSetup
bool AppInitBasicSetup(ArgsManager &args)
Initialize bitcoin: Basic context setup.
Definition: init.cpp:1723
AppInitInterfaces
bool AppInitInterfaces(NodeContext &node)
Initialize node and wallet interface pointers.
Definition: init.cpp:2166
AppInitLockDataDirectory
bool AppInitLockDataDirectory()
Lock bitcoin data directory.
Definition: init.cpp:2154
NodeContext
NodeContext struct containing references to chain state and connection state.
Definition: context.h:36
util
Definition: httprpc.h:13