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