1 /*
2  * Copyright 2015 gRPC authors.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 /*
18  * WARNING: Auto-generated code.
19  *
20  * To make changes to this file, change
21  * tools/codegen/core/gen_static_metadata.py, and then re-run it.
22  *
23  * See metadata.h for an explanation of the interface here, and metadata.cc for
24  * an explanation of what's going on.
25  */
26 
27 #ifndef GRPC_CORE_LIB_TRANSPORT_STATIC_METADATA_H
28 #define GRPC_CORE_LIB_TRANSPORT_STATIC_METADATA_H
29 
30 #include <grpc/support/port_platform.h>
31 
32 #include <cstdint>
33 
34 #include "src/core/lib/slice/static_slice.h"
35 #include "src/core/lib/transport/metadata.h"
36 
37 #define GRPC_STATIC_MDELEM_COUNT 84
38 
39 namespace grpc_core {
40 extern StaticMetadata g_static_mdelem_table[GRPC_STATIC_MDELEM_COUNT];
41 extern grpc_mdelem g_static_mdelem_manifested[GRPC_STATIC_MDELEM_COUNT];
42 }  // namespace grpc_core
43 
44 extern uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT];
45 /* ":authority": "" */
46 #define GRPC_MDELEM_AUTHORITY_EMPTY (::grpc_core::g_static_mdelem_manifested[0])
47 /* ":method": "GET" */
48 #define GRPC_MDELEM_METHOD_GET (::grpc_core::g_static_mdelem_manifested[1])
49 /* ":method": "POST" */
50 #define GRPC_MDELEM_METHOD_POST (::grpc_core::g_static_mdelem_manifested[2])
51 /* ":path": "/" */
52 #define GRPC_MDELEM_PATH_SLASH (::grpc_core::g_static_mdelem_manifested[3])
53 /* ":path": "/index.html" */
54 #define GRPC_MDELEM_PATH_SLASH_INDEX_DOT_HTML \
55   (::grpc_core::g_static_mdelem_manifested[4])
56 /* ":scheme": "http" */
57 #define GRPC_MDELEM_SCHEME_HTTP (::grpc_core::g_static_mdelem_manifested[5])
58 /* ":scheme": "https" */
59 #define GRPC_MDELEM_SCHEME_HTTPS (::grpc_core::g_static_mdelem_manifested[6])
60 /* ":status": "200" */
61 #define GRPC_MDELEM_STATUS_200 (::grpc_core::g_static_mdelem_manifested[7])
62 /* ":status": "204" */
63 #define GRPC_MDELEM_STATUS_204 (::grpc_core::g_static_mdelem_manifested[8])
64 /* ":status": "206" */
65 #define GRPC_MDELEM_STATUS_206 (::grpc_core::g_static_mdelem_manifested[9])
66 /* ":status": "304" */
67 #define GRPC_MDELEM_STATUS_304 (::grpc_core::g_static_mdelem_manifested[10])
68 /* ":status": "400" */
69 #define GRPC_MDELEM_STATUS_400 (::grpc_core::g_static_mdelem_manifested[11])
70 /* ":status": "404" */
71 #define GRPC_MDELEM_STATUS_404 (::grpc_core::g_static_mdelem_manifested[12])
72 /* ":status": "500" */
73 #define GRPC_MDELEM_STATUS_500 (::grpc_core::g_static_mdelem_manifested[13])
74 /* "accept-charset": "" */
75 #define GRPC_MDELEM_ACCEPT_CHARSET_EMPTY \
76   (::grpc_core::g_static_mdelem_manifested[14])
77 /* "accept-encoding": "gzip, deflate" */
78 #define GRPC_MDELEM_ACCEPT_ENCODING_GZIP_COMMA_DEFLATE \
79   (::grpc_core::g_static_mdelem_manifested[15])
80 /* "accept-language": "" */
81 #define GRPC_MDELEM_ACCEPT_LANGUAGE_EMPTY \
82   (::grpc_core::g_static_mdelem_manifested[16])
83 /* "accept-ranges": "" */
84 #define GRPC_MDELEM_ACCEPT_RANGES_EMPTY \
85   (::grpc_core::g_static_mdelem_manifested[17])
86 /* "accept": "" */
87 #define GRPC_MDELEM_ACCEPT_EMPTY (::grpc_core::g_static_mdelem_manifested[18])
88 /* "access-control-allow-origin": "" */
89 #define GRPC_MDELEM_ACCESS_CONTROL_ALLOW_ORIGIN_EMPTY \
90   (::grpc_core::g_static_mdelem_manifested[19])
91 /* "age": "" */
92 #define GRPC_MDELEM_AGE_EMPTY (::grpc_core::g_static_mdelem_manifested[20])
93 /* "allow": "" */
94 #define GRPC_MDELEM_ALLOW_EMPTY (::grpc_core::g_static_mdelem_manifested[21])
95 /* "authorization": "" */
96 #define GRPC_MDELEM_AUTHORIZATION_EMPTY \
97   (::grpc_core::g_static_mdelem_manifested[22])
98 /* "cache-control": "" */
99 #define GRPC_MDELEM_CACHE_CONTROL_EMPTY \
100   (::grpc_core::g_static_mdelem_manifested[23])
101 /* "content-disposition": "" */
102 #define GRPC_MDELEM_CONTENT_DISPOSITION_EMPTY \
103   (::grpc_core::g_static_mdelem_manifested[24])
104 /* "content-encoding": "" */
105 #define GRPC_MDELEM_CONTENT_ENCODING_EMPTY \
106   (::grpc_core::g_static_mdelem_manifested[25])
107 /* "content-language": "" */
108 #define GRPC_MDELEM_CONTENT_LANGUAGE_EMPTY \
109   (::grpc_core::g_static_mdelem_manifested[26])
110 /* "content-length": "" */
111 #define GRPC_MDELEM_CONTENT_LENGTH_EMPTY \
112   (::grpc_core::g_static_mdelem_manifested[27])
113 /* "content-location": "" */
114 #define GRPC_MDELEM_CONTENT_LOCATION_EMPTY \
115   (::grpc_core::g_static_mdelem_manifested[28])
116 /* "content-range": "" */
117 #define GRPC_MDELEM_CONTENT_RANGE_EMPTY \
118   (::grpc_core::g_static_mdelem_manifested[29])
119 /* "content-type": "" */
120 #define GRPC_MDELEM_CONTENT_TYPE_EMPTY \
121   (::grpc_core::g_static_mdelem_manifested[30])
122 /* "cookie": "" */
123 #define GRPC_MDELEM_COOKIE_EMPTY (::grpc_core::g_static_mdelem_manifested[31])
124 /* "date": "" */
125 #define GRPC_MDELEM_DATE_EMPTY (::grpc_core::g_static_mdelem_manifested[32])
126 /* "etag": "" */
127 #define GRPC_MDELEM_ETAG_EMPTY (::grpc_core::g_static_mdelem_manifested[33])
128 /* "expect": "" */
129 #define GRPC_MDELEM_EXPECT_EMPTY (::grpc_core::g_static_mdelem_manifested[34])
130 /* "expires": "" */
131 #define GRPC_MDELEM_EXPIRES_EMPTY (::grpc_core::g_static_mdelem_manifested[35])
132 /* "from": "" */
133 #define GRPC_MDELEM_FROM_EMPTY (::grpc_core::g_static_mdelem_manifested[36])
134 /* "host": "" */
135 #define GRPC_MDELEM_HOST_EMPTY (::grpc_core::g_static_mdelem_manifested[37])
136 /* "if-match": "" */
137 #define GRPC_MDELEM_IF_MATCH_EMPTY (::grpc_core::g_static_mdelem_manifested[38])
138 /* "if-modified-since": "" */
139 #define GRPC_MDELEM_IF_MODIFIED_SINCE_EMPTY \
140   (::grpc_core::g_static_mdelem_manifested[39])
141 /* "if-none-match": "" */
142 #define GRPC_MDELEM_IF_NONE_MATCH_EMPTY \
143   (::grpc_core::g_static_mdelem_manifested[40])
144 /* "if-range": "" */
145 #define GRPC_MDELEM_IF_RANGE_EMPTY (::grpc_core::g_static_mdelem_manifested[41])
146 /* "if-unmodified-since": "" */
147 #define GRPC_MDELEM_IF_UNMODIFIED_SINCE_EMPTY \
148   (::grpc_core::g_static_mdelem_manifested[42])
149 /* "last-modified": "" */
150 #define GRPC_MDELEM_LAST_MODIFIED_EMPTY \
151   (::grpc_core::g_static_mdelem_manifested[43])
152 /* "link": "" */
153 #define GRPC_MDELEM_LINK_EMPTY (::grpc_core::g_static_mdelem_manifested[44])
154 /* "location": "" */
155 #define GRPC_MDELEM_LOCATION_EMPTY (::grpc_core::g_static_mdelem_manifested[45])
156 /* "max-forwards": "" */
157 #define GRPC_MDELEM_MAX_FORWARDS_EMPTY \
158   (::grpc_core::g_static_mdelem_manifested[46])
159 /* "proxy-authenticate": "" */
160 #define GRPC_MDELEM_PROXY_AUTHENTICATE_EMPTY \
161   (::grpc_core::g_static_mdelem_manifested[47])
162 /* "proxy-authorization": "" */
163 #define GRPC_MDELEM_PROXY_AUTHORIZATION_EMPTY \
164   (::grpc_core::g_static_mdelem_manifested[48])
165 /* "range": "" */
166 #define GRPC_MDELEM_RANGE_EMPTY (::grpc_core::g_static_mdelem_manifested[49])
167 /* "referer": "" */
168 #define GRPC_MDELEM_REFERER_EMPTY (::grpc_core::g_static_mdelem_manifested[50])
169 /* "refresh": "" */
170 #define GRPC_MDELEM_REFRESH_EMPTY (::grpc_core::g_static_mdelem_manifested[51])
171 /* "retry-after": "" */
172 #define GRPC_MDELEM_RETRY_AFTER_EMPTY \
173   (::grpc_core::g_static_mdelem_manifested[52])
174 /* "server": "" */
175 #define GRPC_MDELEM_SERVER_EMPTY (::grpc_core::g_static_mdelem_manifested[53])
176 /* "set-cookie": "" */
177 #define GRPC_MDELEM_SET_COOKIE_EMPTY \
178   (::grpc_core::g_static_mdelem_manifested[54])
179 /* "strict-transport-security": "" */
180 #define GRPC_MDELEM_STRICT_TRANSPORT_SECURITY_EMPTY \
181   (::grpc_core::g_static_mdelem_manifested[55])
182 /* "transfer-encoding": "" */
183 #define GRPC_MDELEM_TRANSFER_ENCODING_EMPTY \
184   (::grpc_core::g_static_mdelem_manifested[56])
185 /* "user-agent": "" */
186 #define GRPC_MDELEM_USER_AGENT_EMPTY \
187   (::grpc_core::g_static_mdelem_manifested[57])
188 /* "vary": "" */
189 #define GRPC_MDELEM_VARY_EMPTY (::grpc_core::g_static_mdelem_manifested[58])
190 /* "via": "" */
191 #define GRPC_MDELEM_VIA_EMPTY (::grpc_core::g_static_mdelem_manifested[59])
192 /* "www-authenticate": "" */
193 #define GRPC_MDELEM_WWW_AUTHENTICATE_EMPTY \
194   (::grpc_core::g_static_mdelem_manifested[60])
195 /* "grpc-status": "0" */
196 #define GRPC_MDELEM_GRPC_STATUS_0 (::grpc_core::g_static_mdelem_manifested[61])
197 /* "grpc-status": "1" */
198 #define GRPC_MDELEM_GRPC_STATUS_1 (::grpc_core::g_static_mdelem_manifested[62])
199 /* "grpc-status": "2" */
200 #define GRPC_MDELEM_GRPC_STATUS_2 (::grpc_core::g_static_mdelem_manifested[63])
201 /* "grpc-encoding": "identity" */
202 #define GRPC_MDELEM_GRPC_ENCODING_IDENTITY \
203   (::grpc_core::g_static_mdelem_manifested[64])
204 /* "grpc-encoding": "gzip" */
205 #define GRPC_MDELEM_GRPC_ENCODING_GZIP \
206   (::grpc_core::g_static_mdelem_manifested[65])
207 /* "grpc-encoding": "deflate" */
208 #define GRPC_MDELEM_GRPC_ENCODING_DEFLATE \
209   (::grpc_core::g_static_mdelem_manifested[66])
210 /* "content-type": "application/grpc" */
211 #define GRPC_MDELEM_CONTENT_TYPE_APPLICATION_SLASH_GRPC \
212   (::grpc_core::g_static_mdelem_manifested[67])
213 /* ":scheme": "grpc" */
214 #define GRPC_MDELEM_SCHEME_GRPC (::grpc_core::g_static_mdelem_manifested[68])
215 /* ":method": "PUT" */
216 #define GRPC_MDELEM_METHOD_PUT (::grpc_core::g_static_mdelem_manifested[69])
217 /* "accept-encoding": "" */
218 #define GRPC_MDELEM_ACCEPT_ENCODING_EMPTY \
219   (::grpc_core::g_static_mdelem_manifested[70])
220 /* "content-encoding": "identity" */
221 #define GRPC_MDELEM_CONTENT_ENCODING_IDENTITY \
222   (::grpc_core::g_static_mdelem_manifested[71])
223 /* "content-encoding": "gzip" */
224 #define GRPC_MDELEM_CONTENT_ENCODING_GZIP \
225   (::grpc_core::g_static_mdelem_manifested[72])
226 /* "lb-cost-bin": "" */
227 #define GRPC_MDELEM_LB_COST_BIN_EMPTY \
228   (::grpc_core::g_static_mdelem_manifested[73])
229 /* "grpc-accept-encoding": "identity" */
230 #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_IDENTITY \
231   (::grpc_core::g_static_mdelem_manifested[74])
232 /* "grpc-accept-encoding": "deflate" */
233 #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_DEFLATE \
234   (::grpc_core::g_static_mdelem_manifested[75])
235 /* "grpc-accept-encoding": "identity,deflate" */
236 #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_IDENTITY_COMMA_DEFLATE \
237   (::grpc_core::g_static_mdelem_manifested[76])
238 /* "grpc-accept-encoding": "gzip" */
239 #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_GZIP \
240   (::grpc_core::g_static_mdelem_manifested[77])
241 /* "grpc-accept-encoding": "identity,gzip" */
242 #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_IDENTITY_COMMA_GZIP \
243   (::grpc_core::g_static_mdelem_manifested[78])
244 /* "grpc-accept-encoding": "deflate,gzip" */
245 #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_DEFLATE_COMMA_GZIP \
246   (::grpc_core::g_static_mdelem_manifested[79])
247 /* "grpc-accept-encoding": "identity,deflate,gzip" */
248 #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_IDENTITY_COMMA_DEFLATE_COMMA_GZIP \
249   (::grpc_core::g_static_mdelem_manifested[80])
250 /* "accept-encoding": "identity" */
251 #define GRPC_MDELEM_ACCEPT_ENCODING_IDENTITY \
252   (::grpc_core::g_static_mdelem_manifested[81])
253 /* "accept-encoding": "gzip" */
254 #define GRPC_MDELEM_ACCEPT_ENCODING_GZIP \
255   (::grpc_core::g_static_mdelem_manifested[82])
256 /* "accept-encoding": "identity,gzip" */
257 #define GRPC_MDELEM_ACCEPT_ENCODING_IDENTITY_COMMA_GZIP \
258   (::grpc_core::g_static_mdelem_manifested[83])
259 
260 grpc_mdelem grpc_static_mdelem_for_static_strings(intptr_t a, intptr_t b);
261 typedef enum {
262   GRPC_BATCH_PATH,
263   GRPC_BATCH_METHOD,
264   GRPC_BATCH_STATUS,
265   GRPC_BATCH_AUTHORITY,
266   GRPC_BATCH_SCHEME,
267   GRPC_BATCH_GRPC_MESSAGE,
268   GRPC_BATCH_GRPC_STATUS,
269   GRPC_BATCH_GRPC_PAYLOAD_BIN,
270   GRPC_BATCH_GRPC_ENCODING,
271   GRPC_BATCH_GRPC_ACCEPT_ENCODING,
272   GRPC_BATCH_GRPC_SERVER_STATS_BIN,
273   GRPC_BATCH_GRPC_TAGS_BIN,
274   GRPC_BATCH_GRPC_TRACE_BIN,
275   GRPC_BATCH_CONTENT_TYPE,
276   GRPC_BATCH_CONTENT_ENCODING,
277   GRPC_BATCH_ACCEPT_ENCODING,
278   GRPC_BATCH_GRPC_INTERNAL_ENCODING_REQUEST,
279   GRPC_BATCH_GRPC_INTERNAL_STREAM_ENCODING_REQUEST,
280   GRPC_BATCH_USER_AGENT,
281   GRPC_BATCH_HOST,
282   GRPC_BATCH_GRPC_PREVIOUS_RPC_ATTEMPTS,
283   GRPC_BATCH_GRPC_RETRY_PUSHBACK_MS,
284   GRPC_BATCH_X_ENDPOINT_LOAD_METRICS_BIN,
285   GRPC_BATCH_CALLOUTS_COUNT
286 } grpc_metadata_batch_callouts_index;
287 
288 typedef union {
289   struct grpc_linked_mdelem* array[GRPC_BATCH_CALLOUTS_COUNT];
290   struct {
291     struct grpc_linked_mdelem* path;
292     struct grpc_linked_mdelem* method;
293     struct grpc_linked_mdelem* status;
294     struct grpc_linked_mdelem* authority;
295     struct grpc_linked_mdelem* scheme;
296     struct grpc_linked_mdelem* grpc_message;
297     struct grpc_linked_mdelem* grpc_status;
298     struct grpc_linked_mdelem* grpc_payload_bin;
299     struct grpc_linked_mdelem* grpc_encoding;
300     struct grpc_linked_mdelem* grpc_accept_encoding;
301     struct grpc_linked_mdelem* grpc_server_stats_bin;
302     struct grpc_linked_mdelem* grpc_tags_bin;
303     struct grpc_linked_mdelem* grpc_trace_bin;
304     struct grpc_linked_mdelem* content_type;
305     struct grpc_linked_mdelem* content_encoding;
306     struct grpc_linked_mdelem* accept_encoding;
307     struct grpc_linked_mdelem* grpc_internal_encoding_request;
308     struct grpc_linked_mdelem* grpc_internal_stream_encoding_request;
309     struct grpc_linked_mdelem* user_agent;
310     struct grpc_linked_mdelem* host;
311     struct grpc_linked_mdelem* grpc_previous_rpc_attempts;
312     struct grpc_linked_mdelem* grpc_retry_pushback_ms;
313     struct grpc_linked_mdelem* x_endpoint_load_metrics_bin;
314   } named;
315 } grpc_metadata_batch_callouts;
316 
317 #define GRPC_BATCH_INDEX_OF(slice)                                             \
318   (GRPC_IS_STATIC_METADATA_STRING((slice)) &&                                  \
319            reinterpret_cast<grpc_core::StaticSliceRefcount*>((slice).refcount) \
320                    ->index <= static_cast<uint32_t>(GRPC_BATCH_CALLOUTS_COUNT) \
321        ? static_cast<grpc_metadata_batch_callouts_index>(                      \
322              reinterpret_cast<grpc_core::StaticSliceRefcount*>(                \
323                  (slice).refcount)                                             \
324                  ->index)                                                      \
325        : GRPC_BATCH_CALLOUTS_COUNT)
326 
327 extern const uint8_t grpc_static_accept_encoding_metadata[8];
328 #define GRPC_MDELEM_ACCEPT_ENCODING_FOR_ALGORITHMS(algs)                \
329   (GRPC_MAKE_MDELEM(&grpc_core::g_static_mdelem_table                   \
330                          [grpc_static_accept_encoding_metadata[(algs)]] \
331                              .data(),                                   \
332                     GRPC_MDELEM_STORAGE_STATIC))
333 
334 extern const uint8_t grpc_static_accept_stream_encoding_metadata[4];
335 #define GRPC_MDELEM_ACCEPT_STREAM_ENCODING_FOR_ALGORITHMS(algs)                \
336   (GRPC_MAKE_MDELEM(&grpc_core::g_static_mdelem_table                          \
337                          [grpc_static_accept_stream_encoding_metadata[(algs)]] \
338                              .data(),                                          \
339                     GRPC_MDELEM_STORAGE_STATIC))
340 #endif /* GRPC_CORE_LIB_TRANSPORT_STATIC_METADATA_H */
341