summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--compat/timer.cpp46
-rw-r--r--compat/timer.hpp13
2 files changed, 26 insertions, 33 deletions
diff --git a/compat/timer.cpp b/compat/timer.cpp
index a3d91af4..7fa62e9c 100644
--- a/compat/timer.cpp
+++ b/compat/timer.cpp
@@ -21,20 +21,6 @@ void Timer::start()
gettime(&state);
}
-// common
-
-void Timer::gettime(timespec* state)
-{
-#if defined(_WIN32) || defined(__MACH__)
- otr_clock_gettime(state);
-#elif defined CLOCK_MONOTONIC
- const int res = clock_gettime(CLOCK_MONOTONIC, state);
- assert(res == 0 && "must support CLOCK_MONOTONIC");
-#else
-# error "timer query method not known"
-#endif
-}
-
// nanoseconds
long long Timer::elapsed_nsecs() const
@@ -75,15 +61,18 @@ double Timer::elapsed_seconds() const
// platform-specific code starts here
// --
-#if defined _WIN32
-LARGE_INTEGER Timer::otr_get_clock_frequency()
+#if defined (_WIN32)
+# include <windows.h>
+
+static LARGE_INTEGER otr_get_clock_frequency()
{
LARGE_INTEGER freq{};
- (void) QueryPerformanceFrequency(&freq);
+ const BOOL ret = QueryPerformanceFrequency(&freq);
+ assert(ret && "QueryPerformanceFrequency failed");
return freq;
}
-void Timer::otr_clock_gettime(timespec* ts)
+static void otr_clock_gettime(timespec* ts)
{
static const LARGE_INTEGER freq = otr_get_clock_frequency();
@@ -101,14 +90,17 @@ void Timer::otr_clock_gettime(timespec* ts)
}
#elif defined __MACH__
-mach_timebase_info_data_t Timer::otr_get_mach_frequency()
+# include <inttypes.h>
+# include <mach/mach_time.h>
+
+static mach_timebase_info_data_t otr_get_mach_frequency()
{
mach_timebase_info_data_t timebase_info;
(void) mach_timebase_info(&timebase_info);
return timebase_info;
}
-void Timer::otr_clock_gettime(timespec* ts)
+static void otr_clock_gettime(timespec* ts)
{
static const mach_timebase_info_data_t timebase_info = otr_get_mach_frequency();
uint64_t state, nsec;
@@ -119,3 +111,17 @@ void Timer::otr_clock_gettime(timespec* ts)
}
#endif
+
+// common
+
+void Timer::gettime(timespec* state)
+{
+#if defined(_WIN32) || defined(__MACH__)
+ otr_clock_gettime(state);
+#elif defined CLOCK_MONOTONIC
+ const int res = clock_gettime(CLOCK_MONOTONIC, state);
+ assert(res == 0 && "must support CLOCK_MONOTONIC");
+#else
+# error "timer query method not known"
+#endif
+}
diff --git a/compat/timer.hpp b/compat/timer.hpp
index a92d3f68..03b537ac 100644
--- a/compat/timer.hpp
+++ b/compat/timer.hpp
@@ -13,23 +13,10 @@
#include <ctime>
-#if defined (_WIN32)
-# include <windows.h>
-#elif defined(__MACH__)
-# include <inttypes.h>
-# include <mach/mach_time.h>
-#endif
-
class OTR_COMPAT_EXPORT Timer final
{
struct timespec state;
long long conv_nsecs(const struct timespec& cur) const;
- static void otr_clock_gettime(struct timespec* ts);
-#ifdef _WIN32
- static LARGE_INTEGER otr_get_clock_frequency();
-#elif defined(__MACH__)
- static mach_timebase_info_data_t otr_get_mach_frequency();
-#endif
static void gettime(struct timespec* state);