Index: webkit/dom_storage/dom_storage_task_runner.cc |
=================================================================== |
--- webkit/dom_storage/dom_storage_task_runner.cc (revision 0) |
+++ webkit/dom_storage/dom_storage_task_runner.cc (revision 0) |
@@ -0,0 +1,71 @@ |
+// Copyright (c) 2012 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/dom_storage/dom_storage_task_runner.h" |
+ |
+#include "base/bind.h" |
+#include "base/bind_helpers.h" |
+#include "base/message_loop_proxy.h" |
+ |
+namespace dom_storage { |
+ |
+// DomStorageTaskRunner |
+ |
+DomStorageTaskRunner::DomStorageTaskRunner( |
+ base::MessageLoopProxy* message_loop) |
+ : message_loop_(message_loop) { |
+} |
+ |
+DomStorageTaskRunner::~DomStorageTaskRunner() { |
+} |
+ |
+void DomStorageTaskRunner::PostTask( |
+ const tracked_objects::Location& from_here, |
+ const base::Closure& task) { |
+ message_loop_->PostTask(from_here, task); |
+} |
+ |
+void DomStorageTaskRunner::PostDelayedTask( |
+ const tracked_objects::Location& from_here, |
+ const base::Closure& task, |
+ base::TimeDelta delay) { |
+ message_loop_->PostDelayedTask(from_here, task, delay.InMilliseconds()); |
+} |
+ |
+// DomStorageWorkerPoolTaskRunner |
+ |
+DomStorageWorkerPoolTaskRunner::DomStorageWorkerPoolTaskRunner( |
+ base::SequencedWorkerPool* sequenced_worker_pool, |
+ base::MessageLoopProxy* delayed_task_loop) |
+ : DomStorageTaskRunner(delayed_task_loop), |
+ sequenced_worker_pool_(sequenced_worker_pool), |
+ sequence_token_( |
+ sequenced_worker_pool->GetNamedSequenceToken("dom_storage_token")) { |
+} |
+ |
+DomStorageWorkerPoolTaskRunner::~DomStorageWorkerPoolTaskRunner() { |
+} |
+ |
+void DomStorageWorkerPoolTaskRunner::PostTask( |
+ const tracked_objects::Location& from_here, |
+ const base::Closure& task) { |
+ // TODO(michaeln): Do all tasks need to be run prior to shutdown? |
+ // Maybe make better use of the SHUTDOWN_BEHAVIOR. |
+ sequenced_worker_pool_->PostSequencedWorkerTask( |
+ sequence_token_, from_here, task); |
+} |
+ |
+void DomStorageWorkerPoolTaskRunner::PostDelayedTask( |
+ const tracked_objects::Location& from_here, |
+ const base::Closure& task, |
+ base::TimeDelta delay) { |
+ // Post a task to call this->PostTask() after the delay. |
+ message_loop_->PostDelayedTask( |
+ FROM_HERE, |
+ base::Bind(&DomStorageWorkerPoolTaskRunner::PostTask, this, |
+ from_here, task), |
+ delay.InMilliseconds()); |
+} |
+ |
+} // namespace dom_storage |
Property changes on: webkit\dom_storage\dom_storage_task_runner.cc |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |