blob: b1b79750d24365ccaa53d511e4830262ac313bde [file]
// Copyright 2018 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 "base/task/sequence_manager/task_queue_task_runner.h"
#include "base/task/sequence_manager/task_queue.h"
#include "base/task/sequence_manager/task_queue_proxy.h"
namespace base {
namespace sequence_manager {
namespace internal {
TaskQueueTaskRunner::TaskQueueTaskRunner(
scoped_refptr<TaskQueueProxy> task_queue_proxy,
int task_type)
: task_queue_proxy_(std::move(task_queue_proxy)), task_type_(task_type) {}
TaskQueueTaskRunner::~TaskQueueTaskRunner() {}
bool TaskQueueTaskRunner::PostDelayedTask(const Location& location,
OnceClosure callback,
TimeDelta delay) {
return task_queue_proxy_->PostTask(TaskQueue::PostedTask(
std::move(callback), location, delay, Nestable::kNestable, task_type_));
}
bool TaskQueueTaskRunner::PostNonNestableDelayedTask(const Location& location,
OnceClosure callback,
TimeDelta delay) {
return task_queue_proxy_->PostTask(
TaskQueue::PostedTask(std::move(callback), location, delay,
Nestable::kNonNestable, task_type_));
}
bool TaskQueueTaskRunner::RunsTasksInCurrentSequence() const {
return task_queue_proxy_->RunsTasksInCurrentSequence();
}
} // namespace internal
} // namespace sequence_manager
} // namespace base