Bitcoin Core 28.99.0
P2P Digital Currency
Classes | Namespaces | Enumerations | Functions | Variables
args.h File Reference
#include <common/settings.h>
#include <compat/compat.h>
#include <sync.h>
#include <util/chaintype.h>
#include <util/fs.h>
#include <iosfwd>
#include <list>
#include <map>
#include <optional>
#include <set>
#include <stdint.h>
#include <string>
#include <variant>
#include <vector>
Include dependency graph for args.h:

Go to the source code of this file.

Classes

struct  KeyInfo
 
struct  SectionInfo
 
class  ArgsManager
 
struct  ArgsManager::Arg
 
struct  ArgsManager::Command
 

Namespaces

namespace  common
 

Enumerations

enum class  OptionsCategory {
  OPTIONS , CONNECTION , WALLET , WALLET_DEBUG_TEST ,
  ZMQ , DEBUG_TEST , CHAINPARAMS , NODE_RELAY ,
  BLOCK_CREATION , RPC , GUI , COMMANDS ,
  REGISTER_COMMANDS , CLI_COMMANDS , IPC , HIDDEN
}
 

Functions

bool CheckDataDirOption (const ArgsManager &args)
 
fs::path AbsPathForConfigVal (const ArgsManager &args, const fs::path &path, bool net_specific=true)
 Most paths passed as configuration arguments are treated as relative to the datadir if they are not absolute. More...
 
bool IsSwitchChar (char c)
 
KeyInfo InterpretKey (std::string key)
 Parse "name", "section.name", "noname", "section.noname" settings keys. More...
 
std::optional< common::SettingsValueInterpretValue (const KeyInfo &key, const std::string *value, unsigned int flags, std::string &error)
 Interpret settings value based on registered flags. More...
 
std::string SettingToString (const common::SettingsValue &, const std::string &)
 
std::optional< std::string > SettingToString (const common::SettingsValue &)
 
int64_t SettingToInt (const common::SettingsValue &, int64_t)
 
std::optional< int64_t > SettingToInt (const common::SettingsValue &)
 
bool SettingToBool (const common::SettingsValue &, bool)
 
std::optional< bool > SettingToBool (const common::SettingsValue &)
 
bool HelpRequested (const ArgsManager &args)
 
void SetupHelpOptions (ArgsManager &args)
 Add help options to the args manager. More...
 
bool HasTestOption (const ArgsManager &args, const std::string &test_option)
 Checks if a particular test option is present in -test command-line arg options. More...
 
std::string HelpMessageGroup (const std::string &message)
 Format a string to be used as group of options in help messages. More...
 
std::string HelpMessageOpt (const std::string &option, const std::string &message)
 Format a string to be used as option description in help messages. More...
 

Variables

const char *const BITCOIN_CONF_FILENAME
 
const char *const BITCOIN_SETTINGS_FILENAME
 
ArgsManager gArgs
 
const std::vector< std::string > TEST_OPTIONS_DOC
 

Enumeration Type Documentation

◆ OptionsCategory

enum class OptionsCategory
strong
Enumerator
OPTIONS 
CONNECTION 
WALLET 
WALLET_DEBUG_TEST 
ZMQ 
DEBUG_TEST 
CHAINPARAMS 
NODE_RELAY 
BLOCK_CREATION 
RPC 
GUI 
COMMANDS 
REGISTER_COMMANDS 
CLI_COMMANDS 
IPC 
HIDDEN 

Definition at line 52 of file args.h.

Function Documentation

◆ AbsPathForConfigVal()

fs::path AbsPathForConfigVal ( const ArgsManager args,
const fs::path path,
bool  net_specific = true 
)

Most paths passed as configuration arguments are treated as relative to the datadir if they are not absolute.

Parameters
argsParsed arguments and settings.
pathThe path to be conditionally prefixed with datadir.
net_specificUse network specific datadir variant
Returns
The normalized path.

Definition at line 226 of file config.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CheckDataDirOption()

