bitcoin/src/node
Russell Yanofsky 8922d7f6b7 scripted-diff: Remove g_connman, g_banman globals
-BEGIN VERIFY SCRIPT-
sed -i 's:#include <interfaces/chain.h>:#include <banman.h>\n#include <interfaces/chain.h>\n#include <net.h>\n#include <net_processing.h>:' src/node/context.cpp
sed -i 's/namespace interfaces {/class BanMan;\nclass CConnman;\nclass PeerLogicValidation;\n&/' src/node/context.h
sed -i 's/std::unique_ptr<interfaces::Chain> chain/std::unique_ptr<CConnman> connman;\n    std::unique_ptr<PeerLogicValidation> peer_logic;\n    std::unique_ptr<BanMan> banman;\n    &/' src/node/context.h
sed -i '/std::unique_ptr<[^>]\+> \(g_connman\|g_banman\|peerLogic\);/d' src/banman.h src/net.h src/init.cpp
sed -i 's/g_connman/m_context.connman/g' src/interfaces/node.cpp
sed -i 's/g_banman/m_context.banman/g' src/interfaces/node.cpp
sed -i 's/g_connman/m_node.connman/g' src/interfaces/chain.cpp src/test/setup_common.cpp
sed -i 's/g_banman/m_node.banman/g' src/test/setup_common.cpp
sed -i 's/g_connman/node.connman/g' src/init.cpp src/node/transaction.cpp
sed -i 's/g_banman/node.banman/g' src/init.cpp
sed -i 's/peerLogic/node.peer_logic/g' src/init.cpp
sed -i 's/g_connman/g_rpc_node->connman/g' src/rpc/mining.cpp src/rpc/net.cpp src/rpc/rawtransaction.cpp
sed -i 's/g_banman/g_rpc_node->banman/g' src/rpc/net.cpp
sed -i 's/std::shared_ptr<CWallet> wallet =/node.context()->connman = std::move(test.m_node.connman);\n    &/' src/qt/test/wallettests.cpp
-END VERIFY SCRIPT-
2019-10-28 10:30:51 -04:00
..
coin.cpp refactor: pcoinsTip -> CChainState::CoinsTip() 2019-08-06 13:13:06 -04:00
coin.h Remove use of CCoinsViewMemPool::GetCoin in wallet code 2019-03-05 10:20:00 -04:00
coinstats.cpp Remove unused includes 2019-10-15 22:56:43 +00:00
coinstats.h move-only: move coins statistics utils out of RPC 2019-08-27 11:51:56 -04:00
context.cpp scripted-diff: Remove g_connman, g_banman globals 2019-10-28 10:30:51 -04:00
context.h scripted-diff: Remove g_connman, g_banman globals 2019-10-28 10:30:51 -04:00
psbt.cpp [build] Move AnalyzePSBT from psbt.cpp to node/psbt.cpp 2019-04-09 17:53:08 -04:00
psbt.h [build] Move AnalyzePSBT from psbt.cpp to node/psbt.cpp 2019-04-09 17:53:08 -04:00
README.md [docs] Document src subdirectories and different libraries 2019-04-09 17:53:08 -04:00
transaction.cpp scripted-diff: Remove g_connman, g_banman globals 2019-10-28 10:30:51 -04:00
transaction.h Pass NodeContext, ConnMan, BanMan references more places 2019-10-28 10:30:51 -04:00

src/node/

The src/node/ directory contains code that needs to access node state (state in CChain, CBlockIndex, CCoinsView, CTxMemPool, and similar classes).

Code in src/node/ is meant to be segregated from code in src/wallet/ and src/qt/, to ensure wallet and GUI code changes don't interfere with node operation, to allow wallet and GUI code to run in separate processes, and to perhaps eventually allow wallet and GUI code to be maintained in separate source repositories.

As a rule of thumb, code in one of the src/node/, src/wallet/, or src/qt/ directories should avoid calling code in the other directories directly, and only invoke it indirectly through the more limited src/interfaces/ classes.

The src/node/ directory is a new directory introduced in #14978 and at the moment is sparsely populated. Eventually more substantial files like src/validation.cpp and src/txmempool.cpp might be moved there.