10 #ifndef BITCOIN_UTIL_SYSTEM_H 11 #define BITCOIN_UTIL_SYSTEM_H 13 #if defined(HAVE_CONFIG_H) 36 #include <boost/thread/condition_variable.hpp> 50 inline std::string
_(
const char* psz)
58 template<
typename... Args>
71 bool LockDirectory(
const fs::path& directory,
const std::string lockfile_name,
bool probe_only=
false);
72 void UnlockDirectory(
const fs::path& directory,
const std::string& lockfile_name);
85 const fs::path &
GetDataDir(
bool fNetSpecific =
true);
90 fs::path GetSpecialFolderPath(
int nFolder,
bool fCreate =
true);
93 void runCommand(
const std::string& strCommand);
109 return c ==
'-' || c ==
'/';
155 std::map<std::string, std::vector<std::string>> m_override_args
GUARDED_BY(
cs_args);
156 std::map<std::string, std::vector<std::string>> m_config_args
GUARDED_BY(
cs_args);
159 std::map<OptionsCategory, std::map<std::string, Arg>> m_available_args
GUARDED_BY(
cs_args);
194 std::vector<std::string>
GetArgs(
const std::string& strArg)
const;
202 bool IsArgSet(
const std::string& strArg)
const;
220 std::string
GetArg(
const std::string& strArg,
const std::string& strDefault)
const;
238 bool GetBoolArg(
const std::string& strArg,
bool fDefault)
const;
247 bool SoftSetArg(
const std::string& strArg,
const std::string& strValue);
260 void ForceSetArg(
const std::string& strArg,
const std::string& strValue);
283 m_available_args.clear();
322 std::string
HelpMessageOpt(
const std::string& option,
const std::string& message);
342 catch (
const boost::thread_interrupted&)
347 catch (
const std::exception& e) {
371 template <
typename Tdst,
typename Tsrc>
372 inline void insert(Tdst& dst,
const Tsrc& src) {
373 dst.insert(dst.begin(), src.begin(), src.end());
375 template <
typename TsetT,
typename Tsrc>
376 inline void insert(std::set<TsetT>& dst,
const Tsrc& src) {
377 dst.insert(src.begin(), src.end());
386 std::pair<int, char**> get();
391 std::vector<std::string>
args;
397 #endif // BITCOIN_UTIL_SYSTEM_H fs::path AbsPathForConfigVal(const fs::path &path, bool net_specific=true)
Definition: system.cpp:1203
const std::function< std::string(const char *)> G_TRANSLATION_FUN
Definition: bitcoin-cli.cpp:29
bool TruncateFile(FILE *file, unsigned int length)
Definition: system.cpp:1022
Definition: system.cpp:1222
void SetupEnvironment()
Definition: system.cpp:1131
void ClearArgs()
Definition: system.h:281
ArgsManager()
Definition: system.cpp:309
fs::path GetConfigFile(const std::string &confPath)
Definition: system.cpp:773
void SelectConfigNetwork(const std::string &network)
Definition: system.cpp:373
void ThreadRename(std::string &&)
Definition: threadnames.cpp:58
bool IsArgNegated(const std::string &strArg) const
Definition: system.cpp:476
Definition: system.cpp:165
std::string GetArg(const std::string &strArg, const std::string &strDefault) const
Definition: system.cpp:494
static void LogPrintf(const char *fmt, const Args &... args)
Definition: logging.h:144
void insert(Tdst &dst, const Tsrc &src)
Simplification of std insertion.
Definition: system.h:372
bool RenameOver(fs::path src, fs::path dest)
Definition: system.cpp:959
const fs::path & GetBlocksDir()
Definition: system.cpp:710
void SetupHelpOptions(ArgsManager &args)
Definition: system.cpp:635
void AllocateFileRange(FILE *file, unsigned int offset, unsigned int length)
Definition: system.cpp:1057
CCriticalSection cs_args
Definition: system.h:154
void PrintExceptionContinue(const std::exception *pex, const char *pszThread)
Definition: system.cpp:672
bool DirIsWritable(const fs::path &directory)
Definition: system.cpp:119
std::vector< std::string > GetArgs(const std::string &strArg) const
Definition: system.cpp:451
int RaiseFileDescriptorLimit(int nMinFD)
Definition: system.cpp:1034
const fs::path & GetDataDir(bool fNetSpecific=true)
Definition: system.cpp:735
std::string GetChainName() const
Definition: system.cpp:944
bool GetBoolArg(const std::string &strArg, bool fDefault) const
Definition: system.cpp:510
int64_t GetStartupTime()
Definition: system.cpp:1198
args
Definition: filter-lcov.py:10
bool SoftSetArg(const std::string &strArg, const std::string &strValue)
Definition: system.cpp:518
void AddArg(const std::string &name, const std::string &help, const bool debug_only, const OptionsCategory &cat)
Definition: system.cpp:540
std::string m_help_param
Definition: system.h:147
const std::list< SectionInfo > GetUnrecognizedSections() const
Definition: system.cpp:358
void ForceSetArg(const std::string &strArg, const std::string &strValue)
Definition: system.cpp:534
const char *const BITCOIN_CONF_FILENAME
Definition: system.cpp:70
bool FileCommit(FILE *file)
Definition: system.cpp:989
NODISCARD bool ReadConfigStream(std::istream &stream, const std::string &filepath, std::string &error, bool ignore_invalid_keys=false)
Definition: system.cpp:833
bool CheckDiskSpace(const fs::path &dir, uint64_t additional_bytes=0)
Definition: system.cpp:132
#define NODISCARD
Definition: attributes.h:18
#define LOCK(cs)
Definition: sync.h:182
const char * name
Definition: rest.cpp:39
unsigned long long uint64_t
Definition: stdint.h:22
bool HelpRequested(const ArgsManager &args)
Definition: system.cpp:630
bool IsArgSet(const std::string &strArg) const
Definition: system.cpp:470
std::string m_file
Definition: system.h:136
bool IsArgKnown(const std::string &key) const
Definition: system.cpp:434
int m_line
Definition: system.h:137
UniValue help(const JSONRPCRequest &jsonRequest)
Definition: server.cpp:132
void TraceThread(const char *name, Callable func)
Definition: system.h:333
std::string HelpMessageGroup(const std::string &message)
Definition: system.cpp:645
std::string _(const char *psz)
Definition: system.h:50
bool SoftSetBoolArg(const std::string &strArg, bool fValue)
Definition: system.cpp:526
file
Definition: linearize-hashes.py:138
std::string m_help_text
Definition: system.h:148
fs::path GetDefaultDataDir()
Definition: system.cpp:679
void ClearDatadirCache()
Definition: system.cpp:764
std::string GetHelpMessage() const
Definition: system.cpp:561
void UnlockDirectory(const fs::path &directory, const std::string &lockfile_name)
Definition: system.cpp:107
std::map< std::string, std::vector< std::string > > m_override_args GUARDED_BY(cs_args)
int ScheduleBatchPriority()
Definition: system.cpp:1208
signed long long int64_t
Definition: stdint.h:18
bool m_debug_only
Definition: system.h:149
bool TryCreateDirectories(const fs::path &p)
Definition: system.cpp:975
bool IsSwitchChar(char c)
Definition: system.h:106
OptionsCategory
Definition: system.h:115
void AddHiddenArgs(const std::vector< std::string > &args)
Definition: system.cpp:554
std::string CopyrightHolders(const std::string &strPrefix)
Definition: system.cpp:1185
NODISCARD bool ParseParameters(int argc, const char *const argv[], std::string &error)
Definition: system.cpp:379
Arg(const std::string &help_param, const std::string &help_text, bool debug_only)
Definition: system.h:151
std::string HelpMessageOpt(const std::string &option, const std::string &message)
Definition: system.cpp:649
NODISCARD bool ReadConfigFiles(std::string &error, bool ignore_invalid_keys=false)
Definition: system.cpp:863
bool LockDirectory(const fs::path &directory, const std::string lockfile_name, bool probe_only=false)
Definition: system.cpp:83
ArgsManager gArgs
Definition: system.cpp:72
bool error(const char *fmt, const Args &... args)
Definition: system.h:59
void ReleaseDirectoryLocks()
Definition: system.cpp:113
const std::set< std::string > GetUnsuitableSectionOnlyArgs() const
Definition: system.cpp:325
int GetNumCores()
Definition: system.cpp:1180
bool SetupNetworking()
Definition: system.cpp:1168
std::string m_name
Definition: system.h:135