bool CheckDataDirOption ( const ArgsManager args)

Definition at line 755 of file args.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ HasTestOption()

bool HasTestOption ( const ArgsManager args,
const std::string &  test_option 
)

Checks if a particular test option is present in -test command-line arg options.

Definition at line 715 of file args.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ HelpMessageGroup()

std::string HelpMessageGroup ( const std::string &  message)

Format a string to be used as group of options in help messages.

Parameters
messageGroup name (e.g. "RPC server options:")
Returns
the formatted string

Definition at line 699 of file args.cpp.

Here is the caller graph for this function:

◆ HelpMessageOpt()

std::string HelpMessageOpt ( const std::string &  option,
const std::string &  message 
)

Format a string to be used as option description in help messages.

Parameters
optionOption message (e.g. "-rpcuser=<user>")
messageOption description (e.g. "Username for JSON-RPC connections")
Returns
the formatted string

Definition at line 703 of file args.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ HelpRequested()

bool HelpRequested ( const ArgsManager args)
Returns
true if help has been requested via a command-line arg

Definition at line 684 of file args.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InterpretKey()

KeyInfo InterpretKey ( std::string  key)

Parse "name", "section.name", "noname", "section.noname" settings keys.

Note
Where an option was negated can be later checked using the IsArgNegated() method. One use case for this is to have a way to disable options that are not normally boolean (e.g. using -nodebuglogfile to request that debug log output is not sent to any file at all).

Definition at line 79 of file args.cpp.

Here is the caller graph for this function:

◆ InterpretValue()

std::optional< common::SettingsValue > InterpretValue ( const KeyInfo key,
const std::string *  value,
unsigned int  flags,
std::string &  error 
)

Interpret settings value based on registered flags.

Parameters
[in]keykey information to know if key was negated
[in]valuestring value of setting to be parsed
[in]flagsArgsManager registered argument flags
[out]errorError description if settings value is not valid
Returns
parsed settings value if it is valid, otherwise nullopt accompanied by a descriptive error string

Definition at line 107 of file args.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsSwitchChar()

bool IsSwitchChar ( char  c)
inline

Definition at line 43 of file args.h.

Here is the caller graph for this function:

◆ SettingToBool() [1/2]

std::optional< bool > SettingToBool ( const common::SettingsValue value)

Definition at line 518 of file args.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SettingToBool() [2/2]

bool SettingToBool ( const common::SettingsValue value,
bool  fDefault 
)

Definition at line 525 of file args.cpp.

Here is the call graph for this function:

◆ SettingToInt() [1/2]

std::optional< int64_t > SettingToInt ( const common::SettingsValue value)

Definition at line 493 of file args.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SettingToInt() [2/2]

int64_t SettingToInt ( const common::SettingsValue value,
int64_t  nDefault 
)

Definition at line 502 of file args.cpp.

Here is the call graph for this function:

◆ SettingToString() [1/2]

std::optional< std::string > SettingToString ( const common::SettingsValue value)

Definition at line 468 of file args.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SettingToString() [2/2]

std::string SettingToString ( const common::SettingsValue value,
const std::string &  strDefault 
)

Definition at line 477 of file args.cpp.

Here is the call graph for this function:

◆ SetupHelpOptions()

void SetupHelpOptions ( ArgsManager args)

Add help options to the args manager.

Definition at line 689 of file args.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ BITCOIN_CONF_FILENAME

const char* const BITCOIN_CONF_FILENAME
extern

Definition at line 39 of file args.cpp.

◆ BITCOIN_SETTINGS_FILENAME

const char* const BITCOIN_SETTINGS_FILENAME
extern

Definition at line 40 of file args.cpp.

◆ gArgs

ArgsManager gArgs
extern

Definition at line 42 of file args.cpp.

◆ TEST_OPTIONS_DOC

const std::vector<std::string> TEST_OPTIONS_DOC
extern

Definition at line 710 of file args.cpp.