signals: use an alias for the boost::signals2 namespace

The next commit will add a real implementation in this namespace.
This commit is contained in:
Cory Fields
2022-09-26 21:13:15 +00:00
parent 9ade3929aa
commit edc2978058
10 changed files with 35 additions and 33 deletions

View File

@@ -9,4 +9,6 @@
#include <boost/signals2/optional_last_value.hpp>
#include <boost/signals2/signal.hpp>
namespace btcsignals = boost::signals2;
#endif // BITCOIN_BTCSIGNALS_H

View File

@@ -23,11 +23,11 @@ public:
class SignalHandler : public interfaces::Handler
{
public:
explicit SignalHandler(boost::signals2::connection connection) : m_connection(std::move(connection)) {}
explicit SignalHandler(btcsignals::connection connection) : m_connection(std::move(connection)) {}
void disconnect() override { m_connection.disconnect(); }
boost::signals2::scoped_connection m_connection;
btcsignals::scoped_connection m_connection;
};
class EchoImpl : public interfaces::Echo
@@ -44,7 +44,7 @@ std::unique_ptr<Handler> MakeCleanupHandler(std::function<void()> cleanup)
return std::make_unique<common::CleanupHandler>(std::move(cleanup));
}
std::unique_ptr<Handler> MakeSignalHandler(boost::signals2::connection connection)
std::unique_ptr<Handler> MakeSignalHandler(btcsignals::connection connection)
{
return std::make_unique<common::SignalHandler>(std::move(connection));
}

View File

@@ -24,8 +24,8 @@ public:
virtual void disconnect() = 0;
};
//! Return handler wrapping a boost signal connection.
std::unique_ptr<Handler> MakeSignalHandler(boost::signals2::connection connection);
//! Return handler wrapping a btcsignals connection.
std::unique_ptr<Handler> MakeSignalHandler(btcsignals::connection connection);
//! Return handler wrapping a cleanup function.
std::unique_ptr<Handler> MakeCleanupHandler(std::function<void()> cleanup);

View File

@@ -13,22 +13,22 @@ using util::MakeUnorderedList;
CClientUIInterface uiInterface;
struct UISignals {
boost::signals2::signal<CClientUIInterface::ThreadSafeMessageBoxSig, boost::signals2::optional_last_value<bool>> ThreadSafeMessageBox;
boost::signals2::signal<CClientUIInterface::ThreadSafeQuestionSig, boost::signals2::optional_last_value<bool>> ThreadSafeQuestion;
boost::signals2::signal<CClientUIInterface::InitMessageSig> InitMessage;
boost::signals2::signal<CClientUIInterface::InitWalletSig> InitWallet;
boost::signals2::signal<CClientUIInterface::NotifyNumConnectionsChangedSig> NotifyNumConnectionsChanged;
boost::signals2::signal<CClientUIInterface::NotifyNetworkActiveChangedSig> NotifyNetworkActiveChanged;
boost::signals2::signal<CClientUIInterface::NotifyAlertChangedSig> NotifyAlertChanged;
boost::signals2::signal<CClientUIInterface::ShowProgressSig> ShowProgress;
boost::signals2::signal<CClientUIInterface::NotifyBlockTipSig> NotifyBlockTip;
boost::signals2::signal<CClientUIInterface::NotifyHeaderTipSig> NotifyHeaderTip;
boost::signals2::signal<CClientUIInterface::BannedListChangedSig> BannedListChanged;
btcsignals::signal<CClientUIInterface::ThreadSafeMessageBoxSig, btcsignals::optional_last_value<bool>> ThreadSafeMessageBox;
btcsignals::signal<CClientUIInterface::ThreadSafeQuestionSig, btcsignals::optional_last_value<bool>> ThreadSafeQuestion;
btcsignals::signal<CClientUIInterface::InitMessageSig> InitMessage;
btcsignals::signal<CClientUIInterface::InitWalletSig> InitWallet;
btcsignals::signal<CClientUIInterface::NotifyNumConnectionsChangedSig> NotifyNumConnectionsChanged;
btcsignals::signal<CClientUIInterface::NotifyNetworkActiveChangedSig> NotifyNetworkActiveChanged;
btcsignals::signal<CClientUIInterface::NotifyAlertChangedSig> NotifyAlertChanged;
btcsignals::signal<CClientUIInterface::ShowProgressSig> ShowProgress;
btcsignals::signal<CClientUIInterface::NotifyBlockTipSig> NotifyBlockTip;
btcsignals::signal<CClientUIInterface::NotifyHeaderTipSig> NotifyHeaderTip;
btcsignals::signal<CClientUIInterface::BannedListChangedSig> BannedListChanged;
};
static UISignals g_ui_signals;
#define ADD_SIGNALS_IMPL_WRAPPER(signal_name) \
boost::signals2::connection CClientUIInterface::signal_name##_connect(std::function<signal_name##Sig> fn) \
btcsignals::connection CClientUIInterface::signal_name##_connect(std::function<signal_name##Sig> fn) \
{ \
return g_ui_signals.signal_name.connect(fn); \
}

View File

