aboutsummaryrefslogtreecommitdiff
path: root/src/util.h
diff options
context:
space:
mode:
authorJim Posen <jim.posen@gmail.com>2018-10-22 15:51:11 -0700
committerJim Posen <jim.posen@gmail.com>2018-11-04 22:46:07 -0800
commit2068f089c8b7b90eb4557d3f67ea0f0ed2059a23 (patch)
treebbbd0304b01d48831c60cf6b528c758d62f4949c /src/util.h
parent742ee213499194f97e59dae4971f1474ae7d57ad (diff)
downloadbitcoin-2068f089c8b7b90eb4557d3f67ea0f0ed2059a23.tar.xz
scripted-diff: Move util files to separate directory.
-BEGIN VERIFY SCRIPT- mkdir -p src/util git mv src/util.h src/util/system.h git mv src/util.cpp src/util/system.cpp git mv src/utilmemory.h src/util/memory.h git mv src/utilmoneystr.h src/util/moneystr.h git mv src/utilmoneystr.cpp src/util/moneystr.cpp git mv src/utilstrencodings.h src/util/strencodings.h git mv src/utilstrencodings.cpp src/util/strencodings.cpp git mv src/utiltime.h src/util/time.h git mv src/utiltime.cpp src/util/time.cpp sed -i 's/<util\.h>/<util\/system\.h>/g' $(git ls-files 'src/*.h' 'src/*.cpp') sed -i 's/<utilmemory\.h>/<util\/memory\.h>/g' $(git ls-files 'src/*.h' 'src/*.cpp') sed -i 's/<utilmoneystr\.h>/<util\/moneystr\.h>/g' $(git ls-files 'src/*.h' 'src/*.cpp') sed -i 's/<utilstrencodings\.h>/<util\/strencodings\.h>/g' $(git ls-files 'src/*.h' 'src/*.cpp') sed -i 's/<utiltime\.h>/<util\/time\.h>/g' $(git ls-files 'src/*.h' 'src/*.cpp') sed -i 's/BITCOIN_UTIL_H/BITCOIN_UTIL_SYSTEM_H/g' src/util/system.h sed -i 's/BITCOIN_UTILMEMORY_H/BITCOIN_UTIL_MEMORY_H/g' src/util/memory.h sed -i 's/BITCOIN_UTILMONEYSTR_H/BITCOIN_UTIL_MONEYSTR_H/g' src/util/moneystr.h sed -i 's/BITCOIN_UTILSTRENCODINGS_H/BITCOIN_UTIL_STRENCODINGS_H/g' src/util/strencodings.h sed -i 's/BITCOIN_UTILTIME_H/BITCOIN_UTIL_TIME_H/g' src/util/time.h sed -i 's/ util\.\(h\|cpp\)/ util\/system\.\1/g' src/Makefile.am sed -i 's/utilmemory\.\(h\|cpp\)/util\/memory\.\1/g' src/Makefile.am sed -i 's/utilmoneystr\.\(h\|cpp\)/util\/moneystr\.\1/g' src/Makefile.am sed -i 's/utilstrencodings\.\(h\|cpp\)/util\/strencodings\.\1/g' src/Makefile.am sed -i 's/utiltime\.\(h\|cpp\)/util\/time\.\1/g' src/Makefile.am sed -i 's/-> util ->/-> util\/system ->/' test/lint/lint-circular-dependencies.sh sed -i 's/src\/util\.cpp/src\/util\/system\.cpp/g' test/lint/lint-format-strings.py test/lint/lint-locale-dependence.sh sed -i 's/src\/utilmoneystr\.cpp/src\/util\/moneystr\.cpp/g' test/lint/lint-locale-dependence.sh sed -i 's/src\/utilstrencodings\.\(h\|cpp\)/src\/util\/strencodings\.\1/g' test/lint/lint-locale-dependence.sh sed -i 's/src\\utilstrencodings\.cpp/src\\util\\strencodings\.cpp/' build_msvc/libbitcoinconsensus/libbitcoinconsensus.vcxproj -END VERIFY SCRIPT-
Diffstat (limited to 'src/util.h')
-rw-r--r--src/util.h382
1 files changed, 0 insertions, 382 deletions
diff --git a/src/util.h b/src/util.h
deleted file mode 100644
index fa6d2cd489..0000000000
--- a/src/util.h
+++ /dev/null
@@ -1,382 +0,0 @@
-// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2009-2018 The Bitcoin Core developers
-// Distributed under the MIT software license, see the accompanying
-// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-
-/**
- * Server/client environment: argument handling, config file parsing,
- * thread wrappers, startup time
- */
-#ifndef BITCOIN_UTIL_H
-#define BITCOIN_UTIL_H
-
-#if defined(HAVE_CONFIG_H)
-#include <config/bitcoin-config.h>
-#endif
-
-#include <compat.h>
-#include <fs.h>
-#include <logging.h>
-#include <sync.h>
-#include <tinyformat.h>
-#include <utilmemory.h>
-#include <utiltime.h>
-
-#include <atomic>
-#include <exception>
-#include <map>
-#include <set>
-#include <stdint.h>
-#include <string>
-#include <unordered_set>
-#include <utility>
-#include <vector>
-
-#include <boost/thread/condition_variable.hpp> // for boost::thread_interrupted
-
-// Application startup time (used for uptime calculation)
-int64_t GetStartupTime();
-
-extern const char * const BITCOIN_CONF_FILENAME;
-extern const char * const BITCOIN_PID_FILENAME;
-
-/** Translate a message to the native language of the user. */
-const extern std::function<std::string(const char*)> G_TRANSLATION_FUN;
-
-/**
- * Translation function.
- * If no translation function is set, simply return the input.
- */
-inline std::string _(const char* psz)
-{
- return G_TRANSLATION_FUN ? (G_TRANSLATION_FUN)(psz) : psz;
-}
-
-void SetupEnvironment();
-bool SetupNetworking();
-
-template<typename... Args>
-bool error(const char* fmt, const Args&... args)
-{
- LogPrintf("ERROR: %s\n", tfm::format(fmt, args...));
- return false;
-}
-
-void PrintExceptionContinue(const std::exception *pex, const char* pszThread);
-bool FileCommit(FILE *file);
-bool TruncateFile(FILE *file, unsigned int length);
-int RaiseFileDescriptorLimit(int nMinFD);
-void AllocateFileRange(FILE *file, unsigned int offset, unsigned int length);
-bool RenameOver(fs::path src, fs::path dest);
-bool LockDirectory(const fs::path& directory, const std::string lockfile_name, bool probe_only=false);
-bool DirIsWritable(const fs::path& directory);
-
-/** Release all directory locks. This is used for unit testing only, at runtime
- * the global destructor will take care of the locks.
- */
-void ReleaseDirectoryLocks();
-
-bool TryCreateDirectories(const fs::path& p);
-fs::path GetDefaultDataDir();
-const fs::path &GetBlocksDir(bool fNetSpecific = true);
-const fs::path &GetDataDir(bool fNetSpecific = true);
-void ClearDatadirCache();
-fs::path GetConfigFile(const std::string& confPath);
-#ifndef WIN32
-fs::path GetPidFile();
-void CreatePidFile(const fs::path &path, pid_t pid);
-#endif
-#ifdef WIN32
-fs::path GetSpecialFolderPath(int nFolder, bool fCreate = true);
-#endif
-void runCommand(const std::string& strCommand);
-
-/**
- * Most paths passed as configuration arguments are treated as relative to
- * the datadir if they are not absolute.
- *
- * @param path The path to be conditionally prefixed with datadir.
- * @param net_specific Forwarded to GetDataDir().
- * @return The normalized path.
- */
-fs::path AbsPathForConfigVal(const fs::path& path, bool net_specific = true);
-
-inline bool IsSwitchChar(char c)
-{
-#ifdef WIN32
- return c == '-' || c == '/';
-#else
- return c == '-';
-#endif
-}
-
-enum class OptionsCategory {
- OPTIONS,
- CONNECTION,
- WALLET,
- WALLET_DEBUG_TEST,
- ZMQ,
- DEBUG_TEST,
- CHAINPARAMS,
- NODE_RELAY,
- BLOCK_CREATION,
- RPC,
- GUI,
- COMMANDS,
- REGISTER_COMMANDS,
-
- HIDDEN // Always the last option to avoid printing these in the help
-};
-
-class ArgsManager
-{
-protected:
- friend class ArgsManagerHelper;
-
- struct Arg
- {
- std::string m_help_param;
- std::string m_help_text;
- bool m_debug_only;
-
- Arg(const std::string& help_param, const std::string& help_text, bool debug_only) : m_help_param(help_param), m_help_text(help_text), m_debug_only(debug_only) {};
- };
-
- mutable CCriticalSection cs_args;
- std::map<std::string, std::vector<std::string>> m_override_args GUARDED_BY(cs_args);
- std::map<std::string, std::vector<std::string>> m_config_args 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);
-
- bool ReadConfigStream(std::istream& stream, std::string& error, bool ignore_invalid_keys = false);
-
-public:
- ArgsManager();
-
- /**
- * Select the network in use
- */
- void SelectConfigNetwork(const std::string& network);
-
- bool ParseParameters(int argc, const char* const argv[], std::string& error);
- bool ReadConfigFiles(std::string& error, bool ignore_invalid_keys = false);
-
- /**
- * 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.
- */
- void WarnForSectionOnlyArgs();
-
- /**
- * Return a vector of strings of the given argument
- *
- * @param strArg Argument to get (e.g. "-foo")
- * @return command-line arguments
- */
- std::vector<std::string> GetArgs(const std::string& strArg) const;
-
- /**
- * Return true if the given argument has been manually set
- *
- * @param strArg Argument to get (e.g. "-foo")
- * @return true if the argument has been set
- */
- bool IsArgSet(const std::string& strArg) const;
-
- /**
- * Return true if the argument was originally passed as a negated option,
- * i.e. -nofoo.
- *
- * @param strArg Argument to get (e.g. "-foo")
- * @return true if the argument was passed negated
- */
- bool IsArgNegated(const std::string& strArg) const;
-
- /**
- * Return string argument or default value
- *
- * @param strArg Argument to get (e.g. "-foo")
- * @param strDefault (e.g. "1")
- * @return command-line argument or default value
- */
- std::string GetArg(const std::string& strArg, const std::string& strDefault) const;
-
- /**
- * Return integer argument or default value
- *
- * @param strArg Argument to get (e.g. "-foo")
- * @param nDefault (e.g. 1)
- * @return command-line argument (0 if invalid number) or default value
- */
- int64_t GetArg(const std::string& strArg, int64_t nDefault) const;
-
- /**
- * Return boolean argument or default value
- *
- * @param strArg Argument to get (e.g. "-foo")
- * @param fDefault (true or false)
- * @return command-line argument or default value
- */
- bool GetBoolArg(const std::string& strArg, bool fDefault) const;
-
- /**
- * Set an argument if it doesn't already have a value
- *
- * @param strArg Argument to set (e.g. "-foo")
- * @param strValue Value (e.g. "1")
- * @return true if argument gets set, false if it already had a value
- */
- bool SoftSetArg(const std::string& strArg, const std::string& strValue);
-
- /**
- * Set a boolean argument if it doesn't already have a value
- *
- * @param strArg Argument to set (e.g. "-foo")
- * @param fValue Value (e.g. false)
- * @return true if argument gets set, false if it already had a value
- */
- bool SoftSetBoolArg(const std::string& strArg, bool fValue);
-
- // Forces an arg setting. Called by SoftSetArg() if the arg hasn't already
- // been set. Also called directly in testing.
- void ForceSetArg(const std::string& strArg, const std::string& strValue);
-
- /**
- * Looks for -regtest, -testnet and returns the appropriate BIP70 chain name.
- * @return CBaseChainParams::MAIN by default; raises runtime error if an invalid combination is given.
- */
- std::string GetChainName() const;
-
- /**
- * Add argument
- */
- void AddArg(const std::string& name, const std::string& help, const bool debug_only, const OptionsCategory& cat);
-
- /**
- * Add many hidden arguments
- */
- void AddHiddenArgs(const std::vector<std::string>& args);
-
- /**
- * Clear available arguments
- */
- void ClearArgs() {
- LOCK(cs_args);
- m_available_args.clear();
- }
-
- /**
- * Get the help string
- */
- std::string GetHelpMessage() const;
-
- /**
- * Check whether we know of this arg
- */
- bool IsArgKnown(const std::string& key) const;
-};
-
-extern ArgsManager gArgs;
-
-/**
- * @return true if help has been requested via a command-line arg
- */
-bool HelpRequested(const ArgsManager& args);
-
-/**
- * Format a string to be used as group of options in help messages
- *
- * @param message Group name (e.g. "RPC server options:")
- * @return the formatted string
- */
-std::string HelpMessageGroup(const std::string& message);
-
-/**
- * Format a string to be used as option description in help messages
- *
- * @param option Option message (e.g. "-rpcuser=<user>")
- * @param message Option description (e.g. "Username for JSON-RPC connections")
- * @return the formatted string
- */
-std::string HelpMessageOpt(const std::string& option, const std::string& message);
-
-/**
- * Return the number of cores available on the current system.
- * @note This does count virtual cores, such as those provided by HyperThreading.
- */
-int GetNumCores();
-
-void RenameThread(const char* name);
-
-/**
- * .. and a wrapper that just calls func once
- */
-template <typename Callable> void TraceThread(const char* name, Callable func)
-{
- std::string s = strprintf("bitcoin-%s", name);
- RenameThread(s.c_str());
- try
- {
- LogPrintf("%s thread start\n", name);
- func();
- LogPrintf("%s thread exit\n", name);
- }
- catch (const boost::thread_interrupted&)
- {
- LogPrintf("%s thread interrupt\n", name);
- throw;
- }
- catch (const std::exception& e) {
- PrintExceptionContinue(&e, name);
- throw;
- }
- catch (...) {
- PrintExceptionContinue(nullptr, name);
- throw;
- }
-}
-
-std::string CopyrightHolders(const std::string& strPrefix);
-
-/**
- * On platforms that support it, tell the kernel the calling thread is
- * CPU-intensive and non-interactive. See SCHED_BATCH in sched(7) for details.
- *
- * @return The return value of sched_setschedule(), or 1 on systems without
- * sched_setschedule().
- */
-int ScheduleBatchPriority();
-
-namespace util {
-
-//! Simplification of std insertion
-template <typename Tdst, typename Tsrc>
-inline void insert(Tdst& dst, const Tsrc& src) {
- dst.insert(dst.begin(), src.begin(), src.end());
-}
-template <typename TsetT, typename Tsrc>
-inline void insert(std::set<TsetT>& dst, const Tsrc& src) {
- dst.insert(src.begin(), src.end());
-}
-
-#ifdef WIN32
-class WinCmdLineArgs
-{
-public:
- WinCmdLineArgs();
- ~WinCmdLineArgs();
- std::pair<int, char**> get();
-
-private:
- int argc;
- char** argv;
- std::vector<std::string> args;
-};
-#endif
-
-} // namespace util
-
-#endif // BITCOIN_UTIL_H