xref: /aosp_15_r20/external/grpc-grpc/include/grpc/impl/propagation_bits.h (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1*cc02d7e2SAndroid Build Coastguard Worker /*
2*cc02d7e2SAndroid Build Coastguard Worker  *
3*cc02d7e2SAndroid Build Coastguard Worker  * Copyright 2016 gRPC authors.
4*cc02d7e2SAndroid Build Coastguard Worker  *
5*cc02d7e2SAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
6*cc02d7e2SAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
7*cc02d7e2SAndroid Build Coastguard Worker  * You may obtain a copy of the License at
8*cc02d7e2SAndroid Build Coastguard Worker  *
9*cc02d7e2SAndroid Build Coastguard Worker  *     http://www.apache.org/licenses/LICENSE-2.0
10*cc02d7e2SAndroid Build Coastguard Worker  *
11*cc02d7e2SAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
12*cc02d7e2SAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
13*cc02d7e2SAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*cc02d7e2SAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
15*cc02d7e2SAndroid Build Coastguard Worker  * limitations under the License.
16*cc02d7e2SAndroid Build Coastguard Worker  *
17*cc02d7e2SAndroid Build Coastguard Worker  */
18*cc02d7e2SAndroid Build Coastguard Worker 
19*cc02d7e2SAndroid Build Coastguard Worker #ifndef GRPC_IMPL_PROPAGATION_BITS_H
20*cc02d7e2SAndroid Build Coastguard Worker #define GRPC_IMPL_PROPAGATION_BITS_H
21*cc02d7e2SAndroid Build Coastguard Worker 
22*cc02d7e2SAndroid Build Coastguard Worker // IWYU pragma: private
23*cc02d7e2SAndroid Build Coastguard Worker 
24*cc02d7e2SAndroid Build Coastguard Worker #include <grpc/support/port_platform.h>
25*cc02d7e2SAndroid Build Coastguard Worker 
26*cc02d7e2SAndroid Build Coastguard Worker #ifdef __cplusplus
27*cc02d7e2SAndroid Build Coastguard Worker extern "C" {
28*cc02d7e2SAndroid Build Coastguard Worker #endif
29*cc02d7e2SAndroid Build Coastguard Worker 
30*cc02d7e2SAndroid Build Coastguard Worker /** Propagation bits: this can be bitwise or-ed to form propagation_mask for
31*cc02d7e2SAndroid Build Coastguard Worker  * grpc_call */
32*cc02d7e2SAndroid Build Coastguard Worker /** Propagate deadline */
33*cc02d7e2SAndroid Build Coastguard Worker #define GRPC_PROPAGATE_DEADLINE ((uint32_t)1)
34*cc02d7e2SAndroid Build Coastguard Worker /** Propagate census context */
35*cc02d7e2SAndroid Build Coastguard Worker #define GRPC_PROPAGATE_CENSUS_STATS_CONTEXT ((uint32_t)2)
36*cc02d7e2SAndroid Build Coastguard Worker #define GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT ((uint32_t)4)
37*cc02d7e2SAndroid Build Coastguard Worker /** Propagate cancellation */
38*cc02d7e2SAndroid Build Coastguard Worker #define GRPC_PROPAGATE_CANCELLATION ((uint32_t)8)
39*cc02d7e2SAndroid Build Coastguard Worker 
40*cc02d7e2SAndroid Build Coastguard Worker /** Default propagation mask: clients of the core API are encouraged to encode
41*cc02d7e2SAndroid Build Coastguard Worker    deltas from this in their implementations... ie write:
42*cc02d7e2SAndroid Build Coastguard Worker    GRPC_PROPAGATE_DEFAULTS & ~GRPC_PROPAGATE_DEADLINE to disable deadline
43*cc02d7e2SAndroid Build Coastguard Worker    propagation. Doing so gives flexibility in the future to define new
44*cc02d7e2SAndroid Build Coastguard Worker    propagation types that are default inherited or not. */
45*cc02d7e2SAndroid Build Coastguard Worker #define GRPC_PROPAGATE_DEFAULTS                                                \
46*cc02d7e2SAndroid Build Coastguard Worker   ((uint32_t)((                                                                \
47*cc02d7e2SAndroid Build Coastguard Worker       0xffff | GRPC_PROPAGATE_DEADLINE | GRPC_PROPAGATE_CENSUS_STATS_CONTEXT | \
48*cc02d7e2SAndroid Build Coastguard Worker       GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT | GRPC_PROPAGATE_CANCELLATION)))
49*cc02d7e2SAndroid Build Coastguard Worker 
50*cc02d7e2SAndroid Build Coastguard Worker #ifdef __cplusplus
51*cc02d7e2SAndroid Build Coastguard Worker }
52*cc02d7e2SAndroid Build Coastguard Worker #endif
53*cc02d7e2SAndroid Build Coastguard Worker 
54*cc02d7e2SAndroid Build Coastguard Worker #endif /* GRPC_IMPL_PROPAGATION_BITS_H */
55