Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(233)

Unified Diff: content/browser/renderer_host/input/timeout_monitor.h

Issue 48973005: Move TouchEvent timeout code to the TouchEventQueue (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/input/timeout_monitor.h
diff --git a/content/browser/renderer_host/input/timeout_monitor.h b/content/browser/renderer_host/input/timeout_monitor.h
new file mode 100644
index 0000000000000000000000000000000000000000..88154e86e7584d34af7f194a33a6168598f5e997
--- /dev/null
+++ b/content/browser/renderer_host/input/timeout_monitor.h
@@ -0,0 +1,50 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_BROWSER_RENDERER_HOST_INPUT_TIMEOUT_MONITOR_H_
+#define CONTENT_BROWSER_RENDERER_HOST_INPUT_TIMEOUT_MONITOR_H_
+
+#include "base/basictypes.h"
+#include "base/callback.h"
+#include "base/time/time.h"
+#include "base/timer/timer.h"
+#include "content/common/content_export.h"
+
+namespace content {
+
+// Utility class for handling a timeout callback with periodic starts and stops.
+class CONTENT_EXPORT TimeoutMonitor {
+ public:
+ typedef base::Closure TimeoutHandler;
+
+ explicit TimeoutMonitor(const TimeoutHandler& timeout_handler);
+ ~TimeoutMonitor();
+
+ // Schedule the timeout timer to fire at |delay| into the future. If a timeout
+ // has already been scheduled, reschedule only if |delay| is sooner than the
+ // currently scheduled timeout time.
+ void Start(base::TimeDelta delay);
+
+ void Restart(base::TimeDelta delay);
+ void Stop();
+ bool IsRunning() const;
+
+ private:
+ void CheckTimedOut();
+
+ TimeoutHandler timeout_handler_;
+
+ // Indicates a time in the future when we would consider the input as
+ // having timed out, if it does not receive an appropriate stop request.
+ base::Time time_when_considered_timed_out_;
+
+ // This timer runs to check if |time_when_considered_timed_out_| has past.
+ base::OneShotTimer<TimeoutMonitor> timeout_timer_;
+
+ DISALLOW_COPY_AND_ASSIGN(TimeoutMonitor);
+};
+
+} // namespace content
+
+#endif // CONTENT_BROWSER_RENDERER_HOST_INPUT_TIMEOUT_MONITOR_H_

Powered by Google App Engine
This is Rietveld 408576698