@@ -67,7 +67,7 @@ public:
#define ADD_SIGNALS_DECL_WRAPPER(signal_name, rtype, ...) \
rtype signal_name(__VA_ARGS__); \
using signal_name##Sig = rtype(__VA_ARGS__); \
boost::signals2::connection signal_name##_connect(std::function<signal_name##Sig> fn)
btcsignals::connection signal_name##_connect(std::function<signal_name##Sig> fn)
/** Show message box. */
ADD_SIGNALS_DECL_WRAPPER(ThreadSafeMessageBox, bool, const bilingual_str& message, unsigned int style);

View File

@@ -13,9 +13,9 @@
#include <string>
/** Store connections so we can disconnect them when suppressing output */
boost::signals2::connection noui_ThreadSafeMessageBoxConn;
boost::signals2::connection noui_ThreadSafeQuestionConn;
boost::signals2::connection noui_InitMessageConn;
btcsignals::connection noui_ThreadSafeMessageBoxConn;
btcsignals::connection noui_ThreadSafeQuestionConn;
btcsignals::connection noui_InitMessageConn;
bool noui_ThreadSafeMessageBox(const bilingual_str& message, unsigned int style)
{

View File

@@ -485,9 +485,9 @@ int GuiMain(int argc, char* argv[])
util::ThreadSetInternalName("main");
// Subscribe to global signals from core
boost::signals2::scoped_connection handler_message_box = ::uiInterface.ThreadSafeMessageBox_connect(noui_ThreadSafeMessageBox);
boost::signals2::scoped_connection handler_question = ::uiInterface.ThreadSafeQuestion_connect(noui_ThreadSafeQuestion);
boost::signals2::scoped_connection handler_init_message = ::uiInterface.InitMessage_connect(noui_InitMessage);
btcsignals::scoped_connection handler_message_box = ::uiInterface.ThreadSafeMessageBox_connect(noui_ThreadSafeMessageBox);
btcsignals::scoped_connection handler_question = ::uiInterface.ThreadSafeQuestion_connect(noui_ThreadSafeQuestion);
btcsignals::scoped_connection handler_init_message = ::uiInterface.InitMessage_connect(noui_InitMessage);
// Do not refer to data directory yet, this can be overridden by Intro::pickDataDirectory

View File

@@ -87,7 +87,7 @@ Txid SendCoins(CWallet& wallet, SendCoinsDialog& sendCoinsDialog, const CTxDesti
->findChild<QCheckBox*>("optInRBF")
->setCheckState(rbf ? Qt::Checked : Qt::Unchecked);
Txid txid;
boost::signals2::scoped_connection c(wallet.NotifyTransactionChanged.connect([&txid](const Txid& hash, ChangeType status) {
btcsignals::scoped_connection c(wallet.NotifyTransactionChanged.connect([&txid](const Txid& hash, ChangeType status) {
if (status == CT_NEW) txid = hash;
}));
ConfirmSend(/*text=*/nullptr, confirm_type);

View File

@@ -155,10 +155,10 @@ public:
};
/** Keypool has new keys */
boost::signals2::signal<void ()> NotifyCanGetAddressesChanged;
btcsignals::signal<void ()> NotifyCanGetAddressesChanged;
/** Birth time changed */
boost::signals2::signal<void (const ScriptPubKeyMan* spkm, int64_t new_birth_time)> NotifyFirstKeyTimeChanged;
btcsignals::signal<void (const ScriptPubKeyMan* spkm, int64_t new_birth_time)> NotifyFirstKeyTimeChanged;
};
/** OutputTypes supported by the LegacyScriptPubKeyMan */

View File

@@ -826,13 +826,13 @@ public:
void Close();
/** Wallet is about to be unloaded */
boost::signals2::signal<void ()> NotifyUnload;
btcsignals::signal<void ()> NotifyUnload;
/**
* Address book entry changed.
* @note called without lock cs_wallet held.
*/
boost::signals2::signal<void(const CTxDestination& address,
btcsignals::signal<void(const CTxDestination& address,
const std::string& label, bool isMine,
AddressPurpose purpose, ChangeType status)>
NotifyAddressBookChanged;
@@ -841,19 +841,19 @@ public:
* Wallet transaction added, removed or updated.
* @note called with lock cs_wallet held.
*/
boost::signals2::signal<void(const Txid& hashTx, ChangeType status)> NotifyTransactionChanged;
btcsignals::signal<void(const Txid& hashTx, ChangeType status)> NotifyTransactionChanged;
/** Show progress e.g. for rescan */
boost::signals2::signal<void (const std::string &title, int nProgress)> ShowProgress;
btcsignals::signal<void (const std::string &title, int nProgress)> ShowProgress;
/** Keypool has new keys */
boost::signals2::signal<void ()> NotifyCanGetAddressesChanged;
btcsignals::signal<void ()> NotifyCanGetAddressesChanged;
/**
* Wallet status (encrypted, locked) changed.
* Note: Called without locks held.
*/
boost::signals2::signal<void (CWallet* wallet)> NotifyStatusChanged;
btcsignals::signal<void (CWallet* wallet)> NotifyStatusChanged;
/** Inquire whether this wallet broadcasts transactions. */
bool GetBroadcastTransactions() const { return fBroadcastTransactions; }