Index: webkit/browser/fileapi/timed_task_helper.cc |
diff --git a/webkit/browser/fileapi/timed_task_helper.cc b/webkit/browser/fileapi/timed_task_helper.cc |
deleted file mode 100644 |
index 4794723e451a92c1afac12477c021742b48b186f..0000000000000000000000000000000000000000 |
--- a/webkit/browser/fileapi/timed_task_helper.cc |
+++ /dev/null |
@@ -1,92 +0,0 @@ |
-// 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. |
- |
-#include "webkit/browser/fileapi/timed_task_helper.h" |
- |
-#include "base/bind.h" |
-#include "base/logging.h" |
-#include "base/sequenced_task_runner.h" |
- |
-namespace storage { |
- |
-struct TimedTaskHelper::Tracker { |
- explicit Tracker(TimedTaskHelper* timer) : timer(timer) {} |
- |
- ~Tracker() { |
- if (timer) |
- timer->tracker_ = NULL; |
- } |
- |
- TimedTaskHelper* timer; |
-}; |
- |
-TimedTaskHelper::TimedTaskHelper(base::SequencedTaskRunner* task_runner) |
- : task_runner_(task_runner), |
- tracker_(NULL) { |
-} |
- |
-TimedTaskHelper::~TimedTaskHelper() { |
- DCHECK(task_runner_->RunsTasksOnCurrentThread()); |
- if (tracker_) |
- tracker_->timer = NULL; |
-} |
- |
-bool TimedTaskHelper::IsRunning() const { |
- DCHECK(task_runner_->RunsTasksOnCurrentThread()); |
- return tracker_ != NULL; |
-} |
- |
-void TimedTaskHelper::Start( |
- const tracked_objects::Location& posted_from, |
- base::TimeDelta delay, |
- const base::Closure& user_task) { |
- posted_from_ = posted_from; |
- delay_ = delay; |
- user_task_ = user_task; |
- Reset(); |
-} |
- |
-void TimedTaskHelper::Reset() { |
- DCHECK(task_runner_->RunsTasksOnCurrentThread()); |
- DCHECK(!user_task_.is_null()); |
- desired_run_time_ = base::TimeTicks::Now() + delay_; |
- |
- if (tracker_) |
- return; |
- |
- // Initialize the tracker for the first time. |
- tracker_ = new Tracker(this); |
- PostDelayedTask(make_scoped_ptr(tracker_), delay_); |
-} |
- |
-// static |
-void TimedTaskHelper::Fired(scoped_ptr<Tracker> tracker) { |
- if (!tracker->timer) |
- return; |
- TimedTaskHelper* timer = tracker->timer; |
- timer->OnFired(tracker.Pass()); |
-} |
- |
-void TimedTaskHelper::OnFired(scoped_ptr<Tracker> tracker) { |
- DCHECK(task_runner_->RunsTasksOnCurrentThread()); |
- base::TimeTicks now = base::TimeTicks::Now(); |
- if (desired_run_time_ > now) { |
- PostDelayedTask(tracker.Pass(), desired_run_time_ - now); |
- return; |
- } |
- tracker.reset(); |
- base::Closure task = user_task_; |
- user_task_.Reset(); |
- task.Run(); |
-} |
- |
-void TimedTaskHelper::PostDelayedTask(scoped_ptr<Tracker> tracker, |
- base::TimeDelta delay) { |
- task_runner_->PostDelayedTask( |
- posted_from_, |
- base::Bind(&TimedTaskHelper::Fired, base::Passed(&tracker)), |
- delay); |
-} |
- |
-} // namespace storage |