Inside Bitcoin
Opening the selected file…
Opening the selected file…
The code behind the network, with room to understand it.
Release published 2026-10-28 · Snapshot fetched 2026-11-01. Latest stable release at fetch time; development branches and Git history are excluded. Only the selected code window and visible folders load here.
1// Copyright (c) 2018-present The Bitcoin Core developers2// Distributed under the MIT software license, see the accompanying3// file COPYING or http://www.opensource.org/licenses/mit-license.php.5#ifndef BITCOIN_INTERFACES_HANDLER_H6#define BITCOIN_INTERFACES_HANDLER_H8#include <functional>9#include <memory>11namespace btcsignals {12class connection;13} // namespace btcsignals15namespace interfaces {17//! Generic interface for managing an event handler or callback function18//! registered with another interface. Has a single disconnect method to cancel19//! the registration and prevent any future notifications.20class Handler21{22public:23virtual ~Handler() = default;25//! Disconnect the handler.26virtual void disconnect() = 0;27};29//! Return handler wrapping a btcsignals connection.30std::unique_ptr<Handler> MakeSignalHandler(btcsignals::connection connection);32//! Return handler wrapping a cleanup function.33std::unique_ptr<Handler> MakeCleanupHandler(std::function<void()> cleanup);35} // namespace interfaces37#endif // BITCOIN_INTERFACES_HANDLER_H