#ifndef BITCOIN_UTIL_H
#define BITCOIN_UTIL_H
-#if !defined(_MSC_VER) || _MSC_VER > 1700
-#include <inttypes.h>
-#else
-#include "inttypes.h"
-#endif
#include "uint256.h"
#include <stdarg.h>
+#if defined(__USE_MINGW_ANSI_STDIO)
+#undef __USE_MINGW_ANSI_STDIO // This constant forces MinGW to conduct stupid behavior
+#endif
+#include <inttypes.h>
+
#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;
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<std::string>& comments);
void AddTimeData(const CNetAddr& ip, int64_t nTime);
#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());
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)
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)
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")
int size() const
{
- return vValues.size();
+ return static_cast<int>(vValues.size());
}
std::vector<T> sorted () const