Imported Upstream version 1.21.0
[platform/upstream/grpc.git] / src / core / lib / transport / static_metadata.h
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 "src/core/lib/transport/metadata.h"
33
34 #define GRPC_STATIC_MDSTR_COUNT 107
35 extern const grpc_slice grpc_static_slice_table[GRPC_STATIC_MDSTR_COUNT];
36 /* ":path" */
37 #define GRPC_MDSTR_PATH (grpc_static_slice_table[0])
38 /* ":method" */
39 #define GRPC_MDSTR_METHOD (grpc_static_slice_table[1])
40 /* ":status" */
41 #define GRPC_MDSTR_STATUS (grpc_static_slice_table[2])
42 /* ":authority" */
43 #define GRPC_MDSTR_AUTHORITY (grpc_static_slice_table[3])
44 /* ":scheme" */
45 #define GRPC_MDSTR_SCHEME (grpc_static_slice_table[4])
46 /* "te" */
47 #define GRPC_MDSTR_TE (grpc_static_slice_table[5])
48 /* "grpc-message" */
49 #define GRPC_MDSTR_GRPC_MESSAGE (grpc_static_slice_table[6])
50 /* "grpc-status" */
51 #define GRPC_MDSTR_GRPC_STATUS (grpc_static_slice_table[7])
52 /* "grpc-payload-bin" */
53 #define GRPC_MDSTR_GRPC_PAYLOAD_BIN (grpc_static_slice_table[8])
54 /* "grpc-encoding" */
55 #define GRPC_MDSTR_GRPC_ENCODING (grpc_static_slice_table[9])
56 /* "grpc-accept-encoding" */
57 #define GRPC_MDSTR_GRPC_ACCEPT_ENCODING (grpc_static_slice_table[10])
58 /* "grpc-server-stats-bin" */
59 #define GRPC_MDSTR_GRPC_SERVER_STATS_BIN (grpc_static_slice_table[11])
60 /* "grpc-tags-bin" */
61 #define GRPC_MDSTR_GRPC_TAGS_BIN (grpc_static_slice_table[12])
62 /* "grpc-trace-bin" */
63 #define GRPC_MDSTR_GRPC_TRACE_BIN (grpc_static_slice_table[13])
64 /* "content-type" */
65 #define GRPC_MDSTR_CONTENT_TYPE (grpc_static_slice_table[14])
66 /* "content-encoding" */
67 #define GRPC_MDSTR_CONTENT_ENCODING (grpc_static_slice_table[15])
68 /* "accept-encoding" */
69 #define GRPC_MDSTR_ACCEPT_ENCODING (grpc_static_slice_table[16])
70 /* "grpc-internal-encoding-request" */
71 #define GRPC_MDSTR_GRPC_INTERNAL_ENCODING_REQUEST (grpc_static_slice_table[17])
72 /* "grpc-internal-stream-encoding-request" */
73 #define GRPC_MDSTR_GRPC_INTERNAL_STREAM_ENCODING_REQUEST \
74   (grpc_static_slice_table[18])
75 /* "user-agent" */
76 #define GRPC_MDSTR_USER_AGENT (grpc_static_slice_table[19])
77 /* "host" */
78 #define GRPC_MDSTR_HOST (grpc_static_slice_table[20])
79 /* "lb-token" */
80 #define GRPC_MDSTR_LB_TOKEN (grpc_static_slice_table[21])
81 /* "grpc-previous-rpc-attempts" */
82 #define GRPC_MDSTR_GRPC_PREVIOUS_RPC_ATTEMPTS (grpc_static_slice_table[22])
83 /* "grpc-retry-pushback-ms" */
84 #define GRPC_MDSTR_GRPC_RETRY_PUSHBACK_MS (grpc_static_slice_table[23])
85 /* "grpc-timeout" */
86 #define GRPC_MDSTR_GRPC_TIMEOUT (grpc_static_slice_table[24])
87 /* "1" */
88 #define GRPC_MDSTR_1 (grpc_static_slice_table[25])
89 /* "2" */
90 #define GRPC_MDSTR_2 (grpc_static_slice_table[26])
91 /* "3" */
92 #define GRPC_MDSTR_3 (grpc_static_slice_table[27])
93 /* "4" */
94 #define GRPC_MDSTR_4 (grpc_static_slice_table[28])
95 /* "" */
96 #define GRPC_MDSTR_EMPTY (grpc_static_slice_table[29])
97 /* "grpc.wait_for_ready" */
98 #define GRPC_MDSTR_GRPC_DOT_WAIT_FOR_READY (grpc_static_slice_table[30])
99 /* "grpc.timeout" */
100 #define GRPC_MDSTR_GRPC_DOT_TIMEOUT (grpc_static_slice_table[31])
101 /* "grpc.max_request_message_bytes" */
102 #define GRPC_MDSTR_GRPC_DOT_MAX_REQUEST_MESSAGE_BYTES \
103   (grpc_static_slice_table[32])
104 /* "grpc.max_response_message_bytes" */
105 #define GRPC_MDSTR_GRPC_DOT_MAX_RESPONSE_MESSAGE_BYTES \
106   (grpc_static_slice_table[33])
107 /* "/grpc.lb.v1.LoadBalancer/BalanceLoad" */
108 #define GRPC_MDSTR_SLASH_GRPC_DOT_LB_DOT_V1_DOT_LOADBALANCER_SLASH_BALANCELOAD \
109   (grpc_static_slice_table[34])
110 /* "/grpc.health.v1.Health/Watch" */
111 #define GRPC_MDSTR_SLASH_GRPC_DOT_HEALTH_DOT_V1_DOT_HEALTH_SLASH_WATCH \
112   (grpc_static_slice_table[35])
113 /* "/envoy.service.discovery.v2.AggregatedDiscoveryService/StreamAggregatedResources"
114  */
115 #define GRPC_MDSTR_SLASH_ENVOY_DOT_SERVICE_DOT_DISCOVERY_DOT_V2_DOT_AGGREGATEDDISCOVERYSERVICE_SLASH_STREAMAGGREGATEDRESOURCES \
116   (grpc_static_slice_table[36])
117 /* "deflate" */
118 #define GRPC_MDSTR_DEFLATE (grpc_static_slice_table[37])
119 /* "gzip" */
120 #define GRPC_MDSTR_GZIP (grpc_static_slice_table[38])
121 /* "stream/gzip" */
122 #define GRPC_MDSTR_STREAM_SLASH_GZIP (grpc_static_slice_table[39])
123 /* "GET" */
124 #define GRPC_MDSTR_GET (grpc_static_slice_table[40])
125 /* "POST" */
126 #define GRPC_MDSTR_POST (grpc_static_slice_table[41])
127 /* "/" */
128 #define GRPC_MDSTR_SLASH (grpc_static_slice_table[42])
129 /* "/index.html" */
130 #define GRPC_MDSTR_SLASH_INDEX_DOT_HTML (grpc_static_slice_table[43])
131 /* "http" */
132 #define GRPC_MDSTR_HTTP (grpc_static_slice_table[44])
133 /* "https" */
134 #define GRPC_MDSTR_HTTPS (grpc_static_slice_table[45])
135 /* "200" */
136 #define GRPC_MDSTR_200 (grpc_static_slice_table[46])
137 /* "204" */
138 #define GRPC_MDSTR_204 (grpc_static_slice_table[47])
139 /* "206" */
140 #define GRPC_MDSTR_206 (grpc_static_slice_table[48])
141 /* "304" */
142 #define GRPC_MDSTR_304 (grpc_static_slice_table[49])
143 /* "400" */
144 #define GRPC_MDSTR_400 (grpc_static_slice_table[50])
145 /* "404" */
146 #define GRPC_MDSTR_404 (grpc_static_slice_table[51])
147 /* "500" */
148 #define GRPC_MDSTR_500 (grpc_static_slice_table[52])
149 /* "accept-charset" */
150 #define GRPC_MDSTR_ACCEPT_CHARSET (grpc_static_slice_table[53])
151 /* "gzip, deflate" */
152 #define GRPC_MDSTR_GZIP_COMMA_DEFLATE (grpc_static_slice_table[54])
153 /* "accept-language" */
154 #define GRPC_MDSTR_ACCEPT_LANGUAGE (grpc_static_slice_table[55])
155 /* "accept-ranges" */
156 #define GRPC_MDSTR_ACCEPT_RANGES (grpc_static_slice_table[56])
157 /* "accept" */
158 #define GRPC_MDSTR_ACCEPT (grpc_static_slice_table[57])
159 /* "access-control-allow-origin" */
160 #define GRPC_MDSTR_ACCESS_CONTROL_ALLOW_ORIGIN (grpc_static_slice_table[58])
161 /* "age" */
162 #define GRPC_MDSTR_AGE (grpc_static_slice_table[59])
163 /* "allow" */
164 #define GRPC_MDSTR_ALLOW (grpc_static_slice_table[60])
165 /* "authorization" */
166 #define GRPC_MDSTR_AUTHORIZATION (grpc_static_slice_table[61])
167 /* "cache-control" */
168 #define GRPC_MDSTR_CACHE_CONTROL (grpc_static_slice_table[62])
169 /* "content-disposition" */
170 #define GRPC_MDSTR_CONTENT_DISPOSITION (grpc_static_slice_table[63])
171 /* "content-language" */
172 #define GRPC_MDSTR_CONTENT_LANGUAGE (grpc_static_slice_table[64])
173 /* "content-length" */
174 #define GRPC_MDSTR_CONTENT_LENGTH (grpc_static_slice_table[65])
175 /* "content-location" */
176 #define GRPC_MDSTR_CONTENT_LOCATION (grpc_static_slice_table[66])
177 /* "content-range" */
178 #define GRPC_MDSTR_CONTENT_RANGE (grpc_static_slice_table[67])
179 /* "cookie" */
180 #define GRPC_MDSTR_COOKIE (grpc_static_slice_table[68])
181 /* "date" */
182 #define GRPC_MDSTR_DATE (grpc_static_slice_table[69])
183 /* "etag" */
184 #define GRPC_MDSTR_ETAG (grpc_static_slice_table[70])
185 /* "expect" */
186 #define GRPC_MDSTR_EXPECT (grpc_static_slice_table[71])
187 /* "expires" */
188 #define GRPC_MDSTR_EXPIRES (grpc_static_slice_table[72])
189 /* "from" */
190 #define GRPC_MDSTR_FROM (grpc_static_slice_table[73])
191 /* "if-match" */
192 #define GRPC_MDSTR_IF_MATCH (grpc_static_slice_table[74])
193 /* "if-modified-since" */
194 #define GRPC_MDSTR_IF_MODIFIED_SINCE (grpc_static_slice_table[75])
195 /* "if-none-match" */
196 #define GRPC_MDSTR_IF_NONE_MATCH (grpc_static_slice_table[76])
197 /* "if-range" */
198 #define GRPC_MDSTR_IF_RANGE (grpc_static_slice_table[77])
199 /* "if-unmodified-since" */
200 #define GRPC_MDSTR_IF_UNMODIFIED_SINCE (grpc_static_slice_table[78])
201 /* "last-modified" */
202 #define GRPC_MDSTR_LAST_MODIFIED (grpc_static_slice_table[79])
203 /* "link" */
204 #define GRPC_MDSTR_LINK (grpc_static_slice_table[80])
205 /* "location" */
206 #define GRPC_MDSTR_LOCATION (grpc_static_slice_table[81])
207 /* "max-forwards" */
208 #define GRPC_MDSTR_MAX_FORWARDS (grpc_static_slice_table[82])
209 /* "proxy-authenticate" */
210 #define GRPC_MDSTR_PROXY_AUTHENTICATE (grpc_static_slice_table[83])
211 /* "proxy-authorization" */
212 #define GRPC_MDSTR_PROXY_AUTHORIZATION (grpc_static_slice_table[84])
213 /* "range" */
214 #define GRPC_MDSTR_RANGE (grpc_static_slice_table[85])
215 /* "referer" */
216 #define GRPC_MDSTR_REFERER (grpc_static_slice_table[86])
217 /* "refresh" */
218 #define GRPC_MDSTR_REFRESH (grpc_static_slice_table[87])
219 /* "retry-after" */
220 #define GRPC_MDSTR_RETRY_AFTER (grpc_static_slice_table[88])
221 /* "server" */
222 #define GRPC_MDSTR_SERVER (grpc_static_slice_table[89])
223 /* "set-cookie" */
224 #define GRPC_MDSTR_SET_COOKIE (grpc_static_slice_table[90])
225 /* "strict-transport-security" */
226 #define GRPC_MDSTR_STRICT_TRANSPORT_SECURITY (grpc_static_slice_table[91])
227 /* "transfer-encoding" */
228 #define GRPC_MDSTR_TRANSFER_ENCODING (grpc_static_slice_table[92])
229 /* "vary" */
230 #define GRPC_MDSTR_VARY (grpc_static_slice_table[93])
231 /* "via" */
232 #define GRPC_MDSTR_VIA (grpc_static_slice_table[94])
233 /* "www-authenticate" */
234 #define GRPC_MDSTR_WWW_AUTHENTICATE (grpc_static_slice_table[95])
235 /* "0" */
236 #define GRPC_MDSTR_0 (grpc_static_slice_table[96])
237 /* "identity" */
238 #define GRPC_MDSTR_IDENTITY (grpc_static_slice_table[97])
239 /* "trailers" */
240 #define GRPC_MDSTR_TRAILERS (grpc_static_slice_table[98])
241 /* "application/grpc" */
242 #define GRPC_MDSTR_APPLICATION_SLASH_GRPC (grpc_static_slice_table[99])
243 /* "grpc" */
244 #define GRPC_MDSTR_GRPC (grpc_static_slice_table[100])
245 /* "PUT" */
246 #define GRPC_MDSTR_PUT (grpc_static_slice_table[101])
247 /* "lb-cost-bin" */
248 #define GRPC_MDSTR_LB_COST_BIN (grpc_static_slice_table[102])
249 /* "identity,deflate" */
250 #define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE (grpc_static_slice_table[103])
251 /* "identity,gzip" */
252 #define GRPC_MDSTR_IDENTITY_COMMA_GZIP (grpc_static_slice_table[104])
253 /* "deflate,gzip" */
254 #define GRPC_MDSTR_DEFLATE_COMMA_GZIP (grpc_static_slice_table[105])
255 /* "identity,deflate,gzip" */
256 #define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE_COMMA_GZIP \
257   (grpc_static_slice_table[106])
258
259 extern grpc_slice_refcount
260     grpc_static_metadata_refcounts[GRPC_STATIC_MDSTR_COUNT];
261 #define GRPC_IS_STATIC_METADATA_STRING(slice) \
262   ((slice).refcount != NULL &&                \
263    (slice).refcount->GetType() == grpc_slice_refcount::Type::STATIC)
264
265 #define GRPC_STATIC_METADATA_INDEX(static_slice) \
266   ((int)((static_slice).refcount - grpc_static_metadata_refcounts))
267
268 #define GRPC_STATIC_MDELEM_COUNT 86
269 extern grpc_mdelem_data grpc_static_mdelem_table[GRPC_STATIC_MDELEM_COUNT];
270 extern uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT];
271 /* ":authority": "" */
272 #define GRPC_MDELEM_AUTHORITY_EMPTY \
273   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[0], GRPC_MDELEM_STORAGE_STATIC))
274 /* ":method": "GET" */
275 #define GRPC_MDELEM_METHOD_GET \
276   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[1], GRPC_MDELEM_STORAGE_STATIC))
277 /* ":method": "POST" */
278 #define GRPC_MDELEM_METHOD_POST \
279   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[2], GRPC_MDELEM_STORAGE_STATIC))
280 /* ":path": "/" */
281 #define GRPC_MDELEM_PATH_SLASH \
282   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[3], GRPC_MDELEM_STORAGE_STATIC))
283 /* ":path": "/index.html" */
284 #define GRPC_MDELEM_PATH_SLASH_INDEX_DOT_HTML \
285   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[4], GRPC_MDELEM_STORAGE_STATIC))
286 /* ":scheme": "http" */
287 #define GRPC_MDELEM_SCHEME_HTTP \
288   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[5], GRPC_MDELEM_STORAGE_STATIC))
289 /* ":scheme": "https" */
290 #define GRPC_MDELEM_SCHEME_HTTPS \
291   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[6], GRPC_MDELEM_STORAGE_STATIC))
292 /* ":status": "200" */
293 #define GRPC_MDELEM_STATUS_200 \
294   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[7], GRPC_MDELEM_STORAGE_STATIC))
295 /* ":status": "204" */
296 #define GRPC_MDELEM_STATUS_204 \
297   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[8], GRPC_MDELEM_STORAGE_STATIC))
298 /* ":status": "206" */
299 #define GRPC_MDELEM_STATUS_206 \
300   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[9], GRPC_MDELEM_STORAGE_STATIC))
301 /* ":status": "304" */
302 #define GRPC_MDELEM_STATUS_304 \
303   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[10], GRPC_MDELEM_STORAGE_STATIC))
304 /* ":status": "400" */
305 #define GRPC_MDELEM_STATUS_400 \
306   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[11], GRPC_MDELEM_STORAGE_STATIC))
307 /* ":status": "404" */
308 #define GRPC_MDELEM_STATUS_404 \
309   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[12], GRPC_MDELEM_STORAGE_STATIC))
310 /* ":status": "500" */
311 #define GRPC_MDELEM_STATUS_500 \
312   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[13], GRPC_MDELEM_STORAGE_STATIC))
313 /* "accept-charset": "" */
314 #define GRPC_MDELEM_ACCEPT_CHARSET_EMPTY \
315   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[14], GRPC_MDELEM_STORAGE_STATIC))
316 /* "accept-encoding": "gzip, deflate" */
317 #define GRPC_MDELEM_ACCEPT_ENCODING_GZIP_COMMA_DEFLATE \
318   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[15], GRPC_MDELEM_STORAGE_STATIC))
319 /* "accept-language": "" */
320 #define GRPC_MDELEM_ACCEPT_LANGUAGE_EMPTY \
321   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[16], GRPC_MDELEM_STORAGE_STATIC))
322 /* "accept-ranges": "" */
323 #define GRPC_MDELEM_ACCEPT_RANGES_EMPTY \
324   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[17], GRPC_MDELEM_STORAGE_STATIC))
325 /* "accept": "" */
326 #define GRPC_MDELEM_ACCEPT_EMPTY \
327   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[18], GRPC_MDELEM_STORAGE_STATIC))
328 /* "access-control-allow-origin": "" */
329 #define GRPC_MDELEM_ACCESS_CONTROL_ALLOW_ORIGIN_EMPTY \
330   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[19], GRPC_MDELEM_STORAGE_STATIC))
331 /* "age": "" */
332 #define GRPC_MDELEM_AGE_EMPTY \
333   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[20], GRPC_MDELEM_STORAGE_STATIC))
334 /* "allow": "" */
335 #define GRPC_MDELEM_ALLOW_EMPTY \
336   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[21], GRPC_MDELEM_STORAGE_STATIC))
337 /* "authorization": "" */
338 #define GRPC_MDELEM_AUTHORIZATION_EMPTY \
339   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[22], GRPC_MDELEM_STORAGE_STATIC))
340 /* "cache-control": "" */
341 #define GRPC_MDELEM_CACHE_CONTROL_EMPTY \
342   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[23], GRPC_MDELEM_STORAGE_STATIC))
343 /* "content-disposition": "" */
344 #define GRPC_MDELEM_CONTENT_DISPOSITION_EMPTY \
345   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[24], GRPC_MDELEM_STORAGE_STATIC))
346 /* "content-encoding": "" */
347 #define GRPC_MDELEM_CONTENT_ENCODING_EMPTY \
348   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[25], GRPC_MDELEM_STORAGE_STATIC))
349 /* "content-language": "" */
350 #define GRPC_MDELEM_CONTENT_LANGUAGE_EMPTY \
351   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[26], GRPC_MDELEM_STORAGE_STATIC))
352 /* "content-length": "" */
353 #define GRPC_MDELEM_CONTENT_LENGTH_EMPTY \
354   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[27], GRPC_MDELEM_STORAGE_STATIC))
355 /* "content-location": "" */
356 #define GRPC_MDELEM_CONTENT_LOCATION_EMPTY \
357   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[28], GRPC_MDELEM_STORAGE_STATIC))
358 /* "content-range": "" */
359 #define GRPC_MDELEM_CONTENT_RANGE_EMPTY \
360   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[29], GRPC_MDELEM_STORAGE_STATIC))
361 /* "content-type": "" */
362 #define GRPC_MDELEM_CONTENT_TYPE_EMPTY \
363   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[30], GRPC_MDELEM_STORAGE_STATIC))
364 /* "cookie": "" */
365 #define GRPC_MDELEM_COOKIE_EMPTY \
366   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[31], GRPC_MDELEM_STORAGE_STATIC))
367 /* "date": "" */
368 #define GRPC_MDELEM_DATE_EMPTY \
369   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[32], GRPC_MDELEM_STORAGE_STATIC))
370 /* "etag": "" */
371 #define GRPC_MDELEM_ETAG_EMPTY \
372   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[33], GRPC_MDELEM_STORAGE_STATIC))
373 /* "expect": "" */
374 #define GRPC_MDELEM_EXPECT_EMPTY \
375   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[34], GRPC_MDELEM_STORAGE_STATIC))
376 /* "expires": "" */
377 #define GRPC_MDELEM_EXPIRES_EMPTY \
378   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[35], GRPC_MDELEM_STORAGE_STATIC))
379 /* "from": "" */
380 #define GRPC_MDELEM_FROM_EMPTY \
381   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[36], GRPC_MDELEM_STORAGE_STATIC))
382 /* "host": "" */
383 #define GRPC_MDELEM_HOST_EMPTY \
384   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[37], GRPC_MDELEM_STORAGE_STATIC))
385 /* "if-match": "" */
386 #define GRPC_MDELEM_IF_MATCH_EMPTY \
387   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[38], GRPC_MDELEM_STORAGE_STATIC))
388 /* "if-modified-since": "" */
389 #define GRPC_MDELEM_IF_MODIFIED_SINCE_EMPTY \
390   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[39], GRPC_MDELEM_STORAGE_STATIC))
391 /* "if-none-match": "" */
392 #define GRPC_MDELEM_IF_NONE_MATCH_EMPTY \
393   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[40], GRPC_MDELEM_STORAGE_STATIC))
394 /* "if-range": "" */
395 #define GRPC_MDELEM_IF_RANGE_EMPTY \
396   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[41], GRPC_MDELEM_STORAGE_STATIC))
397 /* "if-unmodified-since": "" */
398 #define GRPC_MDELEM_IF_UNMODIFIED_SINCE_EMPTY \
399   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[42], GRPC_MDELEM_STORAGE_STATIC))
400 /* "last-modified": "" */
401 #define GRPC_MDELEM_LAST_MODIFIED_EMPTY \
402   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[43], GRPC_MDELEM_STORAGE_STATIC))
403 /* "link": "" */
404 #define GRPC_MDELEM_LINK_EMPTY \
405   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[44], GRPC_MDELEM_STORAGE_STATIC))
406 /* "location": "" */
407 #define GRPC_MDELEM_LOCATION_EMPTY \
408   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[45], GRPC_MDELEM_STORAGE_STATIC))
409 /* "max-forwards": "" */
410 #define GRPC_MDELEM_MAX_FORWARDS_EMPTY \
411   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[46], GRPC_MDELEM_STORAGE_STATIC))
412 /* "proxy-authenticate": "" */
413 #define GRPC_MDELEM_PROXY_AUTHENTICATE_EMPTY \
414   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[47], GRPC_MDELEM_STORAGE_STATIC))
415 /* "proxy-authorization": "" */
416 #define GRPC_MDELEM_PROXY_AUTHORIZATION_EMPTY \
417   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[48], GRPC_MDELEM_STORAGE_STATIC))
418 /* "range": "" */
419 #define GRPC_MDELEM_RANGE_EMPTY \
420   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[49], GRPC_MDELEM_STORAGE_STATIC))
421 /* "referer": "" */
422 #define GRPC_MDELEM_REFERER_EMPTY \
423   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[50], GRPC_MDELEM_STORAGE_STATIC))
424 /* "refresh": "" */
425 #define GRPC_MDELEM_REFRESH_EMPTY \
426   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[51], GRPC_MDELEM_STORAGE_STATIC))
427 /* "retry-after": "" */
428 #define GRPC_MDELEM_RETRY_AFTER_EMPTY \
429   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[52], GRPC_MDELEM_STORAGE_STATIC))
430 /* "server": "" */
431 #define GRPC_MDELEM_SERVER_EMPTY \
432   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[53], GRPC_MDELEM_STORAGE_STATIC))
433 /* "set-cookie": "" */
434 #define GRPC_MDELEM_SET_COOKIE_EMPTY \
435   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[54], GRPC_MDELEM_STORAGE_STATIC))
436 /* "strict-transport-security": "" */
437 #define GRPC_MDELEM_STRICT_TRANSPORT_SECURITY_EMPTY \
438   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[55], GRPC_MDELEM_STORAGE_STATIC))
439 /* "transfer-encoding": "" */
440 #define GRPC_MDELEM_TRANSFER_ENCODING_EMPTY \
441   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[56], GRPC_MDELEM_STORAGE_STATIC))
442 /* "user-agent": "" */
443 #define GRPC_MDELEM_USER_AGENT_EMPTY \
444   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[57], GRPC_MDELEM_STORAGE_STATIC))
445 /* "vary": "" */
446 #define GRPC_MDELEM_VARY_EMPTY \
447   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[58], GRPC_MDELEM_STORAGE_STATIC))
448 /* "via": "" */
449 #define GRPC_MDELEM_VIA_EMPTY \
450   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[59], GRPC_MDELEM_STORAGE_STATIC))
451 /* "www-authenticate": "" */
452 #define GRPC_MDELEM_WWW_AUTHENTICATE_EMPTY \
453   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[60], GRPC_MDELEM_STORAGE_STATIC))
454 /* "grpc-status": "0" */
455 #define GRPC_MDELEM_GRPC_STATUS_0 \
456   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[61], GRPC_MDELEM_STORAGE_STATIC))
457 /* "grpc-status": "1" */
458 #define GRPC_MDELEM_GRPC_STATUS_1 \
459   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[62], GRPC_MDELEM_STORAGE_STATIC))
460 /* "grpc-status": "2" */
461 #define GRPC_MDELEM_GRPC_STATUS_2 \
462   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[63], GRPC_MDELEM_STORAGE_STATIC))
463 /* "grpc-encoding": "identity" */
464 #define GRPC_MDELEM_GRPC_ENCODING_IDENTITY \
465   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[64], GRPC_MDELEM_STORAGE_STATIC))
466 /* "grpc-encoding": "gzip" */
467 #define GRPC_MDELEM_GRPC_ENCODING_GZIP \
468   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[65], GRPC_MDELEM_STORAGE_STATIC))
469 /* "grpc-encoding": "deflate" */
470 #define GRPC_MDELEM_GRPC_ENCODING_DEFLATE \
471   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[66], GRPC_MDELEM_STORAGE_STATIC))
472 /* "te": "trailers" */
473 #define GRPC_MDELEM_TE_TRAILERS \
474   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[67], GRPC_MDELEM_STORAGE_STATIC))
475 /* "content-type": "application/grpc" */
476 #define GRPC_MDELEM_CONTENT_TYPE_APPLICATION_SLASH_GRPC \
477   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[68], GRPC_MDELEM_STORAGE_STATIC))
478 /* ":scheme": "grpc" */
479 #define GRPC_MDELEM_SCHEME_GRPC \
480   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[69], GRPC_MDELEM_STORAGE_STATIC))
481 /* ":method": "PUT" */
482 #define GRPC_MDELEM_METHOD_PUT \
483   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[70], GRPC_MDELEM_STORAGE_STATIC))
484 /* "accept-encoding": "" */
485 #define GRPC_MDELEM_ACCEPT_ENCODING_EMPTY \
486   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[71], GRPC_MDELEM_STORAGE_STATIC))
487 /* "content-encoding": "identity" */
488 #define GRPC_MDELEM_CONTENT_ENCODING_IDENTITY \
489   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[72], GRPC_MDELEM_STORAGE_STATIC))
490 /* "content-encoding": "gzip" */
491 #define GRPC_MDELEM_CONTENT_ENCODING_GZIP \
492   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[73], GRPC_MDELEM_STORAGE_STATIC))
493 /* "lb-token": "" */
494 #define GRPC_MDELEM_LB_TOKEN_EMPTY \
495   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[74], GRPC_MDELEM_STORAGE_STATIC))
496 /* "lb-cost-bin": "" */
497 #define GRPC_MDELEM_LB_COST_BIN_EMPTY \
498   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[75], GRPC_MDELEM_STORAGE_STATIC))
499 /* "grpc-accept-encoding": "identity" */
500 #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_IDENTITY \
501   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[76], GRPC_MDELEM_STORAGE_STATIC))
502 /* "grpc-accept-encoding": "deflate" */
503 #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_DEFLATE \
504   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[77], GRPC_MDELEM_STORAGE_STATIC))
505 /* "grpc-accept-encoding": "identity,deflate" */
506 #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_IDENTITY_COMMA_DEFLATE \
507   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[78], GRPC_MDELEM_STORAGE_STATIC))
508 /* "grpc-accept-encoding": "gzip" */
509 #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_GZIP \
510   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[79], GRPC_MDELEM_STORAGE_STATIC))
511 /* "grpc-accept-encoding": "identity,gzip" */
512 #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_IDENTITY_COMMA_GZIP \
513   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[80], GRPC_MDELEM_STORAGE_STATIC))
514 /* "grpc-accept-encoding": "deflate,gzip" */
515 #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_DEFLATE_COMMA_GZIP \
516   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[81], GRPC_MDELEM_STORAGE_STATIC))
517 /* "grpc-accept-encoding": "identity,deflate,gzip" */
518 #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_IDENTITY_COMMA_DEFLATE_COMMA_GZIP \
519   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[82], GRPC_MDELEM_STORAGE_STATIC))
520 /* "accept-encoding": "identity" */
521 #define GRPC_MDELEM_ACCEPT_ENCODING_IDENTITY \
522   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[83], GRPC_MDELEM_STORAGE_STATIC))
523 /* "accept-encoding": "gzip" */
524 #define GRPC_MDELEM_ACCEPT_ENCODING_GZIP \
525   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[84], GRPC_MDELEM_STORAGE_STATIC))
526 /* "accept-encoding": "identity,gzip" */
527 #define GRPC_MDELEM_ACCEPT_ENCODING_IDENTITY_COMMA_GZIP \
528   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[85], GRPC_MDELEM_STORAGE_STATIC))
529
530 grpc_mdelem grpc_static_mdelem_for_static_strings(int a, int b);
531 typedef enum {
532   GRPC_BATCH_PATH,
533   GRPC_BATCH_METHOD,
534   GRPC_BATCH_STATUS,
535   GRPC_BATCH_AUTHORITY,
536   GRPC_BATCH_SCHEME,
537   GRPC_BATCH_TE,
538   GRPC_BATCH_GRPC_MESSAGE,
539   GRPC_BATCH_GRPC_STATUS,
540   GRPC_BATCH_GRPC_PAYLOAD_BIN,
541   GRPC_BATCH_GRPC_ENCODING,
542   GRPC_BATCH_GRPC_ACCEPT_ENCODING,
543   GRPC_BATCH_GRPC_SERVER_STATS_BIN,
544   GRPC_BATCH_GRPC_TAGS_BIN,
545   GRPC_BATCH_GRPC_TRACE_BIN,
546   GRPC_BATCH_CONTENT_TYPE,
547   GRPC_BATCH_CONTENT_ENCODING,
548   GRPC_BATCH_ACCEPT_ENCODING,
549   GRPC_BATCH_GRPC_INTERNAL_ENCODING_REQUEST,
550   GRPC_BATCH_GRPC_INTERNAL_STREAM_ENCODING_REQUEST,
551   GRPC_BATCH_USER_AGENT,
552   GRPC_BATCH_HOST,
553   GRPC_BATCH_LB_TOKEN,
554   GRPC_BATCH_GRPC_PREVIOUS_RPC_ATTEMPTS,
555   GRPC_BATCH_GRPC_RETRY_PUSHBACK_MS,
556   GRPC_BATCH_CALLOUTS_COUNT
557 } grpc_metadata_batch_callouts_index;
558
559 typedef union {
560   struct grpc_linked_mdelem* array[GRPC_BATCH_CALLOUTS_COUNT];
561   struct {
562     struct grpc_linked_mdelem* path;
563     struct grpc_linked_mdelem* method;
564     struct grpc_linked_mdelem* status;
565     struct grpc_linked_mdelem* authority;
566     struct grpc_linked_mdelem* scheme;
567     struct grpc_linked_mdelem* te;
568     struct grpc_linked_mdelem* grpc_message;
569     struct grpc_linked_mdelem* grpc_status;
570     struct grpc_linked_mdelem* grpc_payload_bin;
571     struct grpc_linked_mdelem* grpc_encoding;
572     struct grpc_linked_mdelem* grpc_accept_encoding;
573     struct grpc_linked_mdelem* grpc_server_stats_bin;
574     struct grpc_linked_mdelem* grpc_tags_bin;
575     struct grpc_linked_mdelem* grpc_trace_bin;
576     struct grpc_linked_mdelem* content_type;
577     struct grpc_linked_mdelem* content_encoding;
578     struct grpc_linked_mdelem* accept_encoding;
579     struct grpc_linked_mdelem* grpc_internal_encoding_request;
580     struct grpc_linked_mdelem* grpc_internal_stream_encoding_request;
581     struct grpc_linked_mdelem* user_agent;
582     struct grpc_linked_mdelem* host;
583     struct grpc_linked_mdelem* lb_token;
584     struct grpc_linked_mdelem* grpc_previous_rpc_attempts;
585     struct grpc_linked_mdelem* grpc_retry_pushback_ms;
586   } named;
587 } grpc_metadata_batch_callouts;
588
589 #define GRPC_BATCH_INDEX_OF(slice)                      \
590   (GRPC_IS_STATIC_METADATA_STRING((slice))              \
591        ? (grpc_metadata_batch_callouts_index)GPR_CLAMP( \
592              GRPC_STATIC_METADATA_INDEX((slice)), 0,    \
593              GRPC_BATCH_CALLOUTS_COUNT)                 \
594        : GRPC_BATCH_CALLOUTS_COUNT)
595
596 extern const uint8_t grpc_static_accept_encoding_metadata[8];
597 #define GRPC_MDELEM_ACCEPT_ENCODING_FOR_ALGORITHMS(algs)                       \
598   (GRPC_MAKE_MDELEM(                                                           \
599       &grpc_static_mdelem_table[grpc_static_accept_encoding_metadata[(algs)]], \
600       GRPC_MDELEM_STORAGE_STATIC))
601
602 extern const uint8_t grpc_static_accept_stream_encoding_metadata[4];
603 #define GRPC_MDELEM_ACCEPT_STREAM_ENCODING_FOR_ALGORITHMS(algs)                \
604   (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table                                  \
605                         [grpc_static_accept_stream_encoding_metadata[(algs)]], \
606                     GRPC_MDELEM_STORAGE_STATIC))
607 #endif /* GRPC_CORE_LIB_TRANSPORT_STATIC_METADATA_H */