Index: base/sequenced_task_runner_impl.cc |
=================================================================== |
--- base/sequenced_task_runner_impl.cc (revision 0) |
+++ base/sequenced_task_runner_impl.cc (revision 0) |
@@ -0,0 +1,76 @@ |
+// 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 "sequenced_task_runner_impl.h" |
+ |
+#include "base/logging.h" |
+#include "base/threading/sequenced_worker_pool.h" |
+ |
+namespace base { |
+ |
+// Thin wrapper for SequencedWorkerPool::SequenceToken used to obviate the |
+// need to include the SequencedWorkerPool header in this file's header. |
+class SequencedTaskRunnerImpl::SequenceToken { |
+ public: |
+ explicit SequenceToken(const SequencedWorkerPool::SequenceToken token) |
+ : value_(token) { |
+ } |
+ operator SequencedWorkerPool::SequenceToken() const { |
+ return value_; |
+ } |
+ private: |
+ SequencedWorkerPool::SequenceToken value_; |
+}; |
+ |
+SequencedTaskRunnerImpl::SequencedTaskRunnerImpl( |
+ scoped_refptr<SequencedWorkerPool> pool) |
+ : pool_(pool), |
+ token_(new SequenceToken(pool_->GetSequenceToken())) { |
+} |
+ |
+SequencedTaskRunnerImpl::~SequencedTaskRunnerImpl() { |
+} |
+ |
+bool SequencedTaskRunnerImpl::PostDelayedTask( |
+ const tracked_objects::Location& from_here, |
+ const Closure& task, |
+ int64 delay_ms) { |
+ return pool_->PostDelayedTask(from_here, task, delay_ms); |
+} |
+ |
+bool SequencedTaskRunnerImpl::PostDelayedTask( |
+ const tracked_objects::Location& from_here, |
+ const Closure& task, |
+ TimeDelta delay) { |
+ return pool_->PostDelayedTask(from_here, task, delay); |
+} |
+ |
+bool SequencedTaskRunnerImpl::RunsTasksOnCurrentThread() const { |
+ return pool_->RunsTasksOnCurrentThread(); |
+} |
+ |
+bool SequencedTaskRunnerImpl::PostNonNestableDelayedTask( |
+ const tracked_objects::Location& from_here, |
+ const Closure& task, |
+ int64 delay_ms) { |
+ // TODO(francoisk777@gmail.com): Change the following two statements once |
+ // SequencedWorkerPool supports non-zero delays. |
+ DLOG_IF(WARNING, (delay_ms != 0)) << "SequencedTaskRunnerImpl does not yet " |
akalin
2012/03/13 07:27:11
probably should change this to NOTREACHED, analogo
Francois
2012/03/14 15:43:31
Done.
|
+ "support non-zero delays; ignoring delay of " << delay_ms << " ms"; |
+ return pool_->PostSequencedWorkerTask(*token_, from_here, task); |
+} |
+ |
+bool SequencedTaskRunnerImpl::PostNonNestableDelayedTask( |
+ const tracked_objects::Location& from_here, |
+ const Closure& task, |
+ base::TimeDelta delay) { |
+ // TODO(francoisk777@gmail.com): Change the following two statements once |
+ // SequencedWorkerPool supports non-zero delays. |
+ DLOG_IF(WARNING, (delay.InMillisecondsRoundedUp() != 0)) |
+ << "SequencedTaskRunnerImpl does not yet support non-zero delays; " |
+ "ignoring delay of " << delay.InMillisecondsRoundedUp(); |
+ return pool_->PostSequencedWorkerTask(*token_, from_here, task); |
+} |
+ |
+} // namespace base |
Property changes on: base/sequenced_task_runner_impl.cc |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |