1*6777b538SAndroid Build Coastguard Worker // Copyright 2016 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Worker #include "base/task/thread_pool/task.h"
6*6777b538SAndroid Build Coastguard Worker
7*6777b538SAndroid Build Coastguard Worker #include <utility>
8*6777b538SAndroid Build Coastguard Worker
9*6777b538SAndroid Build Coastguard Worker namespace base {
10*6777b538SAndroid Build Coastguard Worker namespace internal {
11*6777b538SAndroid Build Coastguard Worker
Task(const Location & posted_from,OnceClosure task,TimeTicks queue_time,TimeDelta delay,TimeDelta leeway,int sequence_num)12*6777b538SAndroid Build Coastguard Worker Task::Task(const Location& posted_from,
13*6777b538SAndroid Build Coastguard Worker OnceClosure task,
14*6777b538SAndroid Build Coastguard Worker TimeTicks queue_time,
15*6777b538SAndroid Build Coastguard Worker TimeDelta delay,
16*6777b538SAndroid Build Coastguard Worker TimeDelta leeway,
17*6777b538SAndroid Build Coastguard Worker int sequence_num)
18*6777b538SAndroid Build Coastguard Worker : Task(posted_from,
19*6777b538SAndroid Build Coastguard Worker std::move(task),
20*6777b538SAndroid Build Coastguard Worker queue_time,
21*6777b538SAndroid Build Coastguard Worker delay.is_zero() ? TimeTicks() : queue_time + delay,
22*6777b538SAndroid Build Coastguard Worker leeway,
23*6777b538SAndroid Build Coastguard Worker subtle::DelayPolicy::kFlexibleNoSooner,
24*6777b538SAndroid Build Coastguard Worker sequence_num) {}
25*6777b538SAndroid Build Coastguard Worker
Task(const Location & posted_from,OnceClosure task,TimeTicks queue_time,TimeTicks delayed_run_time,TimeDelta leeway,subtle::DelayPolicy delay_policy,int sequence_num)26*6777b538SAndroid Build Coastguard Worker Task::Task(const Location& posted_from,
27*6777b538SAndroid Build Coastguard Worker OnceClosure task,
28*6777b538SAndroid Build Coastguard Worker TimeTicks queue_time,
29*6777b538SAndroid Build Coastguard Worker TimeTicks delayed_run_time,
30*6777b538SAndroid Build Coastguard Worker TimeDelta leeway,
31*6777b538SAndroid Build Coastguard Worker subtle::DelayPolicy delay_policy,
32*6777b538SAndroid Build Coastguard Worker int sequence_num)
33*6777b538SAndroid Build Coastguard Worker : PendingTask(posted_from,
34*6777b538SAndroid Build Coastguard Worker std::move(task),
35*6777b538SAndroid Build Coastguard Worker queue_time,
36*6777b538SAndroid Build Coastguard Worker delayed_run_time,
37*6777b538SAndroid Build Coastguard Worker leeway,
38*6777b538SAndroid Build Coastguard Worker delay_policy) {
39*6777b538SAndroid Build Coastguard Worker this->sequence_num = sequence_num;
40*6777b538SAndroid Build Coastguard Worker }
41*6777b538SAndroid Build Coastguard Worker
Task(const TaskMetadata & metadata,OnceClosure task)42*6777b538SAndroid Build Coastguard Worker Task::Task(const TaskMetadata& metadata, OnceClosure task)
43*6777b538SAndroid Build Coastguard Worker : PendingTask(metadata, std::move(task)) {}
44*6777b538SAndroid Build Coastguard Worker
45*6777b538SAndroid Build Coastguard Worker // This should be "= default but MSVC has trouble with "noexcept = default" in
46*6777b538SAndroid Build Coastguard Worker // this case.
Task(Task && other)47*6777b538SAndroid Build Coastguard Worker Task::Task(Task&& other) noexcept : PendingTask(std::move(other)) {}
48*6777b538SAndroid Build Coastguard Worker
49*6777b538SAndroid Build Coastguard Worker Task& Task::operator=(Task&& other) = default;
50*6777b538SAndroid Build Coastguard Worker
51*6777b538SAndroid Build Coastguard Worker } // namespace internal
52*6777b538SAndroid Build Coastguard Worker } // namespace base
53