summaryrefslogtreecommitdiff
path: root/base/deferred_sequenced_task_runner.h
diff options
context:
space:
mode:
Diffstat (limited to 'base/deferred_sequenced_task_runner.h')
-rw-r--r--base/deferred_sequenced_task_runner.h78
1 files changed, 0 insertions, 78 deletions
diff --git a/base/deferred_sequenced_task_runner.h b/base/deferred_sequenced_task_runner.h
deleted file mode 100644
index 110d988615..0000000000
--- a/base/deferred_sequenced_task_runner.h
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright (c) 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 BASE_DEFERRED_SEQUENCED_TASK_RUNNER_H_
-#define BASE_DEFERRED_SEQUENCED_TASK_RUNNER_H_
-
-#include <vector>
-
-#include "base/base_export.h"
-#include "base/basictypes.h"
-#include "base/callback.h"
-#include "base/compiler_specific.h"
-#include "base/memory/ref_counted.h"
-#include "base/sequenced_task_runner.h"
-#include "base/synchronization/lock.h"
-#include "base/time/time.h"
-#include "base/tracked_objects.h"
-
-namespace base {
-
-// A DeferredSequencedTaskRunner is a subclass of SequencedTaskRunner that
-// queues up all requests until the first call to Start() is issued.
-class BASE_EXPORT DeferredSequencedTaskRunner : public SequencedTaskRunner {
- public:
- explicit DeferredSequencedTaskRunner(
- const scoped_refptr<SequencedTaskRunner>& target_runner);
-
- // TaskRunner implementation
- bool PostDelayedTask(const tracked_objects::Location& from_here,
- const Closure& task,
- TimeDelta delay) override;
- bool RunsTasksOnCurrentThread() const override;
-
- // SequencedTaskRunner implementation
- bool PostNonNestableDelayedTask(const tracked_objects::Location& from_here,
- const Closure& task,
- TimeDelta delay) override;
-
- // Start the execution - posts all queued tasks to the target executor. The
- // deferred tasks are posted with their initial delay, meaning that the task
- // execution delay is actually measured from Start.
- // Fails when called a second time.
- void Start();
-
- private:
- struct DeferredTask {
- DeferredTask();
- ~DeferredTask();
-
- tracked_objects::Location posted_from;
- Closure task;
- // The delay this task was initially posted with.
- TimeDelta delay;
- bool is_non_nestable;
- };
-
- ~DeferredSequencedTaskRunner() override;
-
- // Creates a |Task| object and adds it to |deferred_tasks_queue_|.
- void QueueDeferredTask(const tracked_objects::Location& from_here,
- const Closure& task,
- TimeDelta delay,
- bool is_non_nestable);
-
- // // Protects |started_| and |deferred_tasks_queue_|.
- mutable Lock lock_;
-
- bool started_;
- const scoped_refptr<SequencedTaskRunner> target_task_runner_;
- std::vector<DeferredTask> deferred_tasks_queue_;
-
- DISALLOW_COPY_AND_ASSIGN(DeferredSequencedTaskRunner);
-};
-
-} // namespace base
-
-#endif // BASE_DEFERRED_SEQUENCED_TASK_RUNNER_H_