wallet: Make WalletInitInterface and DummyWalletInit private

This commit is contained in:
João Barbosa 2018-03-29 10:08:38 +01:00
parent 5f0c6a7b0e
commit 39bc2faa2e
9 changed files with 54 additions and 85 deletions

View file

@ -172,7 +172,6 @@ BITCOIN_CORE_H = \
wallet/db.h \
wallet/feebumper.h \
wallet/fees.h \
wallet/init.h \
wallet/rpcwallet.h \
wallet/wallet.h \
wallet/walletdb.h \

View file

@ -18,9 +18,6 @@
#include <httpserver.h>
#include <httprpc.h>
#include <utilstrencodings.h>
#if ENABLE_WALLET
#include <wallet/init.h>
#endif
#include <walletinitinterface.h>
#include <boost/thread.hpp>
@ -63,12 +60,6 @@ bool AppInit(int argc, char* argv[])
{
bool fRet = false;
#if ENABLE_WALLET
g_wallet_init_interface.reset(new WalletInit);
#else
g_wallet_init_interface.reset(new DummyWalletInit);
#endif
//
// Parameters
//

View file

@ -72,7 +72,24 @@ static const bool DEFAULT_STOPAFTERBLOCKIMPORT = false;
std::unique_ptr<CConnman> g_connman;
std::unique_ptr<PeerLogicValidation> peerLogic;
std::unique_ptr<WalletInitInterface> g_wallet_init_interface;
#if !(ENABLE_WALLET)
class DummyWalletInit : public WalletInitInterface {
public:
std::string GetHelpString(bool showDebug) override {return std::string{};}
bool ParameterInteraction() override {return true;}
void RegisterRPC(CRPCTable &) override {}
bool Verify() override {return true;}
bool Open() override {return true;}
void Start(CScheduler& scheduler) override {}
void Flush() override {}
void Stop() override {}
void Close() override {}
};
std::unique_ptr<WalletInitInterface> g_wallet_init_interface(new DummyWalletInit);
#endif
#if ENABLE_ZMQ
static CZMQNotificationInterface* pzmqNotificationInterface = nullptr;

View file

@ -35,9 +35,6 @@
#include <util.h>
#include <warnings.h>
#ifdef ENABLE_WALLET
#include <wallet/init.h>
#endif
#include <walletinitinterface.h>
#include <memory>
@ -660,11 +657,6 @@ int main(int argc, char *argv[])
// Start up the payment server early, too, so impatient users that click on
// bitcoin: links repeatedly have their payment requests routed to this process:
app.createPaymentServer();
// Hook up the wallet init interface
g_wallet_init_interface.reset(new WalletInit);
#else
g_wallet_init_interface.reset(new DummyWalletInit);
#endif
/// 9. Main GUI initialization

View file

@ -3,17 +3,51 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include <wallet/init.h>
#include <chainparams.h>
#include <net.h>
#include <util.h>
#include <utilmoneystr.h>
#include <validation.h>
#include <walletinitinterface.h>
#include <wallet/rpcwallet.h>
#include <wallet/wallet.h>
#include <wallet/walletutil.h>
class WalletInit : public WalletInitInterface {
public:
//! Return the wallets help message.
std::string GetHelpString(bool showDebug) override;
//! Wallets parameter interaction
bool ParameterInteraction() override;
//! Register wallet RPCs.
void RegisterRPC(CRPCTable &tableRPC) override;
//! Responsible for reading and validating the -wallet arguments and verifying the wallet database.
// This function will perform salvage on the wallet if requested, as long as only one wallet is
// being loaded (WalletParameterInteraction forbids -salvagewallet, -zapwallettxes or -upgradewallet with multiwallet).
bool Verify() override;
//! Load wallet databases.
bool Open() override;
//! Complete startup of wallets.
void Start(CScheduler& scheduler) override;
//! Flush all wallets in preparation for shutdown.
void Flush() override;
//! Stop all wallets. Wallets will be flushed first.
void Stop() override;
//! Close all wallets.
void Close() override;
};
std::unique_ptr<WalletInitInterface> g_wallet_init_interface(new WalletInit);
std::string WalletInit::GetHelpString(bool showDebug)
{
std::string strUsage = HelpMessageGroup(_("Wallet options:"));

View file

@ -1,48 +0,0 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2017 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_WALLET_INIT_H
#define BITCOIN_WALLET_INIT_H
#include <walletinitinterface.h>
#include <string>
class CRPCTable;
class CScheduler;
class WalletInit : public WalletInitInterface {
public:
//! Return the wallets help message.
std::string GetHelpString(bool showDebug) override;
//! Wallets parameter interaction
bool ParameterInteraction() override;
//! Register wallet RPCs.
void RegisterRPC(CRPCTable &tableRPC) override;
//! Responsible for reading and validating the -wallet arguments and verifying the wallet database.
// This function will perform salvage on the wallet if requested, as long as only one wallet is
// being loaded (WalletParameterInteraction forbids -salvagewallet, -zapwallettxes or -upgradewallet with multiwallet).
bool Verify() override;
//! Load wallet databases.
bool Open() override;
//! Complete startup of wallets.
void Start(CScheduler& scheduler) override;
//! Flush all wallets in preparation for shutdown.
void Flush() override;
//! Stop all wallets. Wallets will be flushed first.
void Stop() override;
//! Close all wallets.
void Close() override;
};
#endif // BITCOIN_WALLET_INIT_H

View file

@ -6,7 +6,6 @@
#include <key_io.h>
#include <rpc/safemode.h>
#include <rpc/server.h>
#include <wallet/init.h>
#include <validation.h>
#include <script/script.h>
#include <script/standard.h>

View file

@ -12,7 +12,6 @@
#include <consensus/consensus.h>
#include <consensus/validation.h>
#include <fs.h>
#include <wallet/init.h>
#include <key.h>
#include <key_io.h>
#include <keystore.h>

View file

@ -34,18 +34,4 @@ public:
virtual ~WalletInitInterface() {}
};
class DummyWalletInit : public WalletInitInterface {
public:
std::string GetHelpString(bool showDebug) override {return std::string{};}
bool ParameterInteraction() override {return true;}
void RegisterRPC(CRPCTable &) override {}
bool Verify() override {return true;}
bool Open() override {return true;}
void Start(CScheduler& scheduler) override {}
void Flush() override {}
void Stop() override {}
void Close() override {}
};
#endif // BITCOIN_WALLETINITINTERFACE_H