#define END(a) ((char*)&((&(a))[1]))
#define UBEGIN(a) ((unsigned char*)&(a))
#define UEND(a) ((unsigned char*)&((&(a))[1]))
-#define ARRAYLEN(array) (sizeof(array)/sizeof((array)[0]))
-
-#define UVOIDBEGIN(a) ((void*)&(a))
-#define CVOIDBEGIN(a) ((const void*)&(a))
-#define UINTBEGIN(a) ((uint32_t*)&(a))
-#define CUINTBEGIN(a) ((const uint32_t*)&(a))
#ifndef THROW_WITH_STACKTRACE
#define THROW_WITH_STACKTRACE(exception) \
std::string FormatMoney(int64_t n, bool fPlus=false);
bool ParseMoney(const std::string& str, int64_t& nRet);
bool ParseMoney(const char* pszIn, int64_t& nRet);
-std::vector<unsigned char> ParseHex(const char* psz);
-std::vector<unsigned char> ParseHex(const std::string& str);
+std::vector<uint8_t> ParseHex(const char *str);
+inline std::vector<uint8_t> ParseHex(const std::string& str) { return ParseHex(str.c_str()); }
bool IsHex(const std::string& str);
std::vector<unsigned char> DecodeBase64(const char* p, bool* pfInvalid = NULL);
std::string DecodeBase64(const std::string& str);
int GetRandInt(int nMax);
uint64_t GetRand(uint64_t nMax);
uint256 GetRandHash();
+void FillRand(uint8_t *buffer, size_t nCount);
int64_t GetTime();
int64_t GetTimeMillis();
int64_t GetTimeMicros();
-
-
-
-
inline std::string i64tostr(int64_t n)
{
return strprintf("%" PRId64, n);
}
-inline std::string itostr(int n)
-{
- return strprintf("%d", n);
-}
-
-inline int64_t atoi64(const char* psz)
+inline int64_t strtoll(const char* psz)
{
-#ifdef _MSC_VER
- return _atoi64(psz);
-#else
return strtoll(psz, NULL, 10);
-#endif
}
-inline int64_t atoi64(const std::string& str)
+inline int64_t strtoll(const std::string& str)
{
-#ifdef _MSC_VER
- return _atoi64(str.c_str());
-#else
return strtoll(str.c_str(), NULL, 10);
-#endif
}
inline int32_t strtol(const char* psz)
return (int64_t)(d > 0 ? d + 0.5 : d - 0.5);
}
-inline int64_t abs64(int64_t n)
-{
- return (n >= 0 ? n : -n);
-}
-
inline std::string leftTrim(std::string src, char chr)
{
std::string::size_type pos = src.find_first_not_of(chr, 0);