File tree Expand file tree Collapse file tree 17 files changed +63
-22
lines changed Expand file tree Collapse file tree 17 files changed +63
-22
lines changed Original file line number Diff line number Diff line change 9
9
</PropertyGroup >
10
10
<ItemGroup >
11
11
<ClCompile Include =" ..\..\src\qt\main.cpp" />
12
+ <ClCompile Include =" ..\..\src\init\bitcoind.cpp" />
12
13
<ResourceCompile Include =" ..\..\src\qt\res\bitcoin-qt-res.rc" />
13
14
</ItemGroup >
14
15
<ItemGroup >
Original file line number Diff line number Diff line change 8
8
<OutDir >$(SolutionDir)$(Platform)\$(Configuration)\</OutDir >
9
9
</PropertyGroup >
10
10
<ItemGroup >
11
+ <ClCompile Include =" ..\..\src\init\bitcoind.cpp" />
11
12
<ClCompile Include =" ..\..\src\test\util\setup_common.cpp" />
12
13
<ClCompile Include =" ..\..\src\qt\test\addressbooktests.cpp" />
13
14
<ClCompile Include =" ..\..\src\qt\test\apptests.cpp" />
Original file line number Diff line number Diff line change @@ -338,14 +338,14 @@ bitcoin_qt_libtoolflags = $(AM_LIBTOOLFLAGS) --tag CXX
338
338
339
339
qt_bitcoin_qt_CPPFLAGS = $(bitcoin_qt_cppflags)
340
340
qt_bitcoin_qt_CXXFLAGS = $(bitcoin_qt_cxxflags)
341
- qt_bitcoin_qt_SOURCES = $(bitcoin_qt_sources)
341
+ qt_bitcoin_qt_SOURCES = $(bitcoin_qt_sources) init/bitcoind.cpp
342
342
qt_bitcoin_qt_LDADD = $(bitcoin_qt_ldadd)
343
343
qt_bitcoin_qt_LDFLAGS = $(bitcoin_qt_ldflags)
344
344
qt_bitcoin_qt_LIBTOOLFLAGS = $(bitcoin_qt_libtoolflags)
345
345
346
346
bitcoin_gui_CPPFLAGS = $(bitcoin_qt_cppflags)
347
347
bitcoin_gui_CXXFLAGS = $(bitcoin_qt_cxxflags)
348
- bitcoin_gui_SOURCES = $(bitcoin_qt_sources)
348
+ bitcoin_gui_SOURCES = $(bitcoin_qt_sources) init/bitcoind.cpp
349
349
bitcoin_gui_LDADD = $(bitcoin_qt_ldadd)
350
350
bitcoin_gui_LDFLAGS = $(bitcoin_qt_ldflags)
351
351
bitcoin_gui_LIBTOOLFLAGS = $(bitcoin_qt_libtoolflags)
Original file line number Diff line number Diff line change @@ -28,6 +28,7 @@ qt_test_test_bitcoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_
28
28
$(QT_INCLUDES) $(QT_TEST_INCLUDES)
29
29
30
30
qt_test_test_bitcoin_qt_SOURCES = \
31
+ init/bitcoind.cpp \
31
32
qt/test/apptests.cpp \
32
33
qt/test/rpcnestedtests.cpp \
33
34
qt/test/test_main.cpp \
Original file line number Diff line number Diff line change 5
5
#include < util/system.h>
6
6
#include < walletinitinterface.h>
7
7
8
+ class ArgsManager ;
8
9
class CWallet ;
9
10
10
11
namespace interfaces {
11
12
class Chain ;
12
13
class Handler ;
13
14
class Wallet ;
15
+ class WalletClient ;
14
16
}
15
17
16
18
class DummyWalletInit : public WalletInitInterface {
@@ -63,4 +65,9 @@ std::unique_ptr<Wallet> MakeWallet(const std::shared_ptr<CWallet>& wallet)
63
65
throw std::logic_error (" Wallet function called in non-wallet build." );
64
66
}
65
67
68
+ std::unique_ptr<WalletClient> MakeWalletClient (Chain& chain, ArgsManager& args)
69
+ {
70
+ throw std::logic_error (" Wallet function called in non-wallet build." );
71
+ }
72
+
66
73
} // namespace interfaces
Original file line number Diff line number Diff line change 26
26
#include < index/txindex.h>
27
27
#include < init/common.h>
28
28
#include < interfaces/chain.h>
29
+ #include < interfaces/init.h>
29
30
#include < interfaces/node.h>
30
31
#include < mapport.h>
31
32
#include < miner.h>
@@ -1056,7 +1057,7 @@ bool AppInitLockDataDirectory()
1056
1057
1057
1058
bool AppInitInterfaces (NodeContext& node)
1058
1059
{
1059
- node.chain = interfaces::MakeChain ( node);
1060
+ node.chain = node. init -> makeChain ( );
1060
1061
// Create client interfaces for wallets that are supposed to be loaded
1061
1062
// according to -wallet and -disablewallet options. This only constructs
1062
1063
// the interfaces, it doesn't load wallet data. Wallets actually get loaded
Original file line number Diff line number Diff line change 2
2
// Distributed under the MIT software license, see the accompanying
3
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
4
5
+ #include < interfaces/chain.h>
5
6
#include < interfaces/echo.h>
6
7
#include < interfaces/init.h>
7
8
#include < interfaces/ipc.h>
9
+ #include < interfaces/node.h>
10
+ #include < interfaces/wallet.h>
8
11
#include < node/context.h>
9
12
#include < util/system.h>
10
13
@@ -24,6 +27,12 @@ class BitcoinNodeInit : public interfaces::Init
24
27
m_node.args = &gArgs ;
25
28
m_node.init = this ;
26
29
}
30
+ std::unique_ptr<interfaces::Node> makeNode () override { return interfaces::MakeNode (m_node); }
31
+ std::unique_ptr<interfaces::Chain> makeChain () override { return interfaces::MakeChain (m_node); }
32
+ std::unique_ptr<interfaces::WalletClient> makeWalletClient (interfaces::Chain& chain) override
33
+ {
34
+ return MakeWalletClient (chain, *Assert (m_node.args ));
35
+ }
27
36
std::unique_ptr<interfaces::Echo> makeEcho () override { return interfaces::MakeEcho (); }
28
37
interfaces::Ipc* ipc () override { return m_ipc.get (); }
29
38
NodeContext& m_node;
Original file line number Diff line number Diff line change 2
2
// Distributed under the MIT software license, see the accompanying
3
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
4
5
+ #include < interfaces/chain.h>
6
+ #include < interfaces/echo.h>
5
7
#include < interfaces/init.h>
8
+ #include < interfaces/node.h>
9
+ #include < interfaces/wallet.h>
6
10
#include < node/context.h>
7
11
#include < util/system.h>
8
12
@@ -18,6 +22,13 @@ class BitcoindInit : public interfaces::Init
18
22
m_node.args = &gArgs ;
19
23
m_node.init = this ;
20
24
}
25
+ std::unique_ptr<interfaces::Node> makeNode () override { return interfaces::MakeNode (m_node); }
26
+ std::unique_ptr<interfaces::Chain> makeChain () override { return interfaces::MakeChain (m_node); }
27
+ std::unique_ptr<interfaces::WalletClient> makeWalletClient (interfaces::Chain& chain) override
28
+ {
29
+ return MakeWalletClient (chain, *Assert (m_node.args ));
30
+ }
31
+ std::unique_ptr<interfaces::Echo> makeEcho () override { return interfaces::MakeEcho (); }
21
32
NodeContext& m_node;
22
33
};
23
34
} // namespace
Original file line number Diff line number Diff line change @@ -230,7 +230,7 @@ class Node
230
230
};
231
231
232
232
// ! Return implementation of Node interface.
233
- std::unique_ptr<Node> MakeNode (NodeContext* context = nullptr );
233
+ std::unique_ptr<Node> MakeNode (NodeContext& context);
234
234
235
235
// ! Block tip (could be a header or not, depends on the subscribed signal).
236
236
struct BlockTip {
Original file line number Diff line number Diff line change @@ -72,7 +72,7 @@ class NodeImpl : public Node
72
72
private:
73
73
ChainstateManager& chainman () { return *Assert (m_context->chainman ); }
74
74
public:
75
- explicit NodeImpl (NodeContext* context) { setContext (context); }
75
+ explicit NodeImpl (NodeContext& context) { setContext (& context); }
76
76
void initLogging () override { InitLogging (*Assert (m_context->args )); }
77
77
void initParameterInteraction () override { InitParameterInteraction (*Assert (m_context->args )); }
78
78
bilingual_str getWarnings () override { return GetWarnings (true ); }
@@ -701,6 +701,6 @@ class ChainImpl : public Chain
701
701
} // namespace node
702
702
703
703
namespace interfaces {
704
- std::unique_ptr<Node> MakeNode (NodeContext* context) { return std::make_unique<node::NodeImpl>(context); }
704
+ std::unique_ptr<Node> MakeNode (NodeContext& context) { return std::make_unique<node::NodeImpl>(context); }
705
705
std::unique_ptr<Chain> MakeChain (NodeContext& context) { return std::make_unique<node::ChainImpl>(context); }
706
706
} // namespace interfaces
You can’t perform that action at this time.
0 commit comments