wallet: Refactor g_wallet_init_interface to const reference

This commit is contained in:
João Barbosa 2018-04-13 14:05:55 +01:00
parent 1936125671
commit 6ec78f1461
3 changed files with 12 additions and 14 deletions

View File

@ -87,8 +87,7 @@ public:
void Close() const override {} void Close() const override {}
}; };
static DummyWalletInit g_dummy_wallet_init; const WalletInitInterface& g_wallet_init_interface = DummyWalletInit();
WalletInitInterface* const g_wallet_init_interface = &g_dummy_wallet_init;
#endif #endif
#if ENABLE_ZMQ #if ENABLE_ZMQ
@ -204,7 +203,7 @@ void Shutdown()
StopREST(); StopREST();
StopRPC(); StopRPC();
StopHTTPServer(); StopHTTPServer();
g_wallet_init_interface->Flush(); g_wallet_init_interface.Flush();
StopMapPort(); StopMapPort();
// Because these depend on each-other, we make sure that neither can be // Because these depend on each-other, we make sure that neither can be
@ -262,7 +261,7 @@ void Shutdown()
pcoinsdbview.reset(); pcoinsdbview.reset();
pblocktree.reset(); pblocktree.reset();
} }
g_wallet_init_interface->Stop(); g_wallet_init_interface.Stop();
#if ENABLE_ZMQ #if ENABLE_ZMQ
if (pzmqNotificationInterface) { if (pzmqNotificationInterface) {
@ -282,7 +281,7 @@ void Shutdown()
UnregisterAllValidationInterfaces(); UnregisterAllValidationInterfaces();
GetMainSignals().UnregisterBackgroundSignalScheduler(); GetMainSignals().UnregisterBackgroundSignalScheduler();
GetMainSignals().UnregisterWithMempoolSignals(mempool); GetMainSignals().UnregisterWithMempoolSignals(mempool);
g_wallet_init_interface->Close(); g_wallet_init_interface.Close();
globalVerifyHandle.reset(); globalVerifyHandle.reset();
ECC_Stop(); ECC_Stop();
LogPrintf("%s: done\n", __func__); LogPrintf("%s: done\n", __func__);
@ -425,7 +424,7 @@ std::string HelpMessage(HelpMessageMode mode)
strUsage += HelpMessageOpt("-whitelist=<IP address or network>", _("Whitelist peers connecting from the given IP address (e.g. 1.2.3.4) or CIDR notated network (e.g. 1.2.3.0/24). Can be specified multiple times.") + strUsage += HelpMessageOpt("-whitelist=<IP address or network>", _("Whitelist peers connecting from the given IP address (e.g. 1.2.3.4) or CIDR notated network (e.g. 1.2.3.0/24). Can be specified multiple times.") +
" " + _("Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway")); " " + _("Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway"));
strUsage += g_wallet_init_interface->GetHelpString(showDebug); strUsage += g_wallet_init_interface.GetHelpString(showDebug);
#if ENABLE_ZMQ #if ENABLE_ZMQ
strUsage += HelpMessageGroup(_("ZeroMQ notification options:")); strUsage += HelpMessageGroup(_("ZeroMQ notification options:"));
@ -1093,7 +1092,7 @@ bool AppInitParameterInteraction()
return InitError(strprintf("acceptnonstdtxn is not currently supported for %s chain", chainparams.NetworkIDString())); return InitError(strprintf("acceptnonstdtxn is not currently supported for %s chain", chainparams.NetworkIDString()));
nBytesPerSigOp = gArgs.GetArg("-bytespersigop", nBytesPerSigOp); nBytesPerSigOp = gArgs.GetArg("-bytespersigop", nBytesPerSigOp);
if (!g_wallet_init_interface->ParameterInteraction()) return false; if (!g_wallet_init_interface.ParameterInteraction()) return false;
fIsBareMultisigStd = gArgs.GetBoolArg("-permitbaremultisig", DEFAULT_PERMIT_BAREMULTISIG); fIsBareMultisigStd = gArgs.GetBoolArg("-permitbaremultisig", DEFAULT_PERMIT_BAREMULTISIG);
fAcceptDatacarrier = gArgs.GetBoolArg("-datacarrier", DEFAULT_ACCEPT_DATACARRIER); fAcceptDatacarrier = gArgs.GetBoolArg("-datacarrier", DEFAULT_ACCEPT_DATACARRIER);
@ -1259,7 +1258,7 @@ bool AppInitMain()
* available in the GUI RPC console even if external calls are disabled. * available in the GUI RPC console even if external calls are disabled.
*/ */
RegisterAllCoreRPCCommands(tableRPC); RegisterAllCoreRPCCommands(tableRPC);
g_wallet_init_interface->RegisterRPC(tableRPC); g_wallet_init_interface.RegisterRPC(tableRPC);
/* Start the RPC server already. It will be started in "warmup" mode /* Start the RPC server already. It will be started in "warmup" mode
* and not really process calls already (but it will signify connections * and not really process calls already (but it will signify connections
@ -1276,7 +1275,7 @@ bool AppInitMain()
int64_t nStart; int64_t nStart;
// ********************************************************* Step 5: verify wallet database integrity // ********************************************************* Step 5: verify wallet database integrity
if (!g_wallet_init_interface->Verify()) return false; if (!g_wallet_init_interface.Verify()) return false;
// ********************************************************* Step 6: network initialization // ********************************************************* Step 6: network initialization
// Note that we absolutely cannot open any actual connections // Note that we absolutely cannot open any actual connections
@ -1595,7 +1594,7 @@ bool AppInitMain()
fFeeEstimatesInitialized = true; fFeeEstimatesInitialized = true;
// ********************************************************* Step 8: load wallet // ********************************************************* Step 8: load wallet
if (!g_wallet_init_interface->Open()) return false; if (!g_wallet_init_interface.Open()) return false;
// ********************************************************* Step 9: data directory maintenance // ********************************************************* Step 9: data directory maintenance
@ -1741,7 +1740,7 @@ bool AppInitMain()
SetRPCWarmupFinished(); SetRPCWarmupFinished();
uiInterface.InitMessage(_("Done loading")); uiInterface.InitMessage(_("Done loading"));
g_wallet_init_interface->Start(scheduler); g_wallet_init_interface.Start(scheduler);
return true; return true;
} }

View File

@ -13,7 +13,7 @@ class CScheduler;
class CWallet; class CWallet;
class WalletInitInterface; class WalletInitInterface;
extern WalletInitInterface* const g_wallet_init_interface; extern const WalletInitInterface& g_wallet_init_interface;
namespace boost namespace boost
{ {

View File

@ -47,8 +47,7 @@ public:
void Close() const override; void Close() const override;
}; };
static WalletInit g_wallet_init; const WalletInitInterface& g_wallet_init_interface = WalletInit();
WalletInitInterface* const g_wallet_init_interface = &g_wallet_init;
std::string WalletInit::GetHelpString(bool showDebug) const std::string WalletInit::GetHelpString(bool showDebug) const
{ {