grpc 1.23.1 → 1.24.0.pre1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (245) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +757 -477
  3. data/include/grpc/grpc.h +3 -1
  4. data/include/grpc/grpc_security.h +20 -4
  5. data/include/grpc/impl/codegen/grpc_types.h +6 -5
  6. data/include/grpc/impl/codegen/port_platform.h +25 -0
  7. data/src/core/ext/filters/client_channel/backend_metric.cc +78 -0
  8. data/src/core/ext/filters/client_channel/backend_metric.h +36 -0
  9. data/src/core/ext/filters/client_channel/channel_connectivity.cc +16 -2
  10. data/src/core/ext/filters/client_channel/client_channel.cc +325 -267
  11. data/src/core/ext/filters/client_channel/client_channel_factory.h +0 -4
  12. data/src/core/ext/filters/client_channel/health/health_check_client.cc +23 -32
  13. data/src/core/ext/filters/client_channel/http_proxy.cc +7 -3
  14. data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
  15. data/src/core/ext/filters/client_channel/lb_policy.h +58 -34
  16. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -50
  17. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +9 -2
  18. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +35 -17
  19. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +130 -215
  20. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +34 -21
  21. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +1120 -802
  22. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel.h +8 -2
  23. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_secure.cc +33 -12
  24. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_client_stats.cc +151 -40
  25. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_client_stats.h +184 -26
  26. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_load_balancer_api.cc +389 -245
  27. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_load_balancer_api.h +98 -60
  28. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +6 -1
  29. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +89 -0
  30. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +3 -8
  31. data/src/core/ext/filters/client_channel/server_address.cc +1 -3
  32. data/src/core/ext/filters/client_channel/server_address.h +1 -1
  33. data/src/core/ext/filters/client_channel/subchannel.h +2 -1
  34. data/src/core/ext/filters/client_idle/client_idle_filter.cc +207 -29
  35. data/src/core/ext/filters/http/client/http_client_filter.cc +10 -8
  36. data/src/core/ext/filters/http/client_authority_filter.cc +1 -1
  37. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +10 -7
  38. data/src/core/ext/filters/http/server/http_server_filter.cc +52 -26
  39. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +23 -20
  40. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +24 -21
  41. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +1 -1
  42. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +37 -24
  43. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
  44. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +237 -191
  45. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +29 -27
  46. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -1
  47. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +19 -4
  48. data/src/core/ext/transport/chttp2/transport/hpack_table.h +13 -4
  49. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -1
  50. data/src/core/ext/transport/chttp2/transport/internal.h +0 -2
  51. data/src/core/ext/transport/chttp2/transport/parsing.cc +99 -71
  52. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +222 -0
  53. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +818 -0
  54. data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.c +314 -0
  55. data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +1142 -0
  56. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +53 -0
  57. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +158 -0
  58. data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +34 -0
  59. data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.h +69 -0
  60. data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +49 -0
  61. data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.h +240 -0
  62. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +110 -0
  63. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +324 -0
  64. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +235 -0
  65. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +661 -0
  66. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +84 -0
  67. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +274 -0
  68. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +175 -0
  69. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +572 -0
  70. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +150 -0
  71. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +596 -0
  72. data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +35 -0
  73. data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.h +80 -0
  74. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +95 -0
  75. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +308 -0
  76. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +128 -0
  77. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.h +392 -0
  78. data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.c +91 -0
  79. data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +236 -0
  80. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +88 -0
  81. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +258 -0
  82. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +111 -0
  83. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.h +324 -0
  84. data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.c +23 -0
  85. data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.h +50 -0
  86. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +52 -0
  87. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +130 -0
  88. data/src/core/ext/upb-generated/envoy/type/percent.upb.c +39 -0
  89. data/src/core/ext/upb-generated/envoy/type/percent.upb.h +87 -0
  90. data/src/core/ext/upb-generated/envoy/type/range.upb.c +39 -0
  91. data/src/core/ext/upb-generated/envoy/type/range.upb.h +85 -0
  92. data/src/core/ext/upb-generated/gogoproto/gogo.upb.c +17 -0
  93. data/src/core/ext/upb-generated/gogoproto/gogo.upb.h +30 -0
  94. data/src/core/ext/upb-generated/google/api/annotations.upb.c +18 -0
  95. data/src/core/ext/upb-generated/google/api/annotations.upb.h +30 -0
  96. data/src/core/ext/upb-generated/google/api/http.upb.c +66 -0
  97. data/src/core/ext/upb-generated/google/api/http.upb.h +190 -0
  98. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +27 -0
  99. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +58 -0
  100. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +485 -0
  101. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +1690 -0
  102. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +27 -0
  103. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +58 -0
  104. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +22 -0
  105. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +50 -0
  106. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +79 -0
  107. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +215 -0
  108. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +27 -0
  109. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +58 -0
  110. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +106 -0
  111. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +238 -0
  112. data/src/core/ext/upb-generated/google/rpc/status.upb.c +33 -0
  113. data/src/core/ext/upb-generated/google/rpc/status.upb.h +74 -0
  114. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +49 -0
  115. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +126 -0
  116. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +209 -0
  117. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +681 -0
  118. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +42 -0
  119. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +109 -0
  120. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +36 -0
  121. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +84 -0
  122. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +133 -0
  123. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +359 -0
  124. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +58 -0
  125. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +144 -0
  126. data/src/core/ext/upb-generated/validate/validate.upb.c +443 -0
  127. data/src/core/ext/upb-generated/validate/validate.upb.h +2037 -0
  128. data/src/core/lib/channel/channel_args.cc +21 -0
  129. data/src/core/lib/channel/channel_args.h +16 -2
  130. data/src/core/lib/channel/channel_stack.h +2 -1
  131. data/src/core/lib/channel/channelz.cc +54 -56
  132. data/src/core/lib/channel/channelz.h +29 -12
  133. data/src/core/lib/compression/compression.cc +2 -1
  134. data/src/core/lib/compression/compression_internal.h +8 -0
  135. data/src/core/lib/gpr/log_linux.cc +2 -2
  136. data/src/core/lib/gpr/log_posix.cc +2 -2
  137. data/src/core/lib/gpr/time_precise.cc +123 -36
  138. data/src/core/lib/gpr/time_precise.h +37 -0
  139. data/src/core/lib/gprpp/abstract.h +10 -0
  140. data/src/core/lib/gprpp/atomic.h +4 -0
  141. data/src/core/lib/gprpp/inlined_vector.h +20 -4
  142. data/src/core/lib/gprpp/map.h +109 -6
  143. data/src/core/lib/gprpp/memory.h +6 -0
  144. data/src/core/lib/gprpp/ref_counted_ptr.h +2 -0
  145. data/src/core/lib/iomgr/ev_epollex_linux.cc +29 -54
  146. data/src/core/lib/iomgr/exec_ctx.cc +27 -17
  147. data/src/core/lib/iomgr/exec_ctx.h +3 -0
  148. data/src/core/lib/iomgr/sockaddr_utils.cc +1 -3
  149. data/src/core/lib/iomgr/tcp_posix.cc +16 -25
  150. data/src/core/lib/iomgr/tcp_server_custom.cc +1 -1
  151. data/src/core/lib/iomgr/timer_manager.cc +8 -1
  152. data/src/core/lib/iomgr/timer_manager.h +2 -0
  153. data/src/core/lib/security/credentials/credentials.h +8 -2
  154. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +23 -0
  155. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +3 -0
  156. data/src/core/lib/security/credentials/tls/spiffe_credentials.cc +3 -3
  157. data/src/core/lib/security/security_connector/ssl_utils.cc +1 -12
  158. data/src/core/lib/security/security_connector/ssl_utils.h +10 -6
  159. data/src/core/lib/security/security_connector/ssl_utils_config.cc +32 -0
  160. data/src/core/lib/security/security_connector/ssl_utils_config.h +30 -0
  161. data/src/core/lib/security/security_connector/tls/spiffe_security_connector.cc +161 -49
  162. data/src/core/lib/security/security_connector/tls/spiffe_security_connector.h +34 -1
  163. data/src/core/lib/slice/slice_intern.cc +17 -9
  164. data/src/core/lib/slice/slice_internal.h +34 -7
  165. data/src/core/lib/slice/slice_utils.h +7 -3
  166. data/src/core/lib/surface/call.cc +97 -57
  167. data/src/core/lib/surface/channel.cc +2 -2
  168. data/src/core/lib/surface/completion_queue.cc +10 -16
  169. data/src/core/lib/surface/init.cc +3 -0
  170. data/src/core/lib/surface/server.cc +11 -14
  171. data/src/core/lib/surface/validate_metadata.cc +4 -0
  172. data/src/core/lib/surface/version.cc +2 -2
  173. data/src/core/lib/transport/metadata.cc +4 -4
  174. data/src/core/lib/transport/metadata_batch.cc +72 -16
  175. data/src/core/lib/transport/metadata_batch.h +38 -0
  176. data/src/core/lib/transport/static_metadata.cc +814 -1023
  177. data/src/core/lib/transport/static_metadata.h +271 -213
  178. data/src/core/lib/transport/transport.h +12 -0
  179. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
  180. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +104 -76
  181. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +34 -16
  182. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +2 -2
  183. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +10 -6
  184. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +4 -3
  185. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +74 -48
  186. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +34 -26
  187. data/src/core/tsi/ssl_transport_security.cc +14 -6
  188. data/src/core/tsi/ssl_transport_security.h +4 -0
  189. data/src/ruby/ext/grpc/ext-export.clang +1 -0
  190. data/src/ruby/ext/grpc/ext-export.gcc +6 -0
  191. data/src/ruby/ext/grpc/extconf.rb +5 -0
  192. data/src/ruby/ext/grpc/rb_enable_cpp.cc +22 -0
  193. data/src/ruby/ext/grpc/rb_grpc.c +1 -42
  194. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -0
  195. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -0
  196. data/src/ruby/lib/grpc.rb +2 -0
  197. data/src/ruby/lib/grpc/core/status_codes.rb +135 -0
  198. data/src/ruby/lib/grpc/errors.rb +4 -7
  199. data/src/ruby/lib/grpc/google_rpc_status_utils.rb +9 -4
  200. data/src/ruby/lib/grpc/structs.rb +15 -0
  201. data/src/ruby/lib/grpc/version.rb +1 -1
  202. data/src/ruby/spec/errors_spec.rb +1 -0
  203. data/src/ruby/spec/pb/codegen/grpc/testing/package_options_import.proto +22 -0
  204. data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +34 -0
  205. data/src/ruby/spec/pb/codegen/package_option_spec.rb +53 -29
  206. data/third_party/upb/upb/decode.c +604 -0
  207. data/third_party/upb/upb/decode.h +21 -0
  208. data/third_party/upb/upb/encode.c +378 -0
  209. data/third_party/upb/upb/encode.h +21 -0
  210. data/third_party/upb/upb/generated_util.h +105 -0
  211. data/third_party/upb/upb/msg.c +111 -0
  212. data/third_party/upb/upb/msg.h +69 -0
  213. data/third_party/upb/upb/port.c +27 -0
  214. data/third_party/upb/upb/port_def.inc +152 -0
  215. data/third_party/upb/upb/port_undef.inc +21 -0
  216. data/third_party/upb/upb/table.c +911 -0
  217. data/third_party/upb/upb/table.int.h +507 -0
  218. data/third_party/upb/upb/upb.c +261 -0
  219. data/third_party/upb/upb/upb.h +364 -0
  220. metadata +134 -55
  221. data/src/core/ext/filters/client_channel/health/health.pb.c +0 -23
  222. data/src/core/ext/filters/client_channel/health/health.pb.h +0 -73
  223. data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/google/protobuf/duration.pb.c +0 -19
  224. data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/google/protobuf/duration.pb.h +0 -54
  225. data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/google/protobuf/timestamp.pb.c +0 -19
  226. data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/google/protobuf/timestamp.pb.h +0 -54
  227. data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c +0 -89
  228. data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h +0 -164
  229. data/src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc +0 -520
  230. data/src/core/tsi/alts/handshaker/alts_handshaker_service_api.h +0 -323
  231. data/src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc +0 -145
  232. data/src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h +0 -149
  233. data/src/core/tsi/alts/handshaker/altscontext.pb.c +0 -47
  234. data/src/core/tsi/alts/handshaker/altscontext.pb.h +0 -63
  235. data/src/core/tsi/alts/handshaker/handshaker.pb.c +0 -122
  236. data/src/core/tsi/alts/handshaker/handshaker.pb.h +0 -254
  237. data/src/core/tsi/alts/handshaker/transport_security_common.pb.c +0 -49
  238. data/src/core/tsi/alts/handshaker/transport_security_common.pb.h +0 -78
  239. data/third_party/nanopb/pb.h +0 -579
  240. data/third_party/nanopb/pb_common.c +0 -97
  241. data/third_party/nanopb/pb_common.h +0 -42
  242. data/third_party/nanopb/pb_decode.c +0 -1347
  243. data/third_party/nanopb/pb_decode.h +0 -149
  244. data/third_party/nanopb/pb_encode.c +0 -696
  245. data/third_party/nanopb/pb_encode.h +0 -154
