#include <time.h>
#include <sys/socket.h>
-#include <sys/resource.h>\r
-#include <sys/time.h>\r
+#include <sys/resource.h>
+#include <sys/time.h>
#include <sys/types.h>
#include <arpa/inet.h>
// POSIX date/time support.
//
-int OS::GetUserTime(uint32_t* secs, uint32_t* usecs) {\r
- struct rusage usage;\r
-\r
- if (getrusage(RUSAGE_SELF, &usage) < 0) return -1;\r
- *secs = usage.ru_utime.tv_sec;\r
- *usecs = usage.ru_utime.tv_usec;\r
- return 0;\r
-}\r
-\r
-\r
-double OS::TimeCurrentMillis() {\r
- struct timeval tv;\r
- if (gettimeofday(&tv, NULL) < 0) return 0.0;\r
- return (static_cast<double>(tv.tv_sec) * 1000) +\r
- (static_cast<double>(tv.tv_usec) / 1000);\r
-}\r
-\r
-\r
-int64_t OS::Ticks() {\r
- // gettimeofday has microsecond resolution.\r
- struct timeval tv;\r
- if (gettimeofday(&tv, NULL) < 0)\r
- return 0;\r
- return (static_cast<int64_t>(tv.tv_sec) * 1000000) + tv.tv_usec;\r
-}\r
-\r
-\r
-char* OS::LocalTimezone(double time) {\r
- time_t tv = static_cast<time_t>(floor(time/msPerSecond));\r
- struct tm* t = localtime(&tv);\r
- return const_cast<char*>(t->tm_zone);\r
-}\r
-\r
-\r
-double OS::DaylightSavingsOffset(double time) {\r
- time_t tv = static_cast<time_t>(floor(time/msPerSecond));\r
- struct tm* t = localtime(&tv);\r
- return t->tm_isdst > 0 ? 3600 * msPerSecond : 0;\r
-}\r
-\r
-\r
-double OS::LocalTimeOffset() {\r
- time_t tv = time(NULL);\r
- struct tm* t = localtime(&tv);\r
- // tm_gmtoff includes any daylight savings offset, so subtract it.\r
- return static_cast<double>(t->tm_gmtoff * msPerSecond -\r
- (t->tm_isdst > 0 ? 3600 * msPerSecond : 0));\r
-}\r
-\r
-\r
+int OS::GetUserTime(uint32_t* secs, uint32_t* usecs) {
+ struct rusage usage;
+
+ if (getrusage(RUSAGE_SELF, &usage) < 0) return -1;
+ *secs = usage.ru_utime.tv_sec;
+ *usecs = usage.ru_utime.tv_usec;
+ return 0;
+}
+
+
+double OS::TimeCurrentMillis() {
+ struct timeval tv;
+ if (gettimeofday(&tv, NULL) < 0) return 0.0;
+ return (static_cast<double>(tv.tv_sec) * 1000) +
+ (static_cast<double>(tv.tv_usec) / 1000);
+}
+
+
+int64_t OS::Ticks() {
+ // gettimeofday has microsecond resolution.
+ struct timeval tv;
+ if (gettimeofday(&tv, NULL) < 0)
+ return 0;
+ return (static_cast<int64_t>(tv.tv_sec) * 1000000) + tv.tv_usec;
+}
+
+
+char* OS::LocalTimezone(double time) {
+ time_t tv = static_cast<time_t>(floor(time/msPerSecond));
+ struct tm* t = localtime(&tv);
+ return const_cast<char*>(t->tm_zone);
+}
+
+
+double OS::DaylightSavingsOffset(double time) {
+ time_t tv = static_cast<time_t>(floor(time/msPerSecond));
+ struct tm* t = localtime(&tv);
+ return t->tm_isdst > 0 ? 3600 * msPerSecond : 0;
+}
+
+
+double OS::LocalTimeOffset() {
+ time_t tv = time(NULL);
+ struct tm* t = localtime(&tv);
+ // tm_gmtoff includes any daylight savings offset, so subtract it.
+ return static_cast<double>(t->tm_gmtoff * msPerSecond -
+ (t->tm_isdst > 0 ? 3600 * msPerSecond : 0));
+}
+
+
// ----------------------------------------------------------------------------
// POSIX socket support.
//