diff options
Diffstat (limited to 'src/chainparamsbase.h')
-rw-r--r-- | src/chainparamsbase.h | 56 |
1 files changed, 30 insertions, 26 deletions
diff --git a/src/chainparamsbase.h b/src/chainparamsbase.h index 4398f69548..fc101f5b77 100644 --- a/src/chainparamsbase.h +++ b/src/chainparamsbase.h @@ -1,12 +1,13 @@ -// Copyright (c) 2014 The Bitcoin developers -// Distributed under the MIT/X11 software license, see the accompanying +// Copyright (c) 2014-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_CHAIN_PARAMS_BASE_H -#define BITCOIN_CHAIN_PARAMS_BASE_H +#ifndef BITCOIN_CHAINPARAMSBASE_H +#define BITCOIN_CHAINPARAMSBASE_H -#include <vector> +#include <memory> #include <string> +#include <vector> /** * CBaseChainParams defines the base parameters (shared between bitcoin-cli and bitcoind) @@ -15,44 +16,47 @@ class CBaseChainParams { public: - enum Network { - MAIN, - TESTNET, - REGTEST, - - MAX_NETWORK_TYPES - }; + /** BIP70 chain name strings (main, test or regtest) */ + static const std::string MAIN; + static const std::string TESTNET; + static const std::string REGTEST; const std::string& DataDir() const { return strDataDir; } int RPCPort() const { return nRPCPort; } - Network NetworkID() const { return networkID; } + protected: CBaseChainParams() {} int nRPCPort; std::string strDataDir; - Network networkID; }; /** - * Return the currently selected parameters. This won't change after app startup - * outside of the unit tests. + * Creates and returns a std::unique_ptr<CBaseChainParams> of the chosen chain. + * @returns a CBaseChainParams* of the chosen chain. + * @throws a std::runtime_error if the chain is not supported. */ -const CBaseChainParams &BaseParams(); +std::unique_ptr<CBaseChainParams> CreateBaseChainParams(const std::string& chain); -/** Sets the params returned by Params() to those for the given network. */ -void SelectBaseParams(CBaseChainParams::Network network); +/** + * Append the help messages for the chainparams options to the + * parameter string. + */ +void AppendParamsHelpMessages(std::string& strUsage, bool debugHelp=true); /** - * Looks for -regtest or -testnet and then calls SelectParams as appropriate. - * Returns false if an invalid combination is given. + * Return the currently selected parameters. This won't change after app + * startup, except for unit tests. */ -bool SelectBaseParamsFromCommandLine(); +const CBaseChainParams& BaseParams(); + +/** Sets the params returned by Params() to those for the given network. */ +void SelectBaseParams(const std::string& chain); /** - * Return true if SelectBaseParamsFromCommandLine() has been called to select - * a network. + * Looks for -regtest, -testnet and returns the appropriate BIP70 chain name. + * @return CBaseChainParams::MAX_NETWORK_TYPES if an invalid combination is given. CBaseChainParams::MAIN by default. */ -bool AreBaseParamsConfigured(); +std::string ChainNameFromCommandLine(); -#endif +#endif // BITCOIN_CHAINPARAMSBASE_H |