@@ -36,431 +36,484 @@
36
36
  static_assert(
37
37
  std::is_trivially_destructible<grpc_core::StaticMetadataSlice>::value,
38
38
  "grpc_core::StaticMetadataSlice must be trivially destructible.");
39
- #define GRPC_STATIC_MDSTR_COUNT 106
40
- extern const grpc_core::StaticMetadataSlice
41
- grpc_static_slice_table[GRPC_STATIC_MDSTR_COUNT];
39
+ #define GRPC_STATIC_MDSTR_COUNT 109
40
+
41
+ void grpc_init_static_metadata_ctx(void);
42
+ void grpc_destroy_static_metadata_ctx(void);
43
+ namespace grpc_core {
44
+ #ifndef NDEBUG
45
+ constexpr uint64_t kGrpcStaticMetadataInitCanary = 0xCAFEF00DC0FFEE11L;
46
+ uint64_t StaticMetadataInitCanary();
47
+ #endif
48
+ extern const StaticMetadataSlice* g_static_metadata_slice_table;
49
+ }
50
+ inline const grpc_core::StaticMetadataSlice* grpc_static_slice_table() {
51
+ GPR_DEBUG_ASSERT(grpc_core::StaticMetadataInitCanary() ==
52
+ grpc_core::kGrpcStaticMetadataInitCanary);
53
+ GPR_DEBUG_ASSERT(grpc_core::g_static_metadata_slice_table != nullptr);
54
+ return grpc_core::g_static_metadata_slice_table;
55
+ }
56
+
42
57
  /* ":path" */
43
- #define GRPC_MDSTR_PATH (grpc_static_slice_table[0])
58
+ #define GRPC_MDSTR_PATH (grpc_static_slice_table()[0])
44
59
  /* ":method" */
45
- #define GRPC_MDSTR_METHOD (grpc_static_slice_table[1])
60
+ #define GRPC_MDSTR_METHOD (grpc_static_slice_table()[1])
46
61
  /* ":status" */
47
- #define GRPC_MDSTR_STATUS (grpc_static_slice_table[2])
62
+ #define GRPC_MDSTR_STATUS (grpc_static_slice_table()[2])
48
63
  /* ":authority" */
49
- #define GRPC_MDSTR_AUTHORITY (grpc_static_slice_table[3])
64
+ #define GRPC_MDSTR_AUTHORITY (grpc_static_slice_table()[3])
50
65
  /* ":scheme" */
51
- #define GRPC_MDSTR_SCHEME (grpc_static_slice_table[4])
66
+ #define GRPC_MDSTR_SCHEME (grpc_static_slice_table()[4])
52
67
  /* "te" */
53
- #define GRPC_MDSTR_TE (grpc_static_slice_table[5])
68
+ #define GRPC_MDSTR_TE (grpc_static_slice_table()[5])
54
69
  /* "grpc-message" */
55
- #define GRPC_MDSTR_GRPC_MESSAGE (grpc_static_slice_table[6])
70
+ #define GRPC_MDSTR_GRPC_MESSAGE (grpc_static_slice_table()[6])
56
71
  /* "grpc-status" */
57
- #define GRPC_MDSTR_GRPC_STATUS (grpc_static_slice_table[7])
72
+ #define GRPC_MDSTR_GRPC_STATUS (grpc_static_slice_table()[7])
58
73
  /* "grpc-payload-bin" */
59
- #define GRPC_MDSTR_GRPC_PAYLOAD_BIN (grpc_static_slice_table[8])
74
+ #define GRPC_MDSTR_GRPC_PAYLOAD_BIN (grpc_static_slice_table()[8])
60
75
  /* "grpc-encoding" */
61
- #define GRPC_MDSTR_GRPC_ENCODING (grpc_static_slice_table[9])
76
+ #define GRPC_MDSTR_GRPC_ENCODING (grpc_static_slice_table()[9])
62
77
  /* "grpc-accept-encoding" */
63
- #define GRPC_MDSTR_GRPC_ACCEPT_ENCODING (grpc_static_slice_table[10])
78
+ #define GRPC_MDSTR_GRPC_ACCEPT_ENCODING (grpc_static_slice_table()[10])
64
79
  /* "grpc-server-stats-bin" */
65
- #define GRPC_MDSTR_GRPC_SERVER_STATS_BIN (grpc_static_slice_table[11])
80
+ #define GRPC_MDSTR_GRPC_SERVER_STATS_BIN (grpc_static_slice_table()[11])
66
81
  /* "grpc-tags-bin" */
67
- #define GRPC_MDSTR_GRPC_TAGS_BIN (grpc_static_slice_table[12])
82
+ #define GRPC_MDSTR_GRPC_TAGS_BIN (grpc_static_slice_table()[12])
68
83
  /* "grpc-trace-bin" */
