// Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2015 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_INIT_H #define BITCOIN_INIT_H #include #include class CScheduler; class CWallet; class WalletInitInterface; extern const WalletInitInterface& g_wallet_init_interface; namespace boost { class thread_group; } // namespace boost void StartShutdown(); void StartRestart(); bool ShutdownRequested(); /** Interrupt threads */ void Interrupt(); void Shutdown(); //!Initialize the logging infrastructure void InitLogging(); //!Parameter interaction: change current parameters depending on various rules void InitParameterInteraction(); /** Initialize Dash Core: Basic context setup. * @note This can be done before daemonization. Do not call Shutdown() if this function fails. * @pre Parameters should be parsed and config file should be read. */ bool AppInitBasicSetup(); /** * Initialization: parameter interaction. * @note This can be done before daemonization. Do not call Shutdown() if this function fails. * @pre Parameters should be parsed and config file should be read, AppInitBasicSetup should have been called. */ bool AppInitParameterInteraction(); /** * Initialization sanity checks: ecc init, sanity checks, dir lock. * @note This can be done before daemonization. Do not call Shutdown() if this function fails. * @pre Parameters should be parsed and config file should be read, AppInitParameterInteraction should have been called. */ bool AppInitSanityChecks(); /** * Lock Dash Core data directory. * @note This should only be done after daemonization. Do not call Shutdown() if this function fails. * @pre Parameters should be parsed and config file should be read, AppInitSanityChecks should have been called. */ bool AppInitLockDataDirectory(); /** * Dash Core main initialization. * @note This should only be done after daemonization. Call Shutdown() if this function fails. * @pre Parameters should be parsed and config file should be read, AppInitLockDataDirectory should have been called. */ bool AppInitMain(); void PrepareShutdown(); /** The help message mode determines what help message to show */ enum class HelpMessageMode { BITCOIND, BITCOIN_QT }; /** Help for options shared between UI and daemon (for -help) */ std::string HelpMessage(HelpMessageMode mode); /** Returns licensing information (for -version) */ std::string LicenseInfo(); #endif // BITCOIN_INIT_H