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 5#include "media/cast/test/skewed_single_thread_task_runner.h" 6 7#include "base/logging.h" 8#include "base/time/tick_clock.h" 9#include "testing/gtest/include/gtest/gtest.h" 10 11namespace media { 12namespace cast { 13namespace test { 14 15SkewedSingleThreadTaskRunner::SkewedSingleThreadTaskRunner( 16 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner) : 17 skew_(1.0), 18 task_runner_(task_runner) { 19} 20 21SkewedSingleThreadTaskRunner::~SkewedSingleThreadTaskRunner() {} 22 23void SkewedSingleThreadTaskRunner::SetSkew(double skew) { 24 skew_ = skew; 25} 26 27bool SkewedSingleThreadTaskRunner::PostDelayedTask( 28 const tracked_objects::Location& from_here, 29 const base::Closure& task, 30 base::TimeDelta delay) { 31 return task_runner_->PostDelayedTask( 32 from_here, 33 task, 34 base::TimeDelta::FromMicroseconds(delay.InMicroseconds() * skew_)); 35} 36 37bool SkewedSingleThreadTaskRunner::RunsTasksOnCurrentThread() const { 38 return task_runner_->RunsTasksOnCurrentThread(); 39} 40 41bool SkewedSingleThreadTaskRunner::PostNonNestableDelayedTask( 42 const tracked_objects::Location& from_here, 43 const base::Closure& task, 44 base::TimeDelta delay) { 45 return task_runner_->PostNonNestableDelayedTask( 46 from_here, 47 task, 48 base::TimeDelta::FromMicroseconds(delay.InMicroseconds() * skew_)); 49} 50 51} // namespace test 52} // namespace cast 53} // namespace media 54