69
- #define GRPC_MDSTR_GRPC_TRACE_BIN (grpc_static_slice_table[13])
84
+ #define GRPC_MDSTR_GRPC_TRACE_BIN (grpc_static_slice_table()[13])
70
85
  /* "content-type" */
71
- #define GRPC_MDSTR_CONTENT_TYPE (grpc_static_slice_table[14])
86
+ #define GRPC_MDSTR_CONTENT_TYPE (grpc_static_slice_table()[14])
72
87
  /* "content-encoding" */
73
- #define GRPC_MDSTR_CONTENT_ENCODING (grpc_static_slice_table[15])
88
+ #define GRPC_MDSTR_CONTENT_ENCODING (grpc_static_slice_table()[15])
74
89
  /* "accept-encoding" */
75
- #define GRPC_MDSTR_ACCEPT_ENCODING (grpc_static_slice_table[16])
90
+ #define GRPC_MDSTR_ACCEPT_ENCODING (grpc_static_slice_table()[16])
76
91
  /* "grpc-internal-encoding-request" */
77
- #define GRPC_MDSTR_GRPC_INTERNAL_ENCODING_REQUEST (grpc_static_slice_table[17])
92
+ #define GRPC_MDSTR_GRPC_INTERNAL_ENCODING_REQUEST \
93
+ (grpc_static_slice_table()[17])
78
94
  /* "grpc-internal-stream-encoding-request" */
79
95
  #define GRPC_MDSTR_GRPC_INTERNAL_STREAM_ENCODING_REQUEST \
80
- (grpc_static_slice_table[18])
96
+ (grpc_static_slice_table()[18])
81
97
  /* "user-agent" */
82
- #define GRPC_MDSTR_USER_AGENT (grpc_static_slice_table[19])
98
+ #define GRPC_MDSTR_USER_AGENT (grpc_static_slice_table()[19])
83
99
  /* "host" */
84
- #define GRPC_MDSTR_HOST (grpc_static_slice_table[20])
100
+ #define GRPC_MDSTR_HOST (grpc_static_slice_table()[20])
85
101
  /* "grpc-previous-rpc-attempts" */
86
- #define GRPC_MDSTR_GRPC_PREVIOUS_RPC_ATTEMPTS (grpc_static_slice_table[21])
102
+ #define GRPC_MDSTR_GRPC_PREVIOUS_RPC_ATTEMPTS (grpc_static_slice_table()[21])
87
103
  /* "grpc-retry-pushback-ms" */
88
- #define GRPC_MDSTR_GRPC_RETRY_PUSHBACK_MS (grpc_static_slice_table[22])
104
+ #define GRPC_MDSTR_GRPC_RETRY_PUSHBACK_MS (grpc_static_slice_table()[22])
105
+ /* "x-endpoint-load-metrics-bin" */
106
+ #define GRPC_MDSTR_X_ENDPOINT_LOAD_METRICS_BIN (grpc_static_slice_table()[23])
89
107
  /* "grpc-timeout" */
90
- #define GRPC_MDSTR_GRPC_TIMEOUT (grpc_static_slice_table[23])
108
+ #define GRPC_MDSTR_GRPC_TIMEOUT (grpc_static_slice_table()[24])
91
109
  /* "1" */
92
- #define GRPC_MDSTR_1 (grpc_static_slice_table[24])
110
+ #define GRPC_MDSTR_1 (grpc_static_slice_table()[25])
93
111
  /* "2" */
94
- #define GRPC_MDSTR_2 (grpc_static_slice_table[25])
112
+ #define GRPC_MDSTR_2 (grpc_static_slice_table()[26])
95
113
  /* "3" */
96
- #define GRPC_MDSTR_3 (grpc_static_slice_table[26])
114
+ #define GRPC_MDSTR_3 (grpc_static_slice_table()[27])
97
115
  /* "4" */
98
- #define GRPC_MDSTR_4 (grpc_static_slice_table[27])
116
+ #define GRPC_MDSTR_4 (grpc_static_slice_table()[28])
99
117
  /* "" */
100
- #define GRPC_MDSTR_EMPTY (grpc_static_slice_table[28])
118
+ #define GRPC_MDSTR_EMPTY (grpc_static_slice_table()[29])
101
119
  /* "grpc.wait_for_ready" */
102
- #define GRPC_MDSTR_GRPC_DOT_WAIT_FOR_READY (grpc_static_slice_table[29])
120
+ #define GRPC_MDSTR_GRPC_DOT_WAIT_FOR_READY (grpc_static_slice_table()[30])
103
121
  /* "grpc.timeout" */
104
- #define GRPC_MDSTR_GRPC_DOT_TIMEOUT (grpc_static_slice_table[30])
122
+ #define GRPC_MDSTR_GRPC_DOT_TIMEOUT (grpc_static_slice_table()[31])
105
123
  /* "grpc.max_request_message_bytes" */
106
124
  #define GRPC_MDSTR_GRPC_DOT_MAX_REQUEST_MESSAGE_BYTES \
107
- (grpc_static_slice_table[31])
125
+ (grpc_static_slice_table()[32])
108
126
  /* "grpc.max_response_message_bytes" */
109
127
  #define GRPC_MDSTR_GRPC_DOT_MAX_RESPONSE_MESSAGE_BYTES \
110
- (grpc_static_slice_table[32])
128
+ (grpc_static_slice_table()[33])
111
129
  /* "/grpc.lb.v1.LoadBalancer/BalanceLoad" */
112
130
  #define GRPC_MDSTR_SLASH_GRPC_DOT_LB_DOT_V1_DOT_LOADBALANCER_SLASH_BALANCELOAD \
113
- (grpc_static_slice_table[33])
131
+ (grpc_static_slice_table()[34])
132
+ /* "/envoy.service.load_stats.v2.LoadReportingService/StreamLoadStats" */
133
+ #define GRPC_MDSTR_SLASH_ENVOY_DOT_SERVICE_DOT_LOAD_STATS_DOT_V2_DOT_LOADREPORTINGSERVICE_SLASH_STREAMLOADSTATS \
134
+ (grpc_static_slice_table()[35])
135
+ /* "/envoy.api.v2.EndpointDiscoveryService/StreamEndpoints" */
136
+ #define GRPC_MDSTR_SLASH_ENVOY_DOT_API_DOT_V2_DOT_ENDPOINTDISCOVERYSERVICE_SLASH_STREAMENDPOINTS \
137
+ (grpc_static_slice_table()[36])
114
138
  /* "/grpc.health.v1.Health/Watch" */
115
139
  #define GRPC_MDSTR_SLASH_GRPC_DOT_HEALTH_DOT_V1_DOT_HEALTH_SLASH_WATCH \
116
- (grpc_static_slice_table[34])
140
+ (grpc_static_slice_table()[37])
117
141
  /* "/envoy.service.discovery.v2.AggregatedDiscoveryService/StreamAggregatedResources"
118
142
  */
119
143
  #define GRPC_MDSTR_SLASH_ENVOY_DOT_SERVICE_DOT_DISCOVERY_DOT_V2_DOT_AGGREGATEDDISCOVERYSERVICE_SLASH_STREAMAGGREGATEDRESOURCES \
120
- (grpc_static_slice_table[35])
144
+ (grpc_static_slice_table()[38])
121
145
  /* "deflate" */
122
- #define GRPC_MDSTR_DEFLATE (grpc_static_slice_table[36])
146
+ #define GRPC_MDSTR_DEFLATE (grpc_static_slice_table()[39])
123
147
  /* "gzip" */
124
- #define GRPC_MDSTR_GZIP (grpc_static_slice_table[37])
148
+ #define GRPC_MDSTR_GZIP (grpc_static_slice_table()[40])
125
149
  /* "stream/gzip" */
126
- #define GRPC_MDSTR_STREAM_SLASH_GZIP (grpc_static_slice_table[38])
150
+ #define GRPC_MDSTR_STREAM_SLASH_GZIP (grpc_static_slice_table()[41])
127
151
  /* "GET" */
128
- #define GRPC_MDSTR_GET (grpc_static_slice_table[39])
152
+ #define GRPC_MDSTR_GET (grpc_static_slice_table()[42])
129
153
  /* "POST" */
130
- #define GRPC_MDSTR_POST (grpc_static_slice_table[40])
154
+ #define GRPC_MDSTR_POST (grpc_static_slice_table()[43])
131
155
  /* "/" */
132
- #define GRPC_MDSTR_SLASH (grpc_static_slice_table[41])
156
+ #define GRPC_MDSTR_SLASH (grpc_static_slice_table()[44])
133
157
  /* "/index.html" */
134
- #define GRPC_MDSTR_SLASH_INDEX_DOT_HTML (grpc_static_slice_table[42])
158
+ #define GRPC_MDSTR_SLASH_INDEX_DOT_HTML (grpc_static_slice_table()[45])
135
159
  /* "http" */
136
- #define GRPC_MDSTR_HTTP (grpc_static_slice_table[43])
160
+ #define GRPC_MDSTR_HTTP (grpc_static_slice_table()[46])
137
161
  /* "https" */
