bitcoin/src/wallet/init.h
John Newbery 49baa4a462 [wallet] Use global g_wallet_init_interface to init/destroy the wallet.
This commit creates a global g_wallet_init_interface, which is created
in bitcoind and bitcoin-qt. g_wallet_init_interface is used to init
and destroy the wallet.

This removes the dependency from init.cpp on the wallet library.
2018-03-27 14:48:48 -04:00

49 lines
1.4 KiB
C++

// 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