mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-21 14:34:49 +01:00
fa5ce27385
ui: Compile boost:signals2 only once (MarcoFalke)
Pull request description:
ui is one of the modules that poison other modules with `boost/signals2` headers. This moves the include to the cpp file and uses a forward declaration in the header.
Locally this speeds up the incremental build (building everything that uses the ui module) with gcc by ~5% for me. Gcc uses ~5% less memory.
Would be nice if someone could verify the numbers roughly.
I presume the improvements will be more pronounced if the other models would stop exposing the boost header as well.
Tree-SHA512: 078360eba330ddbca4268bd8552927eae242a239e18dfded25ec20be72650a68cd83af7ac160690249b943d33ae35d15df1313f1f60a0c28b9526853aa7d1e40
58 lines
1.8 KiB
C++
58 lines
1.8 KiB
C++
// Copyright (c) 2010 Satoshi Nakamoto
|
|
// Copyright (c) 2009-2018 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 <noui.h>
|
|
|
|
#include <ui_interface.h>
|
|
#include <util.h>
|
|
|
|
#include <cstdio>
|
|
#include <stdint.h>
|
|
#include <string>
|
|
|
|
static bool noui_ThreadSafeMessageBox(const std::string& message, const std::string& caption, unsigned int style)
|
|
{
|
|
bool fSecure = style & CClientUIInterface::SECURE;
|
|
style &= ~CClientUIInterface::SECURE;
|
|
|
|
std::string strCaption;
|
|
// Check for usage of predefined caption
|
|
switch (style) {
|
|
case CClientUIInterface::MSG_ERROR:
|
|
strCaption += _("Error");
|
|
break;
|
|
case CClientUIInterface::MSG_WARNING:
|
|
strCaption += _("Warning");
|
|
break;
|
|
case CClientUIInterface::MSG_INFORMATION:
|
|
strCaption += _("Information");
|
|
break;
|
|
default:
|
|
strCaption += caption; // Use supplied caption (can be empty)
|
|
}
|
|
|
|
if (!fSecure)
|
|
LogPrintf("%s: %s\n", strCaption, message);
|
|
fprintf(stderr, "%s: %s\n", strCaption.c_str(), message.c_str());
|
|
return false;
|
|
}
|
|
|
|
static bool noui_ThreadSafeQuestion(const std::string& /* ignored interactive message */, const std::string& message, const std::string& caption, unsigned int style)
|
|
{
|
|
return noui_ThreadSafeMessageBox(message, caption, style);
|
|
}
|
|
|
|
static void noui_InitMessage(const std::string& message)
|
|
{
|
|
LogPrintf("init message: %s\n", message);
|
|
}
|
|
|
|
void noui_connect()
|
|
{
|
|
// Connect bitcoind signal handlers
|
|
uiInterface.ThreadSafeMessageBox_connect(noui_ThreadSafeMessageBox);
|
|
uiInterface.ThreadSafeQuestion_connect(noui_ThreadSafeQuestion);
|
|
uiInterface.InitMessage_connect(noui_InitMessage);
|
|
}
|