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

Side by Side Diff: base/test/test_simple_task_runner.cc

Issue 1647803004: Move base to DEPS (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 4 years, 10 months 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 unified diff | Download patch
« no previous file with comments | « base/test/test_simple_task_runner.h ('k') | base/test/test_suite.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/test/test_simple_task_runner.h"
6
7 #include "base/logging.h"
8
9 namespace base {
10
11 TestSimpleTaskRunner::TestSimpleTaskRunner() {}
12
13 TestSimpleTaskRunner::~TestSimpleTaskRunner() {
14 DCHECK(thread_checker_.CalledOnValidThread());
15 }
16
17 bool TestSimpleTaskRunner::PostDelayedTask(
18 const tracked_objects::Location& from_here,
19 const Closure& task,
20 TimeDelta delay) {
21 DCHECK(thread_checker_.CalledOnValidThread());
22 pending_tasks_.push_back(
23 TestPendingTask(from_here, task, TimeTicks(), delay,
24 TestPendingTask::NESTABLE));
25 return true;
26 }
27
28 bool TestSimpleTaskRunner::PostNonNestableDelayedTask(
29 const tracked_objects::Location& from_here,
30 const Closure& task,
31 TimeDelta delay) {
32 DCHECK(thread_checker_.CalledOnValidThread());
33 pending_tasks_.push_back(
34 TestPendingTask(from_here, task, TimeTicks(), delay,
35 TestPendingTask::NON_NESTABLE));
36 return true;
37 }
38
39 bool TestSimpleTaskRunner::RunsTasksOnCurrentThread() const {
40 DCHECK(thread_checker_.CalledOnValidThread());
41 return true;
42 }
43
44 const std::deque<TestPendingTask>&
45 TestSimpleTaskRunner::GetPendingTasks() const {
46 DCHECK(thread_checker_.CalledOnValidThread());
47 return pending_tasks_;
48 }
49
50 bool TestSimpleTaskRunner::HasPendingTask() const {
51 DCHECK(thread_checker_.CalledOnValidThread());
52 return !pending_tasks_.empty();
53 }
54
55 base::TimeDelta TestSimpleTaskRunner::NextPendingTaskDelay() const {
56 DCHECK(thread_checker_.CalledOnValidThread());
57 return pending_tasks_.front().GetTimeToRun() - base::TimeTicks();
58 }
59
60 void TestSimpleTaskRunner::ClearPendingTasks() {
61 DCHECK(thread_checker_.CalledOnValidThread());
62 pending_tasks_.clear();
63 }
64
65 void TestSimpleTaskRunner::RunPendingTasks() {
66 DCHECK(thread_checker_.CalledOnValidThread());
67 // Swap with a local variable to avoid re-entrancy problems.
68 std::deque<TestPendingTask> tasks_to_run;
69 tasks_to_run.swap(pending_tasks_);
70 for (std::deque<TestPendingTask>::iterator it = tasks_to_run.begin();
71 it != tasks_to_run.end(); ++it) {
72 it->task.Run();
73 }
74 }
75
76 void TestSimpleTaskRunner::RunUntilIdle() {
77 while (!pending_tasks_.empty()) {
78 RunPendingTasks();
79 }
80 }
81
82 } // namespace base
OLDNEW
« no previous file with comments | « base/test/test_simple_task_runner.h ('k') | base/test/test_suite.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698