skewed_single_thread_task_runner.cc 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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
  3. // found in the LICENSE file.
  4. #include "media/cast/test/skewed_single_thread_task_runner.h"
  5. #include <utility>
  6. #include "base/time/tick_clock.h"
  7. #include "testing/gtest/include/gtest/gtest.h"
  8. namespace media {
  9. namespace cast {
  10. namespace test {
  11. SkewedSingleThreadTaskRunner::SkewedSingleThreadTaskRunner(
  12. const scoped_refptr<base::SingleThreadTaskRunner>& task_runner) :
  13. skew_(1.0),
  14. task_runner_(task_runner) {
  15. }
  16. SkewedSingleThreadTaskRunner::~SkewedSingleThreadTaskRunner() = default;
  17. void SkewedSingleThreadTaskRunner::SetSkew(double skew) {
  18. skew_ = skew;
  19. }
  20. bool SkewedSingleThreadTaskRunner::PostDelayedTask(
  21. const base::Location& from_here,
  22. base::OnceClosure task,
  23. base::TimeDelta delay) {
  24. return task_runner_->PostDelayedTask(
  25. from_here, std::move(task),
  26. base::Microseconds(delay.InMicroseconds() * skew_));
  27. }
  28. bool SkewedSingleThreadTaskRunner::RunsTasksInCurrentSequence() const {
  29. return task_runner_->RunsTasksInCurrentSequence();
  30. }
  31. bool SkewedSingleThreadTaskRunner::PostNonNestableDelayedTask(
  32. const base::Location& from_here,
  33. base::OnceClosure task,
  34. base::TimeDelta delay) {
  35. return task_runner_->PostNonNestableDelayedTask(
  36. from_here, std::move(task),
  37. base::Microseconds(delay.InMicroseconds() * skew_));
  38. }
  39. } // namespace test
  40. } // namespace cast
  41. } // namespace media