diff options
Diffstat (limited to 'src/interfaces')
-rw-r--r-- | src/interfaces/chain.h | 14 | ||||
-rw-r--r-- | src/interfaces/echo.cpp | 18 | ||||
-rw-r--r-- | src/interfaces/handler.cpp | 45 | ||||
-rw-r--r-- | src/interfaces/handler.h | 6 | ||||
-rw-r--r-- | src/interfaces/init.cpp | 17 | ||||
-rw-r--r-- | src/interfaces/init.h | 21 | ||||
-rw-r--r-- | src/interfaces/node.h | 9 | ||||
-rw-r--r-- | src/interfaces/wallet.h | 2 |
8 files changed, 29 insertions, 103 deletions
diff --git a/src/interfaces/chain.h b/src/interfaces/chain.h index 5fc0e540a9..a3fa753a98 100644 --- a/src/interfaces/chain.h +++ b/src/interfaces/chain.h @@ -1,10 +1,11 @@ -// Copyright (c) 2018-2021 The Bitcoin Core developers +// Copyright (c) 2018-2022 The Bitcoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef BITCOIN_INTERFACES_CHAIN_H #define BITCOIN_INTERFACES_CHAIN_H +#include <blockfilter.h> #include <primitives/transaction.h> // For CTransactionRef #include <util/settings.h> // For util::SettingsValue @@ -143,6 +144,13 @@ public: //! or one of its ancestors. virtual std::optional<int> findLocatorFork(const CBlockLocator& locator) = 0; + //! Returns whether a block filter index is available. + virtual bool hasBlockFilterIndex(BlockFilterType filter_type) = 0; + + //! Returns whether any of the elements match the block via a BIP 157 block filter + //! or std::nullopt if the block filter for this block couldn't be found. + virtual std::optional<bool> blockFilterMatchesAny(BlockFilterType filter_type, const uint256& block_hash, const GCSFilter::ElementSet& filter_set) = 0; + //! Return whether node has the block and optionally return block metadata //! or contents. virtual bool findBlock(const uint256& hash, const FoundBlock& block={}) = 0; @@ -260,8 +268,8 @@ public: { public: virtual ~Notifications() {} - virtual void transactionAddedToMempool(const CTransactionRef& tx, uint64_t mempool_sequence) {} - virtual void transactionRemovedFromMempool(const CTransactionRef& tx, MemPoolRemovalReason reason, uint64_t mempool_sequence) {} + virtual void transactionAddedToMempool(const CTransactionRef& tx) {} + virtual void transactionRemovedFromMempool(const CTransactionRef& tx, MemPoolRemovalReason reason) {} virtual void blockConnected(const BlockInfo& block) {} virtual void blockDisconnected(const BlockInfo& block) {} virtual void updatedBlockTip() {} diff --git a/src/interfaces/echo.cpp b/src/interfaces/echo.cpp deleted file mode 100644 index 9bbb42217b..0000000000 --- a/src/interfaces/echo.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2021 The Bitcoin Core developers -// Distributed under the MIT software license, see the accompanying -// file COPYING or http://www.opensource.org/licenses/mit-license.php. - -#include <interfaces/echo.h> - -#include <memory> - -namespace interfaces { -namespace { -class EchoImpl : public Echo -{ -public: - std::string echo(const std::string& echo) override { return echo; } -}; -} // namespace -std::unique_ptr<Echo> MakeEcho() { return std::make_unique<EchoImpl>(); } -} // namespace interfaces diff --git a/src/interfaces/handler.cpp b/src/interfaces/handler.cpp deleted file mode 100644 index adb7031cbc..0000000000 --- a/src/interfaces/handler.cpp +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright (c) 2018-2021 The Bitcoin Core developers -// Distributed under the MIT software license, see the accompanying -// file COPYING or http://www.opensource.org/licenses/mit-license.php. - -#include <interfaces/handler.h> - - -#include <boost/signals2/connection.hpp> -#include <utility> - -namespace interfaces { -namespace { - -class HandlerImpl : public Handler -{ -public: - explicit HandlerImpl(boost::signals2::connection connection) : m_connection(std::move(connection)) {} - - void disconnect() override { m_connection.disconnect(); } - - boost::signals2::scoped_connection m_connection; -}; - -class CleanupHandler : public Handler -{ -public: - explicit CleanupHandler(std::function<void()> cleanup) : m_cleanup(std::move(cleanup)) {} - ~CleanupHandler() override { if (!m_cleanup) return; m_cleanup(); m_cleanup = nullptr; } - void disconnect() override { if (!m_cleanup) return; m_cleanup(); m_cleanup = nullptr; } - std::function<void()> m_cleanup; -}; - -} // namespace - -std::unique_ptr<Handler> MakeHandler(boost::signals2::connection connection) -{ - return std::make_unique<HandlerImpl>(std::move(connection)); -} - -std::unique_ptr<Handler> MakeHandler(std::function<void()> cleanup) -{ - return std::make_unique<CleanupHandler>(std::move(cleanup)); -} - -} // namespace interfaces diff --git a/src/interfaces/handler.h b/src/interfaces/handler.h index 11baf9dd65..7751d82347 100644 --- a/src/interfaces/handler.h +++ b/src/interfaces/handler.h @@ -1,4 +1,4 @@ -// Copyright (c) 2018-2020 The Bitcoin Core developers +// Copyright (c) 2018-2022 The Bitcoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -29,10 +29,10 @@ public: }; //! Return handler wrapping a boost signal connection. -std::unique_ptr<Handler> MakeHandler(boost::signals2::connection connection); +std::unique_ptr<Handler> MakeSignalHandler(boost::signals2::connection connection); //! Return handler wrapping a cleanup function. -std::unique_ptr<Handler> MakeHandler(std::function<void()> cleanup); +std::unique_ptr<Handler> MakeCleanupHandler(std::function<void()> cleanup); } // namespace interfaces diff --git a/src/interfaces/init.cpp b/src/interfaces/init.cpp deleted file mode 100644 index f0f8aa5fed..0000000000 --- a/src/interfaces/init.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) 2021 The Bitcoin Core developers -// Distributed under the MIT software license, see the accompanying -// file COPYING or http://www.opensource.org/licenses/mit-license.php. - -#include <interfaces/chain.h> -#include <interfaces/echo.h> -#include <interfaces/init.h> -#include <interfaces/node.h> -#include <interfaces/wallet.h> - -namespace interfaces { -std::unique_ptr<Node> Init::makeNode() { return {}; } -std::unique_ptr<Chain> Init::makeChain() { return {}; } -std::unique_ptr<WalletLoader> Init::makeWalletLoader(Chain& chain) { return {}; } -std::unique_ptr<Echo> Init::makeEcho() { return {}; } -Ipc* Init::ipc() { return nullptr; } -} // namespace interfaces diff --git a/src/interfaces/init.h b/src/interfaces/init.h index 2153076366..addc45aa26 100644 --- a/src/interfaces/init.h +++ b/src/interfaces/init.h @@ -1,10 +1,15 @@ -// Copyright (c) 2021 The Bitcoin Core developers +// Copyright (c) 2021-2022 The Bitcoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef BITCOIN_INTERFACES_INIT_H #define BITCOIN_INTERFACES_INIT_H +#include <interfaces/chain.h> +#include <interfaces/echo.h> +#include <interfaces/node.h> +#include <interfaces/wallet.h> + #include <memory> namespace node { @@ -12,11 +17,7 @@ struct NodeContext; } // namespace node namespace interfaces { -class Chain; -class Echo; class Ipc; -class Node; -class WalletLoader; //! Initial interface created when a process is first started, and used to give //! and get access to other interfaces (Node, Chain, Wallet, etc). @@ -29,11 +30,11 @@ class Init { public: virtual ~Init() = default; - virtual std::unique_ptr<Node> makeNode(); - virtual std::unique_ptr<Chain> makeChain(); - virtual std::unique_ptr<WalletLoader> makeWalletLoader(Chain& chain); - virtual std::unique_ptr<Echo> makeEcho(); - virtual Ipc* ipc(); + virtual std::unique_ptr<Node> makeNode() { return nullptr; } + virtual std::unique_ptr<Chain> makeChain() { return nullptr; } + virtual std::unique_ptr<WalletLoader> makeWalletLoader(Chain& chain) { return nullptr; } + virtual std::unique_ptr<Echo> makeEcho() { return nullptr; } + virtual Ipc* ipc() { return nullptr; } }; //! Return implementation of Init interface for the node process. If the argv diff --git a/src/interfaces/node.h b/src/interfaces/node.h index dbdb21eb91..7e87d5a523 100644 --- a/src/interfaces/node.h +++ b/src/interfaces/node.h @@ -1,4 +1,4 @@ -// Copyright (c) 2018-2021 The Bitcoin Core developers +// Copyright (c) 2018-2022 The Bitcoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -177,11 +177,8 @@ public: //! Is initial block download. virtual bool isInitialBlockDownload() = 0; - //! Get reindex. - virtual bool getReindex() = 0; - - //! Get importing. - virtual bool getImporting() = 0; + //! Is loading blocks. + virtual bool isLoadingBlocks() = 0; //! Set network active. virtual void setNetworkActive(bool active) = 0; diff --git a/src/interfaces/wallet.h b/src/interfaces/wallet.h index 1148dc7e4c..86707b20b1 100644 --- a/src/interfaces/wallet.h +++ b/src/interfaces/wallet.h @@ -1,4 +1,4 @@ -// Copyright (c) 2018-2021 The Bitcoin Core developers +// Copyright (c) 2018-2022 The Bitcoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. |