summaryrefslogtreecommitdiffstats
path: root/base/time.h
diff options
context:
space:
mode:
Diffstat (limited to 'base/time.h')
-rw-r--r--base/time.h31
1 files changed, 28 insertions, 3 deletions
diff --git a/base/time.h b/base/time.h
index 6e9a8a4..98a711d 100644
--- a/base/time.h
+++ b/base/time.h
@@ -254,9 +254,27 @@ class Time {
static Time FromFileTime(FILETIME ft);
FILETIME ToFileTime() const;
- // Enable or disable Windows high resolution timer. For more details
- // see comments in time_win.cc. Returns true on success.
- static bool UseHighResolutionTimer(bool use);
+ // The minimum time of a low resolution timer. This is basically a windows
+ // constant of ~15.6ms. While it does vary on some older OS versions, we'll
+ // treat it as static across all windows versions.
+ static const int kMinLowResolutionThresholdMs = 16;
+
+ // Enable or disable Windows high resolution timer. If the high resolution
+ // timer is not enabled, calls to ActivateHighResolutionTimer will fail.
+ // When disabling the high resolution timer, this function will not cause
+ // the high resolution timer to be deactivated, but will prevent future
+ // activations.
+ // Must be called from the main thread.
+ // For more details see comments in time_win.cc.
+ static void EnableHighResolutionTimer(bool enable);
+
+ // Activates or deactivates the high resolution timer based on the |activate|
+ // flag. If the HighResolutionTimer is not Enabled (see
+ // EnableHighResolutionTimer), this function will return false. Otherwise
+ // returns true.
+ // All callers to activate the high resolution timer must eventually call
+ // this function to deactivate the high resolution timer.
+ static bool ActivateHighResolutionTimer(bool activate);
#endif
// Converts an exploded structure representing either the local time or UTC
@@ -370,6 +388,13 @@ class Time {
// platform-dependent epoch.
static const int64 kTimeTToMicrosecondsOffset;
+#if defined(OS_WIN)
+ // Indicates whether fast timers are usable right now. For instance,
+ // when using battery power, we might elect to prevent high speed timers
+ // which would draw more power.
+ static bool high_resolution_timer_enabled_;
+#endif
+
// Time in microseconds in UTC.
int64 us_;
};