138
- #define GRPC_MDSTR_HTTPS (grpc_static_slice_table[44])
162
+ #define GRPC_MDSTR_HTTPS (grpc_static_slice_table()[47])
139
163
  /* "200" */
140
- #define GRPC_MDSTR_200 (grpc_static_slice_table[45])
164
+ #define GRPC_MDSTR_200 (grpc_static_slice_table()[48])
141
165
  /* "204" */
142
- #define GRPC_MDSTR_204 (grpc_static_slice_table[46])
166
+ #define GRPC_MDSTR_204 (grpc_static_slice_table()[49])
143
167
  /* "206" */
144
- #define GRPC_MDSTR_206 (grpc_static_slice_table[47])
168
+ #define GRPC_MDSTR_206 (grpc_static_slice_table()[50])
145
169
  /* "304" */
146
- #define GRPC_MDSTR_304 (grpc_static_slice_table[48])
170
+ #define GRPC_MDSTR_304 (grpc_static_slice_table()[51])
147
171
  /* "400" */
148
- #define GRPC_MDSTR_400 (grpc_static_slice_table[49])
172
+ #define GRPC_MDSTR_400 (grpc_static_slice_table()[52])
149
173
  /* "404" */
150
- #define GRPC_MDSTR_404 (grpc_static_slice_table[50])
174
+ #define GRPC_MDSTR_404 (grpc_static_slice_table()[53])
151
175
  /* "500" */
152
- #define GRPC_MDSTR_500 (grpc_static_slice_table[51])
176
+ #define GRPC_MDSTR_500 (grpc_static_slice_table()[54])
153
177
  /* "accept-charset" */
154
- #define GRPC_MDSTR_ACCEPT_CHARSET (grpc_static_slice_table[52])
178
+ #define GRPC_MDSTR_ACCEPT_CHARSET (grpc_static_slice_table()[55])
155
179
  /* "gzip, deflate" */
156
- #define GRPC_MDSTR_GZIP_COMMA_DEFLATE (grpc_static_slice_table[53])
180
+ #define GRPC_MDSTR_GZIP_COMMA_DEFLATE (grpc_static_slice_table()[56])
157
181
  /* "accept-language" */
158
- #define GRPC_MDSTR_ACCEPT_LANGUAGE (grpc_static_slice_table[54])
182
+ #define GRPC_MDSTR_ACCEPT_LANGUAGE (grpc_static_slice_table()[57])
159
183
  /* "accept-ranges" */
160
- #define GRPC_MDSTR_ACCEPT_RANGES (grpc_static_slice_table[55])
184
+ #define GRPC_MDSTR_ACCEPT_RANGES (grpc_static_slice_table()[58])
161
185
  /* "accept" */
162
- #define GRPC_MDSTR_ACCEPT (grpc_static_slice_table[56])
186
+ #define GRPC_MDSTR_ACCEPT (grpc_static_slice_table()[59])
163
187
  /* "access-control-allow-origin" */
164
- #define GRPC_MDSTR_ACCESS_CONTROL_ALLOW_ORIGIN (grpc_static_slice_table[57])
188
+ #define GRPC_MDSTR_ACCESS_CONTROL_ALLOW_ORIGIN (grpc_static_slice_table()[60])
165
189
  /* "age" */
166
- #define GRPC_MDSTR_AGE (grpc_static_slice_table[58])
190
+ #define GRPC_MDSTR_AGE (grpc_static_slice_table()[61])
167
191
  /* "allow" */
168
- #define GRPC_MDSTR_ALLOW (grpc_static_slice_table[59])
192
+ #define GRPC_MDSTR_ALLOW (grpc_static_slice_table()[62])
169
193
  /* "authorization" */
170
- #define GRPC_MDSTR_AUTHORIZATION (grpc_static_slice_table[60])
194
+ #define GRPC_MDSTR_AUTHORIZATION (grpc_static_slice_table()[63])
171
195
  /* "cache-control" */
172
- #define GRPC_MDSTR_CACHE_CONTROL (grpc_static_slice_table[61])
196
+ #define GRPC_MDSTR_CACHE_CONTROL (grpc_static_slice_table()[64])
173
197
  /* "content-disposition" */
174
- #define GRPC_MDSTR_CONTENT_DISPOSITION (grpc_static_slice_table[62])
198
+ #define GRPC_MDSTR_CONTENT_DISPOSITION (grpc_static_slice_table()[65])
175
199
  /* "content-language" */
176
- #define GRPC_MDSTR_CONTENT_LANGUAGE (grpc_static_slice_table[63])
200
+ #define GRPC_MDSTR_CONTENT_LANGUAGE (grpc_static_slice_table()[66])
177
201
  /* "content-length" */
178
- #define GRPC_MDSTR_CONTENT_LENGTH (grpc_static_slice_table[64])
202
+ #define GRPC_MDSTR_CONTENT_LENGTH (grpc_static_slice_table()[67])
179
203
  /* "content-location" */
180
- #define GRPC_MDSTR_CONTENT_LOCATION (grpc_static_slice_table[65])
204
+ #define GRPC_MDSTR_CONTENT_LOCATION (grpc_static_slice_table()[68])
181
205
  /* "content-range" */
182
- #define GRPC_MDSTR_CONTENT_RANGE (grpc_static_slice_table[66])
206
+ #define GRPC_MDSTR_CONTENT_RANGE (grpc_static_slice_table()[69])
183
207
  /* "cookie" */
184
- #define GRPC_MDSTR_COOKIE (grpc_static_slice_table[67])
208
+ #define GRPC_MDSTR_COOKIE (grpc_static_slice_table()[70])
185
209
  /* "date" */
186
- #define GRPC_MDSTR_DATE (grpc_static_slice_table[68])
210
+ #define GRPC_MDSTR_DATE (grpc_static_slice_table()[71])
187
211
  /* "etag" */
188
- #define GRPC_MDSTR_ETAG (grpc_static_slice_table[69])
212
+ #define GRPC_MDSTR_ETAG (grpc_static_slice_table()[72])
189
213
  /* "expect" */
190
- #define GRPC_MDSTR_EXPECT (grpc_static_slice_table[70])
214
+ #define GRPC_MDSTR_EXPECT (grpc_static_slice_table()[73])
191
215
  /* "expires" */
192
- #define GRPC_MDSTR_EXPIRES (grpc_static_slice_table[71])
216
+ #define GRPC_MDSTR_EXPIRES (grpc_static_slice_table()[74])
193
217
  /* "from" */
194
- #define GRPC_MDSTR_FROM (grpc_static_slice_table[72])
218
+ #define GRPC_MDSTR_FROM (grpc_static_slice_table()[75])
195
219
  /* "if-match" */
196
- #define GRPC_MDSTR_IF_MATCH (grpc_static_slice_table[73])
220
+ #define GRPC_MDSTR_IF_MATCH (grpc_static_slice_table()[76])
197
221
  /* "if-modified-since" */
198
- #define GRPC_MDSTR_IF_MODIFIED_SINCE (grpc_static_slice_table[74])
222
+ #define GRPC_MDSTR_IF_MODIFIED_SINCE (grpc_static_slice_table()[77])
199
223
  /* "if-none-match" */
200
- #define GRPC_MDSTR_IF_NONE_MATCH (grpc_static_slice_table[75])
224
+ #define GRPC_MDSTR_IF_NONE_MATCH (grpc_static_slice_table()[78])
201
225
  /* "if-range" */
202
- #define GRPC_MDSTR_IF_RANGE (grpc_static_slice_table[76])
226
+ #define GRPC_MDSTR_IF_RANGE (grpc_static_slice_table()[79])
203
227
  /* "if-unmodified-since" */
204
- #define GRPC_MDSTR_IF_UNMODIFIED_SINCE (grpc_static_slice_table[77])
228
+ #define GRPC_MDSTR_IF_UNMODIFIED_SINCE (grpc_static_slice_table()[80])
205
229
  /* "last-modified" */
206
- #define GRPC_MDSTR_LAST_MODIFIED (grpc_static_slice_table[78])
230
+ #define GRPC_MDSTR_LAST_MODIFIED (grpc_static_slice_table()[81])
207
231
  /* "link" */
208
- #define GRPC_MDSTR_LINK (grpc_static_slice_table[79])
232
+ #define GRPC_MDSTR_LINK (grpc_static_slice_table()[82])
209
233
  /* "location" */
210
- #define GRPC_MDSTR_LOCATION (grpc_static_slice_table[80])
234
+ #define GRPC_MDSTR_LOCATION (grpc_static_slice_table()[83])
211
235
  /* "max-forwards" */
212
- #define GRPC_MDSTR_MAX_FORWARDS (grpc_static_slice_table[81])
236
+ #define GRPC_MDSTR_MAX_FORWARDS (grpc_static_slice_table()[84])
213
237
  /* "proxy-authenticate" */
