// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "media/cast/test/skewed_single_thread_task_runner.h" #include "base/logging.h" #include "base/time/tick_clock.h" #include "testing/gtest/include/gtest/gtest.h" namespace media { namespace cast { namespace test { SkewedSingleThreadTaskRunner::SkewedSingleThreadTaskRunner( const scoped_refptr& task_runner) : skew_(1.0), task_runner_(task_runner) { } SkewedSingleThreadTaskRunner::~SkewedSingleThreadTaskRunner() {} void SkewedSingleThreadTaskRunner::SetSkew(double skew) { skew_ = skew; } bool SkewedSingleThreadTaskRunner::PostDelayedTask( const tracked_objects::Location& from_here, const base::Closure& task, base::TimeDelta delay) { return task_runner_->PostDelayedTask( from_here, task, base::TimeDelta::FromMicroseconds(delay.InMicroseconds() * skew_)); } bool SkewedSingleThreadTaskRunner::RunsTasksOnCurrentThread() const { return task_runner_->RunsTasksOnCurrentThread(); } bool SkewedSingleThreadTaskRunner::PostNonNestableDelayedTask( const tracked_objects::Location& from_here, const base::Closure& task, base::TimeDelta delay) { return task_runner_->PostNonNestableDelayedTask( from_here, task, base::TimeDelta::FromMicroseconds(delay.InMicroseconds() * skew_)); } } // namespace test } // namespace cast } // namespace media