blob: 258cf736712c3dde217b8db133c9a100d5a41d4a [file] [log] [blame]
[email protected]1d197ef52012-11-07 20:41:291// 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// Common utilities for Quic tests
6
7#ifndef NET_QUIC_TEST_TOOLS_TEST_TASK_RUNNER_H_
8#define NET_QUIC_TEST_TOOLS_TEST_TASK_RUNNER_H_
9
[email protected]1d197ef52012-11-07 20:41:2910#include <vector>
11
Avi Drissman13fc8932015-12-20 04:40:4612#include "base/macros.h"
[email protected]a8582b12012-12-19 22:18:2913#include "base/task_runner.h"
14#include "base/test/test_pending_task.h"
[email protected]1d197ef52012-11-07 20:41:2915
16namespace net {
17
[email protected]a8582b12012-12-19 22:18:2918class MockClock;
19
[email protected]1d197ef52012-11-07 20:41:2920namespace test {
21
[email protected]a8582b12012-12-19 22:18:2922typedef base::TestPendingTask PostedTask;
[email protected]1d197ef52012-11-07 20:41:2923
24class TestTaskRunner : public base::TaskRunner {
25 public:
26 explicit TestTaskRunner(MockClock* clock);
27
[email protected]a8582b12012-12-19 22:18:2928 // base::TaskRunner implementation.
dchengb03027d2014-10-21 12:00:2029 bool PostDelayedTask(const tracked_objects::Location& from_here,
30 const base::Closure& task,
31 base::TimeDelta delay) override;
32 bool RunsTasksOnCurrentThread() const override;
[email protected]1d197ef52012-11-07 20:41:2933
[email protected]a8582b12012-12-19 22:18:2934 const std::vector<PostedTask>& GetPostedTasks() const;
[email protected]1d197ef52012-11-07 20:41:2935
36 void RunNextTask();
37
[email protected]1d197ef52012-11-07 20:41:2938 protected:
dchengb03027d2014-10-21 12:00:2039 ~TestTaskRunner() override;
[email protected]1d197ef52012-11-07 20:41:2940
41 private:
[email protected]a8582b12012-12-19 22:18:2942 std::vector<PostedTask>::iterator FindNextTask();
43
44 MockClock* const clock_;
[email protected]1d197ef52012-11-07 20:41:2945 std::vector<PostedTask> tasks_;
[email protected]a8582b12012-12-19 22:18:2946
[email protected]1d197ef52012-11-07 20:41:2947 DISALLOW_COPY_AND_ASSIGN(TestTaskRunner);
48};
49
50} // namespace test
51
52} // namespace net
53
54#endif // NET_QUIC_TEST_TOOLS_TEST_TASK_RUNNER_H_