xref: /aosp_15_r20/external/cronet/base/task/sequence_manager/fence.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Copyright 2021 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/sequence_manager/fence.h"
6*6777b538SAndroid Build Coastguard Worker 
7*6777b538SAndroid Build Coastguard Worker #include "base/check.h"
8*6777b538SAndroid Build Coastguard Worker #include "base/json/values_util.h"
9*6777b538SAndroid Build Coastguard Worker #include "base/task/sequence_manager/enqueue_order.h"
10*6777b538SAndroid Build Coastguard Worker #include "base/task/sequence_manager/task_order.h"
11*6777b538SAndroid Build Coastguard Worker #include "base/time/time.h"
12*6777b538SAndroid Build Coastguard Worker #include "base/values.h"
13*6777b538SAndroid Build Coastguard Worker 
14*6777b538SAndroid Build Coastguard Worker namespace base {
15*6777b538SAndroid Build Coastguard Worker namespace sequence_manager {
16*6777b538SAndroid Build Coastguard Worker namespace internal {
17*6777b538SAndroid Build Coastguard Worker 
Fence(const TaskOrder & task_order)18*6777b538SAndroid Build Coastguard Worker Fence::Fence(const TaskOrder& task_order) : task_order_(task_order) {
19*6777b538SAndroid Build Coastguard Worker   DCHECK_NE(task_order_.enqueue_order(), EnqueueOrder::none());
20*6777b538SAndroid Build Coastguard Worker }
21*6777b538SAndroid Build Coastguard Worker 
Fence(EnqueueOrder enqueue_order,TimeTicks delayed_run_time,int sequence_num)22*6777b538SAndroid Build Coastguard Worker Fence::Fence(EnqueueOrder enqueue_order,
23*6777b538SAndroid Build Coastguard Worker              TimeTicks delayed_run_time,
24*6777b538SAndroid Build Coastguard Worker              int sequence_num)
25*6777b538SAndroid Build Coastguard Worker     : task_order_(enqueue_order, delayed_run_time, sequence_num) {}
26*6777b538SAndroid Build Coastguard Worker 
27*6777b538SAndroid Build Coastguard Worker Fence::Fence(const Fence& other) = default;
28*6777b538SAndroid Build Coastguard Worker 
29*6777b538SAndroid Build Coastguard Worker Fence& Fence::operator=(const Fence& other) = default;
30*6777b538SAndroid Build Coastguard Worker 
31*6777b538SAndroid Build Coastguard Worker Fence::~Fence() = default;
32*6777b538SAndroid Build Coastguard Worker 
33*6777b538SAndroid Build Coastguard Worker // static
BlockingFence()34*6777b538SAndroid Build Coastguard Worker Fence Fence::BlockingFence() {
35*6777b538SAndroid Build Coastguard Worker   return CreateWithEnqueueOrder(EnqueueOrder::blocking_fence());
36*6777b538SAndroid Build Coastguard Worker }
37*6777b538SAndroid Build Coastguard Worker 
38*6777b538SAndroid Build Coastguard Worker // static
CreateWithEnqueueOrder(EnqueueOrder enqueue_order)39*6777b538SAndroid Build Coastguard Worker Fence Fence::CreateWithEnqueueOrder(EnqueueOrder enqueue_order) {
40*6777b538SAndroid Build Coastguard Worker   return Fence(enqueue_order, TimeTicks(), 0);
41*6777b538SAndroid Build Coastguard Worker }
42*6777b538SAndroid Build Coastguard Worker 
43*6777b538SAndroid Build Coastguard Worker }  // namespace internal
44*6777b538SAndroid Build Coastguard Worker }  // namespace sequence_manager
45*6777b538SAndroid Build Coastguard Worker }  // namespace base
46