// Copyright 2015 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 "chromecast/base/task_runner_impl.h" #include "base/bind.h" #include "base/location.h" #include "base/single_thread_task_runner.h" #include "base/thread_task_runner_handle.h" namespace chromecast { TaskRunnerImpl::TaskRunnerImpl() : runner_(base::ThreadTaskRunnerHandle::Get()) { DCHECK(runner_.get()); } TaskRunnerImpl::~TaskRunnerImpl() {} bool TaskRunnerImpl::PostTask(Task* task, uint64_t delay_milliseconds) { DCHECK(task); // TODO(halliwell): FROM_HERE is misleading, we should consider a macro for // vendor backends to send the callsite info. return runner_->PostDelayedTask( FROM_HERE, base::Bind(&Task::Run, base::Owned(task)), base::TimeDelta::FromMilliseconds(delay_milliseconds)); } } // namespace chromecast