X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Futil.h;h=f4b872c791d61a8bf9c282dff55627b02a025d84;hb=0a18ce8f4cd1a723f50333945d94c84b45c8d56b;hp=c233a0b720c59e91800bc32884f9742ab8d62347;hpb=77a43545b4491b9703d803765da9059d2bdd5aaa;p=novacoin.git diff --git a/src/util.h b/src/util.h index c233a0b..f4b872c 100644 --- a/src/util.h +++ b/src/util.h @@ -5,7 +5,7 @@ #ifndef BITCOIN_UTIL_H #define BITCOIN_UTIL_H -#include + #include "uint256.h" #ifndef WIN32 @@ -28,8 +28,15 @@ #include +#if defined(__USE_MINGW_ANSI_STDIO) +#undef __USE_MINGW_ANSI_STDIO // This constant forces MinGW to conduct stupid behavior +#endif +#include + #include "netbase.h" // for AddTimeData +static const int32_t nOneHour = 60 * 60; +static const int32_t nOneDay = 24 * 60 * 60; static const int64_t COIN = 1000000; static const int64_t CENT = 10000; @@ -54,6 +61,18 @@ static const int64_t CENT = 10000; void LogStackTrace(); #endif +#if defined(_MSC_VER) || defined(__MSVCRT__) + /* Silence compiler warnings on Windows + related to MinGWs inttypes.h */ + #undef PRIu64 + #undef PRId64 + #undef PRIx64 + + #define PRIu64 "I64u" + #define PRId64 "I64d" + #define PRIx64 "I64x" + +#endif /* Format characters for (s)size_t and ptrdiff_t */ #if defined(_MSC_VER) || defined(__MSVCRT__) @@ -221,6 +240,7 @@ int64_t GetTime(); void SetMockTime(int64_t nMockTimeIn); int64_t GetAdjustedTime(); int64_t GetTimeOffset(); +int64_t GetNodesOffset(); std::string FormatFullVersion(); std::string FormatSubVersion(const std::string& name, int nClientVersion, const std::vector& comments); void AddTimeData(const CNetAddr& ip, int64_t nTime); @@ -262,6 +282,26 @@ inline int64_t atoi64(const std::string& str) #endif } +inline int32_t strtol(const char* psz) +{ + return strtol(psz, NULL, 10); +} + +inline int32_t strtol(const std::string& str) +{ + return strtol(str.c_str(), NULL, 10); +} + +inline uint32_t strtoul(const char* psz) +{ + return strtoul(psz, NULL, 10); +} + +inline uint32_t strtoul(const std::string& str) +{ + return strtoul(str.c_str(), NULL, 10); +} + inline int atoi(const std::string& str) { return atoi(str.c_str()); @@ -342,18 +382,11 @@ inline int64_t GetPerformanceCounter() inline int64_t GetTimeMillis() { - return (boost::posix_time::ptime(boost::posix_time::microsec_clock::universal_time()) - + return (boost::posix_time::microsec_clock::universal_time() - boost::posix_time::ptime(boost::gregorian::date(1970,1,1))).total_milliseconds(); } -inline std::string DateTimeStrFormat(const char* pszFormat, int64_t nTime) -{ - time_t n = nTime; - struct tm* ptmTime = gmtime(&n); - char pszTime[200]; - strftime(pszTime, sizeof(pszTime), pszFormat, ptmTime); - return pszTime; -} +std::string DateTimeStrFormat(const char* pszFormat, int64_t nTime); static const std::string strTimestampFormat = "%Y-%m-%d %H:%M:%S UTC"; inline std::string DateTimeStrFormat(int64_t nTime) @@ -388,7 +421,7 @@ inline bool IsSwitchChar(char c) std::string GetArg(const std::string& strArg, const std::string& strDefault); /** - * Return integer argument or default value + * Return 64-bit integer argument or default value * * @param strArg Argument to get (e.g. "-foo") * @param default (e.g. 1) @@ -397,6 +430,24 @@ std::string GetArg(const std::string& strArg, const std::string& strDefault); int64_t GetArg(const std::string& strArg, int64_t nDefault); /** + * Return 32-bit integer argument or default value + * + * @param strArg Argument to get (e.g. "-foo") + * @param default (e.g. 1) + * @return command-line argument (0 if invalid number) or default value + */ +int32_t GetArgInt(const std::string& strArg, int32_t nDefault); + +/** + * Return 32-bit unsigned integer argument or default value + * + * @param strArg Argument to get (e.g. "-foo") + * @param default (e.g. 1) + * @return command-line argument (0 if invalid number) or default value + */ +uint32_t GetArgUInt(const std::string& strArg, uint32_t nDefault); + +/** * Return boolean argument or default value * * @param strArg Argument to get (e.g. "-foo") @@ -485,7 +536,7 @@ public: int size() const { - return vValues.size(); + return static_cast(vValues.size()); } std::vector sorted () const