214
- #define GRPC_MDSTR_PROXY_AUTHENTICATE (grpc_static_slice_table[82])
238
+ #define GRPC_MDSTR_PROXY_AUTHENTICATE (grpc_static_slice_table()[85])
215
239
  /* "proxy-authorization" */
216
- #define GRPC_MDSTR_PROXY_AUTHORIZATION (grpc_static_slice_table[83])
240
+ #define GRPC_MDSTR_PROXY_AUTHORIZATION (grpc_static_slice_table()[86])
217
241
  /* "range" */
218
- #define GRPC_MDSTR_RANGE (grpc_static_slice_table[84])
242
+ #define GRPC_MDSTR_RANGE (grpc_static_slice_table()[87])
219
243
  /* "referer" */
220
- #define GRPC_MDSTR_REFERER (grpc_static_slice_table[85])
244
+ #define GRPC_MDSTR_REFERER (grpc_static_slice_table()[88])
221
245
  /* "refresh" */
222
- #define GRPC_MDSTR_REFRESH (grpc_static_slice_table[86])
246
+ #define GRPC_MDSTR_REFRESH (grpc_static_slice_table()[89])
223
247
  /* "retry-after" */
224
- #define GRPC_MDSTR_RETRY_AFTER (grpc_static_slice_table[87])
248
+ #define GRPC_MDSTR_RETRY_AFTER (grpc_static_slice_table()[90])
225
249
  /* "server" */
226
- #define GRPC_MDSTR_SERVER (grpc_static_slice_table[88])
250
+ #define GRPC_MDSTR_SERVER (grpc_static_slice_table()[91])
227
251
  /* "set-cookie" */
228
- #define GRPC_MDSTR_SET_COOKIE (grpc_static_slice_table[89])
252
+ #define GRPC_MDSTR_SET_COOKIE (grpc_static_slice_table()[92])
229
253
  /* "strict-transport-security" */
230
- #define GRPC_MDSTR_STRICT_TRANSPORT_SECURITY (grpc_static_slice_table[90])
254
+ #define GRPC_MDSTR_STRICT_TRANSPORT_SECURITY (grpc_static_slice_table()[93])
231
255
  /* "transfer-encoding" */
232
- #define GRPC_MDSTR_TRANSFER_ENCODING (grpc_static_slice_table[91])
256
+ #define GRPC_MDSTR_TRANSFER_ENCODING (grpc_static_slice_table()[94])
233
257
  /* "vary" */
234
- #define GRPC_MDSTR_VARY (grpc_static_slice_table[92])
258
+ #define GRPC_MDSTR_VARY (grpc_static_slice_table()[95])
235
259
  /* "via" */
236
- #define GRPC_MDSTR_VIA (grpc_static_slice_table[93])
260
+ #define GRPC_MDSTR_VIA (grpc_static_slice_table()[96])
237
261
  /* "www-authenticate" */
238
- #define GRPC_MDSTR_WWW_AUTHENTICATE (grpc_static_slice_table[94])
262
+ #define GRPC_MDSTR_WWW_AUTHENTICATE (grpc_static_slice_table()[97])
239
263
  /* "0" */
240
- #define GRPC_MDSTR_0 (grpc_static_slice_table[95])
264
+ #define GRPC_MDSTR_0 (grpc_static_slice_table()[98])
241
265
  /* "identity" */
242
- #define GRPC_MDSTR_IDENTITY (grpc_static_slice_table[96])
266
+ #define GRPC_MDSTR_IDENTITY (grpc_static_slice_table()[99])
243
267
  /* "trailers" */
244
- #define GRPC_MDSTR_TRAILERS (grpc_static_slice_table[97])
268
+ #define GRPC_MDSTR_TRAILERS (grpc_static_slice_table()[100])
245
269
  /* "application/grpc" */
246
- #define GRPC_MDSTR_APPLICATION_SLASH_GRPC (grpc_static_slice_table[98])
270
+ #define GRPC_MDSTR_APPLICATION_SLASH_GRPC (grpc_static_slice_table()[101])
247
271
  /* "grpc" */
248
- #define GRPC_MDSTR_GRPC (grpc_static_slice_table[99])
272
+ #define GRPC_MDSTR_GRPC (grpc_static_slice_table()[102])
249
273
  /* "PUT" */
250
- #define GRPC_MDSTR_PUT (grpc_static_slice_table[100])
274
+ #define GRPC_MDSTR_PUT (grpc_static_slice_table()[103])
251
275
  /* "lb-cost-bin" */
252
- #define GRPC_MDSTR_LB_COST_BIN (grpc_static_slice_table[101])
276
+ #define GRPC_MDSTR_LB_COST_BIN (grpc_static_slice_table()[104])
253
277
  /* "identity,deflate" */
254
- #define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE (grpc_static_slice_table[102])
278
+ #define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE (grpc_static_slice_table()[105])
255
279
  /* "identity,gzip" */
256
- #define GRPC_MDSTR_IDENTITY_COMMA_GZIP (grpc_static_slice_table[103])
280
+ #define GRPC_MDSTR_IDENTITY_COMMA_GZIP (grpc_static_slice_table()[106])
257
281
  /* "deflate,gzip" */
258
- #define GRPC_MDSTR_DEFLATE_COMMA_GZIP (grpc_static_slice_table[104])
282
+ #define GRPC_MDSTR_DEFLATE_COMMA_GZIP (grpc_static_slice_table()[107])
259
283
  /* "identity,deflate,gzip" */
260
284
  #define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE_COMMA_GZIP \
261
- (grpc_static_slice_table[105])
285
+ (grpc_static_slice_table()[108])
286
+
287
+ namespace grpc_core {
288
+ struct StaticSliceRefcount;
289
+ extern StaticSliceRefcount* g_static_metadata_slice_refcounts;
290
+ } // namespace grpc_core
291
+ inline grpc_core::StaticSliceRefcount* grpc_static_metadata_refcounts() {
292
+ GPR_DEBUG_ASSERT(grpc_core::StaticMetadataInitCanary() ==
293
+ grpc_core::kGrpcStaticMetadataInitCanary);
294
+ GPR_DEBUG_ASSERT(grpc_core::g_static_metadata_slice_refcounts != nullptr);
295
+ return grpc_core::g_static_metadata_slice_refcounts;
296
+ }
262
297
 
263
- extern grpc_slice_refcount
264
- grpc_static_metadata_refcounts[GRPC_STATIC_MDSTR_COUNT];
265
298
  #define GRPC_IS_STATIC_METADATA_STRING(slice) \
266
299
  ((slice).refcount != NULL && \
267
300
  (slice).refcount->GetType() == grpc_slice_refcount::Type::STATIC)
268
301
 
269
- #define GRPC_STATIC_METADATA_INDEX(static_slice) \
270
- (static_cast<intptr_t>( \
271
- ((static_slice).refcount - grpc_static_metadata_refcounts)))
302
+ #define GRPC_STATIC_METADATA_INDEX(static_slice) \
303
+ (reinterpret_cast<grpc_core::StaticSliceRefcount*>((static_slice).refcount) \
304
+ ->index)
272
305
 
273
306
  #define GRPC_STATIC_MDELEM_COUNT 85
274
- extern grpc_core::StaticMetadata
275
- grpc_static_mdelem_table[GRPC_STATIC_MDELEM_COUNT];
307
+
308
+ namespace grpc_core {
309
+ extern StaticMetadata* g_static_mdelem_table;
310
+ extern grpc_mdelem* g_static_mdelem_manifested;
311
+ } // namespace grpc_core
312
+ inline grpc_core::StaticMetadata* grpc_static_mdelem_table() {
313
+ GPR_DEBUG_ASSERT(grpc_core::StaticMetadataInitCanary() ==
314
+ grpc_core::kGrpcStaticMetadataInitCanary);
315
+ GPR_DEBUG_ASSERT(grpc_core::g_static_mdelem_table != nullptr);
316
+ return grpc_core::g_static_mdelem_table;
317
+ }
318
+ inline grpc_mdelem* grpc_static_mdelem_manifested() {
319
+ GPR_DEBUG_ASSERT(grpc_core::StaticMetadataInitCanary() ==
320
+ grpc_core::kGrpcStaticMetadataInitCanary);
321
+ GPR_DEBUG_ASSERT(grpc_core::g_static_mdelem_manifested != nullptr);
322
+ return grpc_core::g_static_mdelem_manifested;
323
+ }
324
+
276
325
  extern uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT];
277
- extern grpc_mdelem grpc_static_mdelem_manifested[GRPC_STATIC_MDELEM_COUNT];
278
326
  /* ":authority": "" */
279
- #define GRPC_MDELEM_AUTHORITY_EMPTY (grpc_static_mdelem_manifested[0])
327
+ #define GRPC_MDELEM_AUTHORITY_EMPTY (grpc_static_mdelem_manifested()[0])
280
328
  /* ":method": "GET" */
281
- #define GRPC_MDELEM_METHOD_GET (grpc_static_mdelem_manifested[1])
329
+ #define GRPC_MDELEM_METHOD_GET (grpc_static_mdelem_manifested()[1])
282
330
  /* ":method": "POST" */
