![]() |
Bitcoin Core 30.99.0
P2P Digital Currency
|
#include <args.h>
Classes | |
| struct | Arg |
| struct | Command |
Public Types | |
| enum | Flags : uint32_t { ALLOW_ANY = 0x01 , DISALLOW_NEGATION = 0x20 , DISALLOW_ELISION = 0x40 , DEBUG_ONLY = 0x100 , NETWORK_ONLY = 0x200 , SENSITIVE = 0x400 , COMMAND = 0x800 } |
| Flags controlling how config and command line arguments are validated and interpreted. More... | |
Public Member Functions | |
| common::SettingsValue | GetSetting (const std::string &arg) const |
| Get setting value. More... | |
| std::vector< common::SettingsValue > | GetSettingsList (const std::string &arg) const |
| Get list of setting values. More... | |
| ArgsManager () | |
| ~ArgsManager () | |
| void | SelectConfigNetwork (const std::string &network) |
| Select the network in use. More... | |
| bool | ParseParameters (int argc, const char *const argv[], std::string &error) |
| fs::path | GetConfigFilePath () const |
| Return config file path (read-only) More... | |
| void | SetConfigFilePath (fs::path) |
| bool | ReadConfigFiles (std::string &error, bool ignore_invalid_keys=false) |
| std::set< std::string > | GetUnsuitableSectionOnlyArgs () const |
| Log warnings for options in m_section_only_args when they are specified in the default section but not overridden on the command line or in a network-specific section in the config file. More... | |
| std::list< SectionInfo > | GetUnrecognizedSections () const |
| Log warnings for unrecognized section names in the config file. More... | |
| std::optional< const Command > | GetCommand () const |
| Get the command and command args (returns std::nullopt if no command provided) More... | |
| fs::path | GetBlocksDirPath () const |
| Get blocks directory path. More... | |
| fs::path | GetDataDirBase () const |
| Get data directory path. More... | |
| fs::path | GetDataDirNet () const |
| Get data directory path with appended network identifier. More... | |
| void | ClearPathCache () |
| Clear cached directory paths. More... | |
| std::vector< std::string > | GetArgs (const std::string &strArg) const |
| Return a vector of strings of the given argument. More... | |
| bool | IsArgSet (const std::string &strArg) const |
| Return true if the given argument has been manually set. More... | |
| bool | IsArgNegated (const std::string &strArg) const |
| Return true if the argument was originally passed as a negated option, i.e. More... | |
| std::string | GetArg (const std::string &strArg, const std::string &strDefault) const |
| Return string argument or default value. More... | |
| std::optional< std::string > | GetArg (const std::string &strArg) const |
| fs::path | GetPathArg (std::string arg, const fs::path &default_value={}) const |
| Return path argument or default value. More... | |
| int64_t | GetIntArg (const std::string &strArg, int64_t nDefault) const |
| Return integer argument or default value. More... | |
| std::optional< int64_t > | GetIntArg (const std::string &strArg) const |
| bool | GetBoolArg (const std::string &strArg, bool fDefault) const |
| Return boolean argument or default value. More... | |
| std::optional< bool > | GetBoolArg (const std::string &strArg) const |
| bool | SoftSetArg (const std::string &strArg, const std::string &strValue) |
| Set an argument if it doesn't already have a value. More... | |
| bool | SoftSetBoolArg (const std::string &strArg, bool fValue) |
| Set a boolean argument if it doesn't already have a value. More... | |
| void | ForceSetArg (const std::string &strArg, const std::string &strValue) |
| ChainType | GetChainType () const |
| Returns the appropriate chain type from the program arguments. More... | |
| std::string | GetChainTypeString () const |
| Returns the appropriate chain type string from the program arguments. More... | |
| void | AddArg (const std::string &name, const std::string &help, unsigned int flags, const OptionsCategory &cat) |
| Add argument. More... | |
| void | AddCommand (const std::string &cmd, const std::string &help) |
| Add subcommand. More... | |
| void | AddHiddenArgs (const std::vector< std::string > &args) |
| Add many hidden arguments. More... | |
| void | ClearArgs () |
| Clear available arguments. More... | |
| void | CheckMultipleCLIArgs () const |
| Check CLI command args. More... | |
| std::string | GetHelpMessage () const |
| Get the help string. More... | |
| std::optional< unsigned int > | GetArgFlags (const std::string &name) const |
| Return Flags for known arg. More... | |
| void | SetDefaultFlags (std::optional< unsigned int >) |
| Set default flags to return for an unknown arg. More... | |
| bool | GetSettingsPath (fs::path *filepath=nullptr, bool temp=false, bool backup=false) const |
| Get settings file path, or return false if read-write settings were disabled with -nosettings. More... | |
| bool | ReadSettingsFile (std::vector< std::string > *errors=nullptr) |
| Read settings file. More... | |
| bool | WriteSettingsFile (std::vector< std::string > *errors=nullptr, bool backup=false) const |
| Write settings file or backup settings file. More... | |
| common::SettingsValue | GetPersistentSetting (const std::string &name) const |
| Get current setting from config file or read/write settings file, ignoring nonpersistent command line or forced settings values. More... | |
| template<typename Fn > | |
| void | LockSettings (Fn &&fn) |
| Access settings with lock held. More... | |
| void | LogArgs () const |
| Log the config file options and the command line arguments, useful for troubleshooting. More... | |
Protected Member Functions | |
| common::Settings m_settings | GUARDED_BY (cs_args) |
| std::vector< std::string > m_command | GUARDED_BY (cs_args) |
| std::string m_network | GUARDED_BY (cs_args) |
| std::set< std::string > m_network_only_args | GUARDED_BY (cs_args) |
| std::map< OptionsCategory, std::map< std::string, Arg > > m_available_args | GUARDED_BY (cs_args) |
| std::optional< unsigned int > m_default_flags | GUARDED_BY (cs_args) |
| bool m_accept_any_command | GUARDED_BY (cs_args) |
| std::list< SectionInfo > m_config_sections | GUARDED_BY (cs_args) |
| std::optional< fs::path > m_config_path | GUARDED_BY (cs_args) |
| fs::path m_cached_blocks_path | GUARDED_BY (cs_args) |
| fs::path m_cached_datadir_path | GUARDED_BY (cs_args) |
| fs::path m_cached_network_datadir_path | GUARDED_BY (cs_args) |
| bool | ReadConfigStream (std::istream &stream, const std::string &filepath, std::string &error, bool ignore_invalid_keys=false) |
| bool | UseDefaultSection (const std::string &arg) const EXCLUSIVE_LOCKS_REQUIRED(cs_args) |
| Returns true if settings values from the default section should be used, depending on the current network and whether the setting is network-specific. More... | |
Protected Attributes | |
| RecursiveMutex | cs_args |
Private Member Functions | |
| fs::path | GetDataDir (bool net_specific) const |
| Get data directory path. More... | |
| std::variant< ChainType, std::string > | GetChainArg () const |
| Return -regtest/-signet/-testnet/-testnet4/-chain= setting as a ChainType enum if a recognized chain type was set, or as a string if an unrecognized chain name was set. More... | |
| void | logArgsPrefix (const std::string &prefix, const std::string §ion, const std::map< std::string, std::vector< common::SettingsValue > > &args) const |
| enum ArgsManager::Flags : uint32_t |
|
default |
|
default |
| void ArgsManager::AddArg | ( | const std::string & | name, |
| const std::string & | help, | ||
| unsigned int | flags, | ||
| const OptionsCategory & | cat | ||
| ) |
| void ArgsManager::AddCommand | ( | const std::string & | cmd, |
| const std::string & | help | ||
| ) |
| void ArgsManager::AddHiddenArgs | ( | const std::vector< std::string > & | args | ) |
| void ArgsManager::CheckMultipleCLIArgs | ( | ) | const |
| void ArgsManager::ClearArgs | ( | ) |
| void ArgsManager::ClearPathCache | ( | ) |
| void ArgsManager::ForceSetArg | ( | const std::string & | strArg, |
| const std::string & | strValue | ||
| ) |
| std::optional< std::string > ArgsManager::GetArg | ( | const std::string & | strArg | ) | const |
| std::string ArgsManager::GetArg | ( | const std::string & | strArg, |
| const std::string & | strDefault | ||
| ) | const |
| std::optional< unsigned int > ArgsManager::GetArgFlags | ( | const std::string & | name | ) | const |
| std::vector< std::string > ArgsManager::GetArgs | ( | const std::string & | strArg | ) | const |
| fs::path ArgsManager::GetBlocksDirPath | ( | ) | const |
| std::optional< bool > ArgsManager::GetBoolArg | ( | const std::string & | strArg | ) | const |
| bool ArgsManager::GetBoolArg | ( | const std::string & | strArg, |
| bool | fDefault | ||
| ) | const |
|
private |
Return -regtest/-signet/-testnet/-testnet4/-chain= setting as a ChainType enum if a recognized chain type was set, or as a string if an unrecognized chain name was set.
Raise an exception if an invalid combination of flags was provided.
Definition at line 801 of file args.cpp.
| ChainType ArgsManager::GetChainType | ( | ) | const |
Returns the appropriate chain type from the program arguments.
Definition at line 787 of file args.cpp.
| std::string ArgsManager::GetChainTypeString | ( | ) | const |
Returns the appropriate chain type string from the program arguments.
Definition at line 794 of file args.cpp.
| std::optional< const ArgsManager::Command > ArgsManager::GetCommand | ( | ) | const |
| fs::path ArgsManager::GetConfigFilePath | ( | ) | const |
|
private |
Get data directory path.
| net_specific | Append network identifier to the returned path |
Definition at line 311 of file args.cpp.
|
inline |
|
inline |
| std::string ArgsManager::GetHelpMessage | ( | ) | const |
| std::optional< int64_t > ArgsManager::GetIntArg | ( | const std::string & | strArg | ) | const |
| int64_t ArgsManager::GetIntArg | ( | const std::string & | strArg, |
| int64_t | nDefault | ||
| ) | const |
Return integer argument or default value.
| strArg | Argument to get (e.g. "-foo") |
| nDefault | (e.g. 1) |
Definition at line 486 of file args.cpp.
Return path argument or default value.
| arg | Argument to get a path from (e.g., "-datadir", "-blocksdir" or "-walletdir") |
| default_value | Optional default value to return instead of the empty path. |
Definition at line 276 of file args.cpp.
| common::SettingsValue ArgsManager::GetPersistentSetting | ( | const std::string & | name | ) | const |
| common::SettingsValue ArgsManager::GetSetting | ( | const std::string & | arg | ) | const |
Get setting value.
Result will be null if setting was unset, true if "-setting" argument was passed false if "-nosetting" argument was passed, and a string if a "-setting=value" argument was passed.
Definition at line 838 of file args.cpp.
| std::vector< common::SettingsValue > ArgsManager::GetSettingsList | ( | const std::string & | arg | ) | const |
| bool ArgsManager::GetSettingsPath | ( | fs::path * | filepath = nullptr, |
| bool | temp = false, |
||
| bool | backup = false |
||
| ) | const |
| std::list< SectionInfo > ArgsManager::GetUnrecognizedSections | ( | ) | const |
| std::set< std::string > ArgsManager::GetUnsuitableSectionOnlyArgs | ( | ) | const |
Log warnings for options in m_section_only_args when they are specified in the default section but not overridden on the command line or in a network-specific section in the config file.
Definition at line 134 of file args.cpp.
|
protected |
|
protected |
|
protected |
|
protected |
|
inlineprotected |
|
inlineprotected |
|
protected |
| bool ArgsManager::IsArgNegated | ( | const std::string & | strArg | ) | const |
Return true if the argument was originally passed as a negated option, i.e.
-nofoo.
| strArg | Argument to get (e.g. "-foo") |
Definition at line 456 of file args.cpp.
| bool ArgsManager::IsArgSet | ( | const std::string & | strArg | ) | const |
|
inline |
| void ArgsManager::LogArgs | ( | ) | const |
|
private |
| bool ArgsManager::ParseParameters | ( | int | argc, |
| const char *const | argv[], | ||
| std::string & | error | ||
| ) |
| bool ArgsManager::ReadConfigFiles | ( | std::string & | error, |
| bool | ignore_invalid_keys = false |
||
| ) |
Definition at line 122 of file config.cpp.
|
protected |
Definition at line 93 of file config.cpp.
| bool ArgsManager::ReadSettingsFile | ( | std::vector< std::string > * | errors = nullptr | ) |
| void ArgsManager::SelectConfigNetwork | ( | const std::string & | network | ) |
| void ArgsManager::SetConfigFilePath | ( | fs::path | path | ) |
| void ArgsManager::SetDefaultFlags | ( | std::optional< unsigned int > | flags | ) |
| bool ArgsManager::SoftSetArg | ( | const std::string & | strArg, |
| const std::string & | strValue | ||
| ) |
Set an argument if it doesn't already have a value.
| strArg | Argument to set (e.g. "-foo") |
| strValue | Value (e.g. "1") |
Definition at line 534 of file args.cpp.
| bool ArgsManager::SoftSetBoolArg | ( | const std::string & | strArg, |
| bool | fValue | ||
| ) |
Set a boolean argument if it doesn't already have a value.
| strArg | Argument to set (e.g. "-foo") |
| fValue | Value (e.g. false) |
Definition at line 542 of file args.cpp.
|
protected |
| bool ArgsManager::WriteSettingsFile | ( | std::vector< std::string > * | errors = nullptr, |
| bool | backup = false |
||
| ) | const |
|
mutableprotected |