X-Git-Url: https://git.novaco.in/?p=novacoin.git;a=blobdiff_plain;f=src%2Futil.h;h=6cf2070a86700bccab4f820f0d58aa73de455899;hp=25f6c2aca6bb3a084ef46fbf5e1d2d0b1bc359de;hb=c95d66bd55a225326e81dce15d347f04b1d71d67;hpb=fe326c477b0b109819653dc2657495f867ff8616 diff --git a/src/util.h b/src/util.h index 25f6c2a..6cf2070 100644 --- a/src/util.h +++ b/src/util.h @@ -35,6 +35,9 @@ #include "netbase.h" // for AddTimeData +static const int32_t nOneHour = 60 * 60; +static const int32_t nOneDay = 24 * 60 * 60; +static const int64_t nOneWeek = 7 * 24 * 60 * 60; static const int64_t COIN = 1000000; static const int64_t CENT = 10000; @@ -59,6 +62,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__) @@ -223,7 +238,9 @@ int GetRandInt(int nMax); uint64_t GetRand(uint64_t nMax); uint256 GetRandHash(); int64_t GetTime(); -void SetMockTime(int64_t nMockTimeIn); +int64_t GetTimeMillis(); +int64_t GetTimeMicros(); + int64_t GetAdjustedTime(); int64_t GetTimeOffset(); int64_t GetNodesOffset(); @@ -278,6 +295,16 @@ 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()); @@ -358,10 +385,16 @@ 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 int64_t GetTimeMicros() +{ + return (boost::posix_time::microsec_clock::universal_time() - + boost::posix_time::ptime(boost::gregorian::date(1970,1,1))).total_microseconds(); +} + std::string DateTimeStrFormat(const char* pszFormat, int64_t nTime); static const std::string strTimestampFormat = "%Y-%m-%d %H:%M:%S UTC"; @@ -415,6 +448,15 @@ int64_t GetArg(const std::string& strArg, int64_t nDefault); 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") @@ -489,7 +531,7 @@ public: T median() const { - int size = vSorted.size(); + size_t size = vSorted.size(); assert(size>0); if(size & 1) // Odd number of elements {