283
- #define GRPC_MDELEM_METHOD_POST (grpc_static_mdelem_manifested[2])
331
+ #define GRPC_MDELEM_METHOD_POST (grpc_static_mdelem_manifested()[2])
284
332
  /* ":path": "/" */
285
- #define GRPC_MDELEM_PATH_SLASH (grpc_static_mdelem_manifested[3])
333
+ #define GRPC_MDELEM_PATH_SLASH (grpc_static_mdelem_manifested()[3])
286
334
  /* ":path": "/index.html" */
287
- #define GRPC_MDELEM_PATH_SLASH_INDEX_DOT_HTML (grpc_static_mdelem_manifested[4])
335
+ #define GRPC_MDELEM_PATH_SLASH_INDEX_DOT_HTML \
336
+ (grpc_static_mdelem_manifested()[4])
288
337
  /* ":scheme": "http" */
289
- #define GRPC_MDELEM_SCHEME_HTTP (grpc_static_mdelem_manifested[5])
338
+ #define GRPC_MDELEM_SCHEME_HTTP (grpc_static_mdelem_manifested()[5])
290
339
  /* ":scheme": "https" */
291
- #define GRPC_MDELEM_SCHEME_HTTPS (grpc_static_mdelem_manifested[6])
340
+ #define GRPC_MDELEM_SCHEME_HTTPS (grpc_static_mdelem_manifested()[6])
292
341
  /* ":status": "200" */
293
- #define GRPC_MDELEM_STATUS_200 (grpc_static_mdelem_manifested[7])
342
+ #define GRPC_MDELEM_STATUS_200 (grpc_static_mdelem_manifested()[7])
294
343
  /* ":status": "204" */
295
- #define GRPC_MDELEM_STATUS_204 (grpc_static_mdelem_manifested[8])
344
+ #define GRPC_MDELEM_STATUS_204 (grpc_static_mdelem_manifested()[8])
296
345
  /* ":status": "206" */
297
- #define GRPC_MDELEM_STATUS_206 (grpc_static_mdelem_manifested[9])
346
+ #define GRPC_MDELEM_STATUS_206 (grpc_static_mdelem_manifested()[9])
298
347
  /* ":status": "304" */
299
- #define GRPC_MDELEM_STATUS_304 (grpc_static_mdelem_manifested[10])
348
+ #define GRPC_MDELEM_STATUS_304 (grpc_static_mdelem_manifested()[10])
300
349
  /* ":status": "400" */
301
- #define GRPC_MDELEM_STATUS_400 (grpc_static_mdelem_manifested[11])
350
+ #define GRPC_MDELEM_STATUS_400 (grpc_static_mdelem_manifested()[11])
302
351
  /* ":status": "404" */
303
- #define GRPC_MDELEM_STATUS_404 (grpc_static_mdelem_manifested[12])
352
+ #define GRPC_MDELEM_STATUS_404 (grpc_static_mdelem_manifested()[12])
304
353
  /* ":status": "500" */
305
- #define GRPC_MDELEM_STATUS_500 (grpc_static_mdelem_manifested[13])
354
+ #define GRPC_MDELEM_STATUS_500 (grpc_static_mdelem_manifested()[13])
306
355
  /* "accept-charset": "" */
307
- #define GRPC_MDELEM_ACCEPT_CHARSET_EMPTY (grpc_static_mdelem_manifested[14])
356
+ #define GRPC_MDELEM_ACCEPT_CHARSET_EMPTY (grpc_static_mdelem_manifested()[14])
308
357
  /* "accept-encoding": "gzip, deflate" */
309
358
  #define GRPC_MDELEM_ACCEPT_ENCODING_GZIP_COMMA_DEFLATE \
310
- (grpc_static_mdelem_manifested[15])
359
+ (grpc_static_mdelem_manifested()[15])
311
360
  /* "accept-language": "" */
312
- #define GRPC_MDELEM_ACCEPT_LANGUAGE_EMPTY (grpc_static_mdelem_manifested[16])
361
+ #define GRPC_MDELEM_ACCEPT_LANGUAGE_EMPTY (grpc_static_mdelem_manifested()[16])
313
362
  /* "accept-ranges": "" */
314
- #define GRPC_MDELEM_ACCEPT_RANGES_EMPTY (grpc_static_mdelem_manifested[17])
363
+ #define GRPC_MDELEM_ACCEPT_RANGES_EMPTY (grpc_static_mdelem_manifested()[17])
315
364
  /* "accept": "" */
316
- #define GRPC_MDELEM_ACCEPT_EMPTY (grpc_static_mdelem_manifested[18])
365
+ #define GRPC_MDELEM_ACCEPT_EMPTY (grpc_static_mdelem_manifested()[18])
317
366
  /* "access-control-allow-origin": "" */
318
367
  #define GRPC_MDELEM_ACCESS_CONTROL_ALLOW_ORIGIN_EMPTY \
319
- (grpc_static_mdelem_manifested[19])
368
+ (grpc_static_mdelem_manifested()[19])
320
369
  /* "age": "" */
321
- #define GRPC_MDELEM_AGE_EMPTY (grpc_static_mdelem_manifested[20])
370
+ #define GRPC_MDELEM_AGE_EMPTY (grpc_static_mdelem_manifested()[20])
322
371
  /* "allow": "" */
323
- #define GRPC_MDELEM_ALLOW_EMPTY (grpc_static_mdelem_manifested[21])
372
+ #define GRPC_MDELEM_ALLOW_EMPTY (grpc_static_mdelem_manifested()[21])
324
373
  /* "authorization": "" */
325
- #define GRPC_MDELEM_AUTHORIZATION_EMPTY (grpc_static_mdelem_manifested[22])
374
+ #define GRPC_MDELEM_AUTHORIZATION_EMPTY (grpc_static_mdelem_manifested()[22])
326
375
  /* "cache-control": "" */
327
- #define GRPC_MDELEM_CACHE_CONTROL_EMPTY (grpc_static_mdelem_manifested[23])
376
+ #define GRPC_MDELEM_CACHE_CONTROL_EMPTY (grpc_static_mdelem_manifested()[23])
328
377
  /* "content-disposition": "" */
329
378
  #define GRPC_MDELEM_CONTENT_DISPOSITION_EMPTY \
330
- (grpc_static_mdelem_manifested[24])
379
+ (grpc_static_mdelem_manifested()[24])
331
380
  /* "content-encoding": "" */
332
- #define GRPC_MDELEM_CONTENT_ENCODING_EMPTY (grpc_static_mdelem_manifested[25])
381
+ #define GRPC_MDELEM_CONTENT_ENCODING_EMPTY (grpc_static_mdelem_manifested()[25])
333
382
  /* "content-language": "" */
334
- #define GRPC_MDELEM_CONTENT_LANGUAGE_EMPTY (grpc_static_mdelem_manifested[26])
383
+ #define GRPC_MDELEM_CONTENT_LANGUAGE_EMPTY (grpc_static_mdelem_manifested()[26])
335
384
  /* "content-length": "" */
336
- #define GRPC_MDELEM_CONTENT_LENGTH_EMPTY (grpc_static_mdelem_manifested[27])
385
+ #define GRPC_MDELEM_CONTENT_LENGTH_EMPTY (grpc_static_mdelem_manifested()[27])
337
386
  /* "content-location": "" */
338
- #define GRPC_MDELEM_CONTENT_LOCATION_EMPTY (grpc_static_mdelem_manifested[28])
387
+ #define GRPC_MDELEM_CONTENT_LOCATION_EMPTY (grpc_static_mdelem_manifested()[28])
339
388
  /* "content-range": "" */
340
- #define GRPC_MDELEM_CONTENT_RANGE_EMPTY (grpc_static_mdelem_manifested[29])
389
+ #define GRPC_MDELEM_CONTENT_RANGE_EMPTY (grpc_static_mdelem_manifested()[29])
341
390
  /* "content-type": "" */
342
- #define GRPC_MDELEM_CONTENT_TYPE_EMPTY (grpc_static_mdelem_manifested[30])
391
+ #define GRPC_MDELEM_CONTENT_TYPE_EMPTY (grpc_static_mdelem_manifested()[30])
343
392
  /* "cookie": "" */
344
- #define GRPC_MDELEM_COOKIE_EMPTY (grpc_static_mdelem_manifested[31])
393
+ #define GRPC_MDELEM_COOKIE_EMPTY (grpc_static_mdelem_manifested()[31])
345
394
  /* "date": "" */
346
- #define GRPC_MDELEM_DATE_EMPTY (grpc_static_mdelem_manifested[32])
395
+ #define GRPC_MDELEM_DATE_EMPTY (grpc_static_mdelem_manifested()[32])
347
396
  /* "etag": "" */
348
- #define GRPC_MDELEM_ETAG_EMPTY (grpc_static_mdelem_manifested[33])
397
+ #define GRPC_MDELEM_ETAG_EMPTY (grpc_static_mdelem_manifested()[33])
349
398
  /* "expect": "" */
