LCOV - code coverage report
Current view: top level - src/init - bitcoind.cpp (source / functions) Hit Total Coverage
Test: total_coverage.info Lines: 13 14 92.9 %
Date: 2026-06-25 07:23:43 Functions: 11 12 91.7 %

          Line data    Source code
       1             : // Copyright (c) 2021 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             : #include <interfaces/chain.h>
       6             : #include <interfaces/coinjoin.h>
       7             : #include <interfaces/echo.h>
       8             : #include <interfaces/init.h>
       9             : #include <interfaces/node.h>
      10             : #include <interfaces/wallet.h>
      11             : #include <node/context.h>
      12             : #include <util/check.h>
      13             : #include <util/system.h>
      14             : 
      15             : #include <memory>
      16             : 
      17             : using node::NodeContext;
      18             : 
      19             : namespace init {
      20             : namespace {
      21             : class BitcoindInit : public interfaces::Init
      22             : {
      23             : public:
      24        9486 :     BitcoindInit(NodeContext& node) : m_node(node)
      25        6324 :     {
      26        3162 :         m_node.args = &gArgs;
      27        3162 :         m_node.init = this;
      28        6324 :     }
      29           0 :     std::unique_ptr<interfaces::Node> makeNode() override { return interfaces::MakeNode(m_node); }
      30        3030 :     std::unique_ptr<interfaces::Chain> makeChain() override { return interfaces::MakeChain(m_node); }
      31        1436 :     std::unique_ptr<interfaces::CoinJoin::Loader> makeCoinJoinLoader() override
      32             :     {
      33        1436 :         return interfaces::MakeCoinJoinLoader(m_node);
      34             :     }
      35        1436 :     std::unique_ptr<interfaces::WalletLoader> makeWalletLoader(interfaces::Chain& chain, interfaces::CoinJoin::Loader& coinjoin_loader) override
      36             :     {
      37        1436 :         return MakeWalletLoader(chain, *Assert(m_node.args), m_node, coinjoin_loader);
      38             :     }
      39           2 :     std::unique_ptr<interfaces::Echo> makeEcho() override { return interfaces::MakeEcho(); }
      40             :     NodeContext& m_node;
      41             : };
      42             : } // namespace
      43             : } // namespace init
      44             : 
      45             : namespace interfaces {
      46        3162 : std::unique_ptr<Init> MakeNodeInit(NodeContext& node, int argc, char* argv[], int& exit_status)
      47             : {
      48        3162 :     return std::make_unique<init::BitcoindInit>(node);
      49             : }
      50             : } // namespace interfaces

Generated by: LCOV version 1.16