Bitcoin Core  24.99.0
P2P Digital Currency
Classes | Typedefs | Functions
util Namespace Reference

Classes

struct  Overloaded
 Overloaded helper for std::visit. More...
 
struct  Error
 
class  Result
 
struct  Settings
 Stored settings. More...
 
struct  SettingsSpan
 Accessor for list of settings that skips negated values when iterated over. More...
 

Typedefs

using SettingsValue = UniValue
 Settings value type (string/integer/boolean/null variant). More...
 

Functions

template<class... Ts>
 Overloaded (Ts...) -> Overloaded< Ts... >
 Explicit deduction guide (not needed as of C++20) More...
 
template<typename T >
bilingual_str ErrorString (const Result< T > &result)
 
bool ReadSettings (const fs::path &path, std::map< std::string, SettingsValue > &values, std::vector< std::string > &errors)
 Read settings file. More...
 
bool WriteSettings (const fs::path &path, const std::map< std::string, SettingsValue > &values, std::vector< std::string > &errors)
 Write settings file. More...
 
SettingsValue GetSetting (const Settings &settings, const std::string &section, const std::string &name, bool ignore_default_section_config, bool ignore_nonpersistent, bool get_chain_name)
 Get settings value from combined sources: forced settings, command line arguments, runtime read-write settings, and the read-only config file. More...
 
std::vector< SettingsValueGetSettingsList (const Settings &settings, const std::string &section, const std::string &name, bool ignore_default_section_config)
 Get combined setting value similar to GetSetting(), except if setting was specified multiple times, return a list of all the values specified. More...
 
bool OnlyHasDefaultSectionSetting (const Settings &settings, const std::string &section, const std::string &name)
 Return true if a setting is set in the default config file section, and not overridden by a higher priority command-line or network section value. More...
 
template<typename Map , typename Key >
auto FindKey (Map &&map, Key &&key) -> decltype(&map.at(key))
 Map lookup helper. More...
 
template<typename Tdst , typename Tsrc >
void insert (Tdst &dst, const Tsrc &src)
 Simplification of std insertion. More...
 
template<typename TsetT , typename Tsrc >
void insert (std::set< TsetT > &dst, const Tsrc &src)
 
template<typename T >
T * AnyPtr (const std::any &any) noexcept
 Helper function to access the contained object of a std::any instance. More...
 
void TraceThread (std::string_view thread_name, std::function< void()> thread_func)
 A wrapper for do-something-once thread functions. More...
 
void ThreadRename (std::string &&)
 Rename a thread both in terms of an internal (in-memory) name as well as its system thread name. More...
 
void ThreadSetInternalName (std::string &&)
 Set the internal (in-memory) name of the current thread only. More...
 
const std::string & ThreadGetInternalName ()
 Get the thread's internal (in-memory) name; used e.g. More...
 

Typedef Documentation

◆ SettingsValue

using util::SettingsValue = typedef UniValue

Settings value type (string/integer/boolean/null variant).

Note
UniValue is used here for convenience and because it can be easily serialized in a readable format. But any other variant type that can be assigned strings, int64_t, and bool values and has get_str(), getInt<int64_t>(), get_bool(), isNum(), isBool(), isFalse(), isTrue() and isNull() methods can be substituted if there's a need to move away from UniValue. (An implementation with boost::variant was posted at https://github.com/bitcoin/bitcoin/pull/15934/files#r337691812)

Definition at line 27 of file settings.h.

Function Documentation

◆ AnyPtr()

template<typename T >
T* util::AnyPtr ( const std::any &  any)
noexcept

Helper function to access the contained object of a std::any instance.

Returns a pointer to the object if passed instance has a value and the type matches, nullptr otherwise.

Definition at line 539 of file system.h.

◆ ErrorString()

template<typename T >
bilingual_str util::ErrorString ( const Result< T > &  result)

Definition at line 78 of file result.h.

Here is the caller graph for this function:

◆ FindKey()

template<typename Map , typename Key >
auto util::FindKey ( Map &&  map,
Key &&  key 
) -> decltype(&map.at(key))

Map lookup helper.

Definition at line 106 of file settings.h.

Here is the caller graph for this function:

◆ GetSetting()

SettingsValue util::GetSetting ( const Settings settings,
const std::string &  section,
const std::string &  name,
bool  ignore_default_section_config,
bool  ignore_nonpersistent,
bool  get_chain_name 
)

Get settings value from combined sources: forced settings, command line arguments, runtime read-write settings, and the read-only config file.

Parameters
ignore_default_section_config- ignore values in the default section of the config file (part before any [section] keywords)
ignore_nonpersistent- ignore non-persistent settings values (forced settings values and values specified on the command line). Only return settings in the read-only config and read-write settings files.
get_chain_name- enable special backwards compatible behavior for GetChainName

Definition at line 128 of file settings.cpp.

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

◆ GetSettingsList()

std::vector< SettingsValue > util::GetSettingsList ( const Settings settings,
const std::string &  section,
const std::string &  name,
bool  ignore_default_section_config 
)

Get combined setting value similar to GetSetting(), except if setting was specified multiple times, return a list of all the values specified.

Definition at line 185 of file settings.cpp.

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

◆ insert() [1/2]

template<typename TsetT , typename Tsrc >
void util::insert ( std::set< TsetT > &  dst,
const Tsrc &  src 
)
inline

Definition at line 529 of file system.h.

◆ insert() [2/2]

template<typename Tdst , typename Tsrc >
void util::insert ( Tdst &  dst,
const Tsrc &  src 
)
inline

Simplification of std insertion.

Definition at line 525 of file system.h.

Here is the caller graph for this function:

◆ OnlyHasDefaultSectionSetting()

bool util::OnlyHasDefaultSectionSetting ( const Settings settings,
const std::string &  section,
const std::string &  name 
)

Return true if a setting is set in the default config file section, and not overridden by a higher priority command-line or network section value.

This is used to provide user warnings about values that might be getting ignored unintentionally.

Definition at line 230 of file settings.cpp.

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

◆ Overloaded()

template<class... Ts>
util::Overloaded ( Ts...  ) -> Overloaded< Ts... >

Explicit deduction guide (not needed as of C++20)

◆ ReadSettings()

bool util::ReadSettings ( const fs::path path,
std::map< std::string, SettingsValue > &  values,
std::vector< std::string > &  errors 
)

Read settings file.

Definition at line 64 of file settings.cpp.

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

◆ ThreadGetInternalName()

const std::string & util::ThreadGetInternalName ( )

Get the thread's internal (in-memory) name; used e.g.

for identification in logging.

Definition at line 55 of file threadnames.cpp.

Here is the caller graph for this function:

◆ ThreadRename()

void util::ThreadRename ( std::string &&  name)

Rename a thread both in terms of an internal (in-memory) name as well as its system thread name.

Note
Do not call this for the main thread, as this will interfere with UNIX utilities such as top and killall. Use ThreadSetInternalName instead.

Definition at line 59 of file threadnames.cpp.

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

◆ ThreadSetInternalName()

void util::ThreadSetInternalName ( std::string &&  name)

Set the internal (in-memory) name of the current thread only.

Definition at line 65 of file threadnames.cpp.

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

◆ TraceThread()

void util::TraceThread ( std::string_view  thread_name,
std::function< void()>  thread_func 
)

A wrapper for do-something-once thread functions.

Definition at line 16 of file thread.cpp.

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

◆ WriteSettings()

bool util::WriteSettings ( const fs::path path,
const std::map< std::string, SettingsValue > &  values,
std::vector< std::string > &  errors 
)

Write settings file.

Definition at line 109 of file settings.cpp.

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