350
- #define GRPC_MDELEM_EXPECT_EMPTY (grpc_static_mdelem_manifested[34])
399
+ #define GRPC_MDELEM_EXPECT_EMPTY (grpc_static_mdelem_manifested()[34])
351
400
  /* "expires": "" */
352
- #define GRPC_MDELEM_EXPIRES_EMPTY (grpc_static_mdelem_manifested[35])
401
+ #define GRPC_MDELEM_EXPIRES_EMPTY (grpc_static_mdelem_manifested()[35])
353
402
  /* "from": "" */
354
- #define GRPC_MDELEM_FROM_EMPTY (grpc_static_mdelem_manifested[36])
403
+ #define GRPC_MDELEM_FROM_EMPTY (grpc_static_mdelem_manifested()[36])
355
404
  /* "host": "" */
356
- #define GRPC_MDELEM_HOST_EMPTY (grpc_static_mdelem_manifested[37])
405
+ #define GRPC_MDELEM_HOST_EMPTY (grpc_static_mdelem_manifested()[37])
357
406
  /* "if-match": "" */
358
- #define GRPC_MDELEM_IF_MATCH_EMPTY (grpc_static_mdelem_manifested[38])
407
+ #define GRPC_MDELEM_IF_MATCH_EMPTY (grpc_static_mdelem_manifested()[38])
359
408
  /* "if-modified-since": "" */
360
- #define GRPC_MDELEM_IF_MODIFIED_SINCE_EMPTY (grpc_static_mdelem_manifested[39])
409
+ #define GRPC_MDELEM_IF_MODIFIED_SINCE_EMPTY \
410
+ (grpc_static_mdelem_manifested()[39])
361
411
  /* "if-none-match": "" */
362
- #define GRPC_MDELEM_IF_NONE_MATCH_EMPTY (grpc_static_mdelem_manifested[40])
412
+ #define GRPC_MDELEM_IF_NONE_MATCH_EMPTY (grpc_static_mdelem_manifested()[40])
363
413
  /* "if-range": "" */
364
- #define GRPC_MDELEM_IF_RANGE_EMPTY (grpc_static_mdelem_manifested[41])
414
+ #define GRPC_MDELEM_IF_RANGE_EMPTY (grpc_static_mdelem_manifested()[41])
365
415
  /* "if-unmodified-since": "" */
366
416
  #define GRPC_MDELEM_IF_UNMODIFIED_SINCE_EMPTY \
367
- (grpc_static_mdelem_manifested[42])
417
+ (grpc_static_mdelem_manifested()[42])
368
418
  /* "last-modified": "" */
369
- #define GRPC_MDELEM_LAST_MODIFIED_EMPTY (grpc_static_mdelem_manifested[43])
419
+ #define GRPC_MDELEM_LAST_MODIFIED_EMPTY (grpc_static_mdelem_manifested()[43])
370
420
  /* "link": "" */
371
- #define GRPC_MDELEM_LINK_EMPTY (grpc_static_mdelem_manifested[44])
421
+ #define GRPC_MDELEM_LINK_EMPTY (grpc_static_mdelem_manifested()[44])
372
422
  /* "location": "" */
373
- #define GRPC_MDELEM_LOCATION_EMPTY (grpc_static_mdelem_manifested[45])
423
+ #define GRPC_MDELEM_LOCATION_EMPTY (grpc_static_mdelem_manifested()[45])
374
424
  /* "max-forwards": "" */
375
- #define GRPC_MDELEM_MAX_FORWARDS_EMPTY (grpc_static_mdelem_manifested[46])
425
+ #define GRPC_MDELEM_MAX_FORWARDS_EMPTY (grpc_static_mdelem_manifested()[46])
376
426
  /* "proxy-authenticate": "" */
377
- #define GRPC_MDELEM_PROXY_AUTHENTICATE_EMPTY (grpc_static_mdelem_manifested[47])
427
+ #define GRPC_MDELEM_PROXY_AUTHENTICATE_EMPTY \
428
+ (grpc_static_mdelem_manifested()[47])
378
429
  /* "proxy-authorization": "" */
379
430
  #define GRPC_MDELEM_PROXY_AUTHORIZATION_EMPTY \
380
- (grpc_static_mdelem_manifested[48])
431
+ (grpc_static_mdelem_manifested()[48])
381
432
  /* "range": "" */
382
- #define GRPC_MDELEM_RANGE_EMPTY (grpc_static_mdelem_manifested[49])
433
+ #define GRPC_MDELEM_RANGE_EMPTY (grpc_static_mdelem_manifested()[49])
383
434
  /* "referer": "" */
384
- #define GRPC_MDELEM_REFERER_EMPTY (grpc_static_mdelem_manifested[50])
435
+ #define GRPC_MDELEM_REFERER_EMPTY (grpc_static_mdelem_manifested()[50])
385
436
  /* "refresh": "" */
386
- #define GRPC_MDELEM_REFRESH_EMPTY (grpc_static_mdelem_manifested[51])
437
+ #define GRPC_MDELEM_REFRESH_EMPTY (grpc_static_mdelem_manifested()[51])
387
438
  /* "retry-after": "" */
388
- #define GRPC_MDELEM_RETRY_AFTER_EMPTY (grpc_static_mdelem_manifested[52])
439
+ #define GRPC_MDELEM_RETRY_AFTER_EMPTY (grpc_static_mdelem_manifested()[52])
389
440
  /* "server": "" */
390
- #define GRPC_MDELEM_SERVER_EMPTY (grpc_static_mdelem_manifested[53])
441
+ #define GRPC_MDELEM_SERVER_EMPTY (grpc_static_mdelem_manifested()[53])
391
442
  /* "set-cookie": "" */
392
- #define GRPC_MDELEM_SET_COOKIE_EMPTY (grpc_static_mdelem_manifested[54])
443
+ #define GRPC_MDELEM_SET_COOKIE_EMPTY (grpc_static_mdelem_manifested()[54])
393
444
  /* "strict-transport-security": "" */
394
445
  #define GRPC_MDELEM_STRICT_TRANSPORT_SECURITY_EMPTY \
395
- (grpc_static_mdelem_manifested[55])
446
+ (grpc_static_mdelem_manifested()[55])
396
447
  /* "transfer-encoding": "" */
397
- #define GRPC_MDELEM_TRANSFER_ENCODING_EMPTY (grpc_static_mdelem_manifested[56])
448
+ #define GRPC_MDELEM_TRANSFER_ENCODING_EMPTY \
449
+ (grpc_static_mdelem_manifested()[56])
398
450
  /* "user-agent": "" */
399
- #define GRPC_MDELEM_USER_AGENT_EMPTY (grpc_static_mdelem_manifested[57])
451
+ #define GRPC_MDELEM_USER_AGENT_EMPTY (grpc_static_mdelem_manifested()[57])
400
452
  /* "vary": "" */
401
- #define GRPC_MDELEM_VARY_EMPTY (grpc_static_mdelem_manifested[58])
453
+ #define GRPC_MDELEM_VARY_EMPTY (grpc_static_mdelem_manifested()[58])
402
454
  /* "via": "" */
403
- #define GRPC_MDELEM_VIA_EMPTY (grpc_static_mdelem_manifested[59])
455
+ #define GRPC_MDELEM_VIA_EMPTY (grpc_static_mdelem_manifested()[59])
404
456
  /* "www-authenticate": "" */
405
- #define GRPC_MDELEM_WWW_AUTHENTICATE_EMPTY (grpc_static_mdelem_manifested[60])
457
+ #define GRPC_MDELEM_WWW_AUTHENTICATE_EMPTY (grpc_static_mdelem_manifested()[60])
406
458
  /* "grpc-status": "0" */
407
- #define GRPC_MDELEM_GRPC_STATUS_0 (grpc_static_mdelem_manifested[61])
459
+ #define GRPC_MDELEM_GRPC_STATUS_0 (grpc_static_mdelem_manifested()[61])
408
460
  /* "grpc-status": "1" */
409
- #define GRPC_MDELEM_GRPC_STATUS_1 (grpc_static_mdelem_manifested[62])
461
+ #define GRPC_MDELEM_GRPC_STATUS_1 (grpc_static_mdelem_manifested()[62])
410
462
  /* "grpc-status": "2" */
411
- #define GRPC_MDELEM_GRPC_STATUS_2 (grpc_static_mdelem_manifested[63])
463
+ #define GRPC_MDELEM_GRPC_STATUS_2 (grpc_static_mdelem_manifested()[63])
412
464
  /* "grpc-encoding": "identity" */
413
- #define GRPC_MDELEM_GRPC_ENCODING_IDENTITY (grpc_static_mdelem_manifested[64])
465
+ #define GRPC_MDELEM_GRPC_ENCODING_IDENTITY (grpc_static_mdelem_manifested()[64])
414
466
  /* "grpc-encoding": "gzip" */
