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

Side by Side Diff: media/cast/test/skewed_single_thread_task_runner.h

Issue 2726523002: Pass Callback to TaskRunner by value and consume it on invocation (1) (Closed)
Patch Set: erase Closure* Created 3 years, 8 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef MEDIA_CAST_TEST_SKEWED_SINGLE_THREAD_TASK_RUNNER_H_ 5 #ifndef MEDIA_CAST_TEST_SKEWED_SINGLE_THREAD_TASK_RUNNER_H_
6 #define MEDIA_CAST_TEST_SKEWED_SINGLE_THREAD_TASK_RUNNER_H_ 6 #define MEDIA_CAST_TEST_SKEWED_SINGLE_THREAD_TASK_RUNNER_H_
7 7
8 #include <map> 8 #include <map>
9 9
10 #include "base/callback.h"
10 #include "base/macros.h" 11 #include "base/macros.h"
11 #include "base/single_thread_task_runner.h" 12 #include "base/single_thread_task_runner.h"
12 #include "base/test/simple_test_tick_clock.h" 13 #include "base/test/simple_test_tick_clock.h"
13 #include "base/test/test_pending_task.h" 14 #include "base/test/test_pending_task.h"
14 15
15 namespace media { 16 namespace media {
16 namespace cast { 17 namespace cast {
17 namespace test { 18 namespace test {
18 19
19 // This class wraps a SingleThreadTaskRunner, and allows you to scale 20 // This class wraps a SingleThreadTaskRunner, and allows you to scale
20 // the delay for any posted task by a factor. The factor is changed by 21 // the delay for any posted task by a factor. The factor is changed by
21 // calling SetSkew(). A skew of 2.0 means that all delayed task will 22 // calling SetSkew(). A skew of 2.0 means that all delayed task will
22 // have to wait twice as long. 23 // have to wait twice as long.
23 class SkewedSingleThreadTaskRunner : public base::SingleThreadTaskRunner { 24 class SkewedSingleThreadTaskRunner : public base::SingleThreadTaskRunner {
24 public: 25 public:
25 explicit SkewedSingleThreadTaskRunner( 26 explicit SkewedSingleThreadTaskRunner(
26 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner); 27 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner);
27 28
28 // Set the delay multiplier to |skew|. 29 // Set the delay multiplier to |skew|.
29 void SetSkew(double skew); 30 void SetSkew(double skew);
30 31
31 // base::SingleThreadTaskRunner implementation. 32 // base::SingleThreadTaskRunner implementation.
32 bool PostDelayedTask(const tracked_objects::Location& from_here, 33 bool PostDelayedTask(const tracked_objects::Location& from_here,
33 const base::Closure& task, 34 base::Closure task,
34 base::TimeDelta delay) final; 35 base::TimeDelta delay) final;
35 36
36 bool RunsTasksOnCurrentThread() const final; 37 bool RunsTasksOnCurrentThread() const final;
37 38
38 // This function is currently not used, and will return false. 39 // This function is currently not used, and will return false.
39 bool PostNonNestableDelayedTask(const tracked_objects::Location& from_here, 40 bool PostNonNestableDelayedTask(const tracked_objects::Location& from_here,
40 const base::Closure& task, 41 base::Closure task,
41 base::TimeDelta delay) final; 42 base::TimeDelta delay) final;
42 43
43 protected: 44 protected:
44 ~SkewedSingleThreadTaskRunner() final; 45 ~SkewedSingleThreadTaskRunner() final;
45 46
46 private: 47 private:
47 double skew_; 48 double skew_;
48 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; 49 scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
49 50
50 DISALLOW_COPY_AND_ASSIGN(SkewedSingleThreadTaskRunner); 51 DISALLOW_COPY_AND_ASSIGN(SkewedSingleThreadTaskRunner);
51 }; 52 };
52 53
53 } // namespace test 54 } // namespace test
54 } // namespace cast 55 } // namespace cast
55 } // namespace media 56 } // namespace media
56 57
57 #endif // MEDIA_CAST_TEST_SKEWED_SINGLE_THREAD_TASK_RUNNER_H_ 58 #endif // MEDIA_CAST_TEST_SKEWED_SINGLE_THREAD_TASK_RUNNER_H_
OLDNEW
« no previous file with comments | « media/base/fake_single_thread_task_runner.cc ('k') | media/cast/test/skewed_single_thread_task_runner.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698