415
- #define GRPC_MDELEM_GRPC_ENCODING_GZIP (grpc_static_mdelem_manifested[65])
467
+ #define GRPC_MDELEM_GRPC_ENCODING_GZIP (grpc_static_mdelem_manifested()[65])
416
468
  /* "grpc-encoding": "deflate" */
417
- #define GRPC_MDELEM_GRPC_ENCODING_DEFLATE (grpc_static_mdelem_manifested[66])
469
+ #define GRPC_MDELEM_GRPC_ENCODING_DEFLATE (grpc_static_mdelem_manifested()[66])
418
470
  /* "te": "trailers" */
419
- #define GRPC_MDELEM_TE_TRAILERS (grpc_static_mdelem_manifested[67])
471
+ #define GRPC_MDELEM_TE_TRAILERS (grpc_static_mdelem_manifested()[67])
420
472
  /* "content-type": "application/grpc" */
421
473
  #define GRPC_MDELEM_CONTENT_TYPE_APPLICATION_SLASH_GRPC \
422
- (grpc_static_mdelem_manifested[68])
474
+ (grpc_static_mdelem_manifested()[68])
423
475
  /* ":scheme": "grpc" */
424
- #define GRPC_MDELEM_SCHEME_GRPC (grpc_static_mdelem_manifested[69])
476
+ #define GRPC_MDELEM_SCHEME_GRPC (grpc_static_mdelem_manifested()[69])
425
477
  /* ":method": "PUT" */
426
- #define GRPC_MDELEM_METHOD_PUT (grpc_static_mdelem_manifested[70])
478
+ #define GRPC_MDELEM_METHOD_PUT (grpc_static_mdelem_manifested()[70])
427
479
  /* "accept-encoding": "" */
428
- #define GRPC_MDELEM_ACCEPT_ENCODING_EMPTY (grpc_static_mdelem_manifested[71])
480
+ #define GRPC_MDELEM_ACCEPT_ENCODING_EMPTY (grpc_static_mdelem_manifested()[71])
429
481
  /* "content-encoding": "identity" */
430
482
  #define GRPC_MDELEM_CONTENT_ENCODING_IDENTITY \
431
- (grpc_static_mdelem_manifested[72])
483
+ (grpc_static_mdelem_manifested()[72])
432
484
  /* "content-encoding": "gzip" */
433
- #define GRPC_MDELEM_CONTENT_ENCODING_GZIP (grpc_static_mdelem_manifested[73])
485
+ #define GRPC_MDELEM_CONTENT_ENCODING_GZIP (grpc_static_mdelem_manifested()[73])
434
486
  /* "lb-cost-bin": "" */
435
- #define GRPC_MDELEM_LB_COST_BIN_EMPTY (grpc_static_mdelem_manifested[74])
487
+ #define GRPC_MDELEM_LB_COST_BIN_EMPTY (grpc_static_mdelem_manifested()[74])
436
488
  /* "grpc-accept-encoding": "identity" */
437
489
  #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_IDENTITY \
438
- (grpc_static_mdelem_manifested[75])
490
+ (grpc_static_mdelem_manifested()[75])
439
491
  /* "grpc-accept-encoding": "deflate" */
440
492
  #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_DEFLATE \
441
- (grpc_static_mdelem_manifested[76])
493
+ (grpc_static_mdelem_manifested()[76])
442
494
  /* "grpc-accept-encoding": "identity,deflate" */
443
495
  #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_IDENTITY_COMMA_DEFLATE \
444
- (grpc_static_mdelem_manifested[77])
496
+ (grpc_static_mdelem_manifested()[77])
445
497
  /* "grpc-accept-encoding": "gzip" */
446
498
  #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_GZIP \
447
- (grpc_static_mdelem_manifested[78])
499
+ (grpc_static_mdelem_manifested()[78])
448
500
  /* "grpc-accept-encoding": "identity,gzip" */
449
501
  #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_IDENTITY_COMMA_GZIP \
450
- (grpc_static_mdelem_manifested[79])
502
+ (grpc_static_mdelem_manifested()[79])
451
503
  /* "grpc-accept-encoding": "deflate,gzip" */
452
504
  #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_DEFLATE_COMMA_GZIP \
453
- (grpc_static_mdelem_manifested[80])
505
+ (grpc_static_mdelem_manifested()[80])
454
506
  /* "grpc-accept-encoding": "identity,deflate,gzip" */
455
507
  #define GRPC_MDELEM_GRPC_ACCEPT_ENCODING_IDENTITY_COMMA_DEFLATE_COMMA_GZIP \
456
- (grpc_static_mdelem_manifested[81])
508
+ (grpc_static_mdelem_manifested()[81])
457
509
  /* "accept-encoding": "identity" */
458
- #define GRPC_MDELEM_ACCEPT_ENCODING_IDENTITY (grpc_static_mdelem_manifested[82])
510
+ #define GRPC_MDELEM_ACCEPT_ENCODING_IDENTITY \
511
+ (grpc_static_mdelem_manifested()[82])
459
512
  /* "accept-encoding": "gzip" */
460
- #define GRPC_MDELEM_ACCEPT_ENCODING_GZIP (grpc_static_mdelem_manifested[83])
513
+ #define GRPC_MDELEM_ACCEPT_ENCODING_GZIP (grpc_static_mdelem_manifested()[83])
461
514
  /* "accept-encoding": "identity,gzip" */
462
515
  #define GRPC_MDELEM_ACCEPT_ENCODING_IDENTITY_COMMA_GZIP \
463
- (grpc_static_mdelem_manifested[84])
516
+ (grpc_static_mdelem_manifested()[84])
464
517
 
465
518
  grpc_mdelem grpc_static_mdelem_for_static_strings(intptr_t a, intptr_t b);
466
519
  typedef enum {
@@ -487,6 +540,7 @@ typedef enum {
487
540
  GRPC_BATCH_HOST,
488
541
  GRPC_BATCH_GRPC_PREVIOUS_RPC_ATTEMPTS,
489
542
  GRPC_BATCH_GRPC_RETRY_PUSHBACK_MS,
543
+ GRPC_BATCH_X_ENDPOINT_LOAD_METRICS_BIN,
490
544
  GRPC_BATCH_CALLOUTS_COUNT
491
545
  } grpc_metadata_batch_callouts_index;
492
546
 
@@ -516,26 +570,30 @@ typedef union {
516
570
  struct grpc_linked_mdelem* host;
517
571
  struct grpc_linked_mdelem* grpc_previous_rpc_attempts;
518
572
  struct grpc_linked_mdelem* grpc_retry_pushback_ms;
573
+ struct grpc_linked_mdelem* x_endpoint_load_metrics_bin;
519
574
  } named;
520
575
  } grpc_metadata_batch_callouts;
521
576
 
522
- #define GRPC_BATCH_INDEX_OF(slice) \
523
- (GRPC_IS_STATIC_METADATA_STRING((slice)) \
524
- ? static_cast<grpc_metadata_batch_callouts_index>( \
525
- GPR_CLAMP(GRPC_STATIC_METADATA_INDEX((slice)), 0, \
526
- static_cast<intptr_t>(GRPC_BATCH_CALLOUTS_COUNT))) \
577
+ #define GRPC_BATCH_INDEX_OF(slice) \
578
+ (GRPC_IS_STATIC_METADATA_STRING((slice)) && \
579
+ reinterpret_cast<grpc_core::StaticSliceRefcount*>((slice).refcount) \
580
+ ->index <= static_cast<uint32_t>(GRPC_BATCH_CALLOUTS_COUNT) \
581
+ ? static_cast<grpc_metadata_batch_callouts_index>( \
582
+ reinterpret_cast<grpc_core::StaticSliceRefcount*>( \
583
+ (slice).refcount) \
584
+ ->index) \
527
585
  : GRPC_BATCH_CALLOUTS_COUNT)
528
586
 
529
587
  extern const uint8_t grpc_static_accept_encoding_metadata[8];
530
- #define GRPC_MDELEM_ACCEPT_ENCODING_FOR_ALGORITHMS(algs) \
531
- (GRPC_MAKE_MDELEM( \
532
- &grpc_static_mdelem_table[grpc_static_accept_encoding_metadata[(algs)]] \
533
- .data(), \
534
- GRPC_MDELEM_STORAGE_STATIC))
588
+ #define GRPC_MDELEM_ACCEPT_ENCODING_FOR_ALGORITHMS(algs) \
589
+ (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table() \
590
+ [grpc_static_accept_encoding_metadata[(algs)]] \
591
+ .data(), \
592
+ GRPC_MDELEM_STORAGE_STATIC))
535
593
 
536
594
  extern const uint8_t grpc_static_accept_stream_encoding_metadata[4];
537
595
  #define GRPC_MDELEM_ACCEPT_STREAM_ENCODING_FOR_ALGORITHMS(algs) \
538
- (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table \
596
+ (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table() \
539
597
  [grpc_static_accept_stream_encoding_metadata[(algs)]] \
540
598
  .data(), \
541
599
  GRPC_MDELEM_STORAGE_STATIC))