grpc 1.42.0 → 1.45.0

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 (1465) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +405 -221
  3. data/include/grpc/event_engine/event_engine.h +37 -13
  4. data/include/grpc/event_engine/internal/memory_allocator_impl.h +1 -31
  5. data/include/grpc/event_engine/memory_allocator.h +27 -11
  6. data/include/grpc/event_engine/memory_request.h +57 -0
  7. data/include/grpc/grpc.h +40 -14
  8. data/include/grpc/grpc_posix.h +20 -19
  9. data/include/grpc/grpc_security.h +312 -195
  10. data/include/grpc/grpc_security_constants.h +1 -14
  11. data/include/grpc/impl/codegen/compression_types.h +0 -2
  12. data/include/grpc/impl/codegen/grpc_types.h +17 -8
  13. data/include/grpc/impl/codegen/port_platform.h +7 -3
  14. data/include/grpc/impl/codegen/slice.h +4 -1
  15. data/include/grpc/slice.h +0 -11
  16. data/src/core/ext/filters/client_channel/backend_metric.cc +9 -10
  17. data/src/core/ext/filters/client_channel/backend_metric.h +4 -3
  18. data/src/core/ext/filters/client_channel/backup_poller.cc +12 -8
  19. data/src/core/ext/filters/client_channel/channel_connectivity.cc +5 -5
  20. data/src/core/ext/filters/client_channel/client_channel.cc +213 -156
  21. data/src/core/ext/filters/client_channel/client_channel.h +43 -41
  22. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +6 -13
  23. data/src/core/ext/filters/client_channel/config_selector.h +4 -4
  24. data/src/core/ext/filters/client_channel/connector.h +1 -1
  25. data/src/core/ext/filters/client_channel/dynamic_filters.cc +5 -6
  26. data/src/core/ext/filters/client_channel/dynamic_filters.h +2 -2
  27. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +2 -22
  28. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +3 -15
  29. data/src/core/ext/filters/client_channel/health/health_check_client.cc +32 -31
  30. data/src/core/ext/filters/client_channel/health/health_check_client.h +5 -5
  31. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +22 -27
  32. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +4 -3
  33. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +6 -5
  34. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +4 -7
  35. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +100 -81
  36. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -7
  37. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +1 -1
  38. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +1 -2
  39. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -2
  40. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +15 -15
  41. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +4 -4
  42. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +50 -32
  43. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +28 -19
  44. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +122 -71
  45. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +161 -112
  46. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +62 -61
  47. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +16 -11
  48. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +13 -7
  49. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +55 -99
  50. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +1 -1
  51. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +147 -70
  52. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +5 -3
  53. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +114 -206
  54. data/src/core/ext/filters/client_channel/lb_policy.cc +15 -14
  55. data/src/core/ext/filters/client_channel/lb_policy.h +94 -62
  56. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +10 -16
  57. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +261 -122
  58. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +22 -12
  59. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +19 -15
  60. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +31 -50
  61. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +136 -226
  62. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +25 -32
  63. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  64. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +122 -115
  65. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +18 -17
  66. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +2 -1
  67. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +84 -68
  68. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +40 -39
  69. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +390 -373
  70. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +8 -11
  71. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +13 -7
  72. data/src/core/ext/filters/client_channel/retry_filter.cc +236 -169
  73. data/src/core/ext/filters/client_channel/retry_service_config.cc +16 -18
  74. data/src/core/ext/filters/client_channel/retry_service_config.h +18 -12
  75. data/src/core/ext/filters/client_channel/retry_throttle.cc +9 -23
  76. data/src/core/ext/filters/client_channel/retry_throttle.h +11 -5
  77. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +8 -7
  78. data/src/core/ext/filters/client_channel/subchannel.cc +49 -56
  79. data/src/core/ext/filters/client_channel/subchannel.h +7 -7
  80. data/src/core/ext/filters/client_idle/client_idle_filter.cc +96 -159
  81. data/src/core/ext/filters/client_idle/idle_filter_state.h +2 -2
  82. data/src/core/ext/filters/deadline/deadline_filter.cc +15 -14
  83. data/src/core/ext/filters/deadline/deadline_filter.h +3 -2
  84. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +53 -58
  85. data/src/core/ext/filters/fault_injection/service_config_parser.cc +11 -13
  86. data/src/core/ext/filters/fault_injection/service_config_parser.h +10 -4
  87. data/src/core/ext/filters/http/client/http_client_filter.cc +70 -153
  88. data/src/core/ext/filters/http/client_authority_filter.cc +28 -87
  89. data/src/core/ext/filters/http/client_authority_filter.h +23 -5
  90. data/src/core/ext/filters/http/http_filters_plugin.cc +14 -17
  91. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +43 -140
  92. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +15 -27
  93. data/src/core/ext/filters/http/server/http_server_filter.cc +60 -161
  94. data/src/core/ext/filters/max_age/max_age_filter.cc +46 -40
  95. data/src/core/ext/filters/message_size/message_size_filter.cc +27 -35
  96. data/src/core/ext/filters/message_size/message_size_filter.h +10 -3
  97. data/src/core/ext/filters/rbac/rbac_filter.cc +162 -0
  98. data/src/core/ext/filters/rbac/rbac_filter.h +76 -0
  99. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +606 -0
  100. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +75 -0
  101. data/src/core/ext/filters/server_config_selector/server_config_selector.cc +67 -0
  102. data/src/core/ext/filters/server_config_selector/server_config_selector.h +71 -0
  103. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +271 -0
  104. data/src/core/ext/{transport/chttp2/transport/hpack_utils.h → filters/server_config_selector/server_config_selector_filter.h} +9 -7
  105. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +238 -20
  106. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -2
  107. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +283 -106
  108. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +204 -291
  109. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +9 -4
  110. data/src/core/ext/transport/chttp2/transport/context_list.cc +2 -3
  111. data/src/core/ext/transport/chttp2/transport/context_list.h +2 -3
  112. data/src/core/ext/transport/chttp2/transport/flow_control.cc +10 -10
  113. data/src/core/ext/transport/chttp2/transport/flow_control.h +5 -5
  114. data/src/core/ext/transport/chttp2/transport/frame_data.cc +0 -1
  115. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -4
  116. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +5 -0
  117. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +365 -240
  118. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +87 -145
  119. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +1 -1
  120. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +2 -0
  121. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +74 -149
  122. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +0 -1
  123. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +94 -1
  124. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +2 -24
  125. data/src/core/ext/transport/chttp2/transport/internal.h +12 -41
  126. data/src/core/ext/transport/chttp2/transport/parsing.cc +3 -9
  127. data/src/core/ext/transport/chttp2/transport/writing.cc +62 -128
  128. data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -4
  129. data/src/core/ext/transport/inproc/inproc_transport.cc +42 -81
  130. data/src/core/ext/transport/inproc/inproc_transport.h +1 -4
  131. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +114 -0
  132. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +402 -0
  133. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +119 -0
  134. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +453 -0
  135. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +243 -209
  136. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +799 -574
  137. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +56 -0
  138. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +138 -0
  139. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +62 -0
  140. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +146 -0
  141. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +46 -0
  142. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +106 -0
  143. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +43 -0
  144. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +93 -0
  145. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +43 -0
  146. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +88 -0
  147. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +103 -0
  148. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +466 -0
  149. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +48 -0
  150. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +95 -0
  151. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +43 -0
  152. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +19 -0
  153. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +30 -4
  154. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +33 -18
  155. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +143 -116
  156. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +422 -316
  157. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +231 -199
  158. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +788 -570
  159. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +43 -28
  160. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +116 -78
  161. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +308 -271
  162. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +955 -661
  163. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +20 -7
  164. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +34 -22
  165. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +40 -27
  166. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +128 -78
  167. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +290 -0
  168. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +1122 -0
  169. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +72 -53
  170. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +222 -158
  171. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +20 -7
  172. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +34 -22
  173. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +213 -176
  174. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +692 -498
  175. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +62 -45
  176. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +179 -129
  177. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +19 -6
  178. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +26 -18
  179. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +31 -17
  180. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +75 -52
  181. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +58 -0
  182. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +138 -0
  183. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +143 -117
  184. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +450 -328
  185. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +111 -91
  186. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +366 -263
  187. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +21 -8
  188. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +37 -25
  189. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +184 -125
  190. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +676 -344
  191. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +17 -4
  192. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +26 -16
  193. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +27 -13
  194. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +60 -41
  195. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +22 -9
  196. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +40 -24
  197. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +26 -13
  198. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +46 -34
  199. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +21 -8
  200. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +35 -23
  201. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +51 -35
  202. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +114 -84
  203. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +73 -55
  204. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +211 -150
  205. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +70 -53
  206. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +211 -141
  207. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +19 -6
  208. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +29 -19
  209. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +91 -71
  210. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +282 -191
  211. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +97 -78
  212. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +287 -217
  213. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +29 -16
  214. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +63 -41
  215. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +24 -10
  216. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +54 -37
  217. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +53 -0
  218. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +120 -0
  219. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +81 -61
  220. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +245 -184
  221. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +86 -65
  222. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +261 -191
  223. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +123 -103
  224. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +236 -190
  225. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +49 -34
  226. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +143 -111
  227. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +642 -572
  228. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +2038 -1506
  229. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +38 -19
  230. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +108 -63
  231. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +216 -0
  232. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +870 -0
  233. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +44 -0
  234. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +82 -0
  235. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +49 -0
  236. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +95 -0
  237. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +27 -13
  238. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +56 -39
  239. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +52 -0
  240. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +119 -0
  241. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +62 -0
  242. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +203 -0
  243. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +47 -0
  244. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +89 -0
  245. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +69 -0
  246. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +184 -0
  247. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +32 -0
  248. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +42 -0
  249. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +71 -0
  250. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +192 -0
  251. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +54 -0
  252. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +126 -0
  253. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +17 -4
  254. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +30 -22
  255. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +45 -28
  256. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +125 -91
  257. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +51 -36
  258. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +150 -104
  259. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +63 -0
  260. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +165 -0
  261. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +26 -13
  262. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +54 -36
  263. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +254 -223
  264. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +804 -558
  265. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +9 -0
  266. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +6 -3
  267. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +99 -60
  268. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +369 -193
  269. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +41 -26
  270. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +96 -70
  271. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +101 -83
  272. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +267 -192
  273. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +62 -0
  274. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +146 -0
  275. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +15 -2
  276. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +22 -14
  277. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +91 -72
  278. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +298 -217
  279. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +31 -17
  280. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +74 -53
  281. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +73 -56
  282. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +198 -144
  283. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +48 -0
  284. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +101 -0
  285. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +34 -18
  286. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +91 -68
  287. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +74 -0
  288. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +202 -0
  289. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +28 -14
  290. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +65 -46
  291. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +21 -8
  292. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +35 -25
  293. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +20 -7
  294. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +26 -18
  295. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +19 -6
  296. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +26 -18
  297. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +35 -20
  298. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +86 -60
  299. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +31 -17
  300. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +66 -51
  301. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +26 -12
  302. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +57 -42
  303. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +37 -22
  304. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +75 -57
  305. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +50 -31
  306. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +163 -123
  307. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +53 -36
  308. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +158 -112
  309. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +66 -0
  310. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +183 -0
  311. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +9 -0
  312. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +3 -0
  313. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +42 -0
  314. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +136 -0
  315. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +23 -9
  316. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +52 -33
  317. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +30 -15
  318. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +81 -51
  319. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +26 -0
  320. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +41 -0
  321. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +19 -6
  322. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +32 -18
  323. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +51 -0
  324. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +114 -0
  325. data/src/core/ext/upb-generated/google/api/annotations.upb.c +22 -0
  326. data/src/core/ext/upb-generated/google/api/annotations.upb.h +8 -0
  327. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +150 -125
  328. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +372 -280
  329. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +152 -126
  330. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +410 -297
  331. data/src/core/ext/upb-generated/google/api/http.upb.c +43 -28
  332. data/src/core/ext/upb-generated/google/api/http.upb.h +118 -88
  333. data/src/core/ext/upb-generated/google/api/httpbody.upb.c +46 -0
  334. data/src/core/ext/upb-generated/google/api/httpbody.upb.h +99 -0
  335. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +18 -5
  336. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +33 -21
  337. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +366 -276
  338. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +1089 -763
  339. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +18 -5
  340. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +29 -17
  341. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +15 -2
  342. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +22 -14
  343. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +47 -31
  344. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +81 -63
  345. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +18 -5
  346. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +29 -17
  347. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +57 -36
  348. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +214 -148
  349. data/src/core/ext/upb-generated/google/rpc/status.upb.c +21 -8
  350. data/src/core/ext/upb-generated/google/rpc/status.upb.h +37 -25
  351. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +84 -0
  352. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +276 -0
  353. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +32 -18
  354. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +61 -41
  355. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +131 -107
  356. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +397 -284
  357. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +26 -12
  358. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +59 -38
  359. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +22 -8
  360. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +51 -34
  361. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +81 -61
  362. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +272 -202
  363. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +34 -19
  364. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +77 -56
  365. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +75 -13
  366. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +108 -57
  367. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +31 -5
  368. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +34 -17
  369. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +21 -0
  370. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +8 -0
  371. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +31 -5
  372. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +34 -17
  373. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +30 -4
  374. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +33 -18
  375. data/src/core/ext/upb-generated/validate/validate.upb.c +395 -310
  376. data/src/core/ext/upb-generated/validate/validate.upb.h +1118 -725
  377. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +110 -0
  378. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +191 -0
  379. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +55 -0
  380. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +87 -0
  381. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +38 -0
  382. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +38 -0
  383. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +64 -17
  384. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +113 -65
  385. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +53 -0
  386. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +81 -0
  387. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +17 -4
  388. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +28 -18
  389. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +30 -16
  390. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +64 -45
  391. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +25 -11
  392. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +32 -24
  393. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +46 -0
  394. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +95 -0
  395. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +22 -9
  396. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +40 -26
  397. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +33 -19
  398. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +74 -53
  399. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +22 -9
  400. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +44 -28
  401. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +36 -21
  402. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +44 -30
  403. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +203 -0
  404. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +726 -0
  405. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +52 -0
  406. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +132 -0
  407. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +65 -0
  408. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +173 -0
  409. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +20 -7
  410. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +34 -22
  411. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +84 -0
  412. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +55 -0
  413. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +127 -0
  414. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +50 -0
  415. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +16 -61
  416. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +67 -67
  417. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +43 -0
  418. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +40 -0
  419. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +53 -0
  420. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +40 -0
  421. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +49 -0
  422. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +35 -0
  423. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +46 -0
  424. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +35 -0
  425. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +46 -0
  426. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +35 -0
  427. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +142 -0
  428. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +40 -0
  429. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +51 -0
  430. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +35 -0
  431. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +10 -8
  432. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +1 -1
  433. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +10 -13
  434. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +4 -4
  435. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +22 -52
  436. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +46 -46
  437. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +250 -281
  438. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +55 -55
  439. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +18 -24
  440. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +10 -10
  441. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +377 -426
  442. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +76 -76
  443. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +16 -18
  444. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +4 -4
  445. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +18 -20
  446. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +4 -4
  447. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +206 -0
  448. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +105 -0
  449. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +17 -32
  450. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +22 -22
  451. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +17 -19
  452. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +4 -4
  453. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +87 -133
  454. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +73 -73
  455. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +20 -31
  456. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +16 -16
  457. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +16 -19
  458. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +4 -4
  459. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +17 -21
  460. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +7 -7
  461. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +53 -0
  462. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +40 -0
  463. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +23 -51
  464. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +43 -43
  465. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +25 -41
  466. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +25 -25
  467. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +16 -19
  468. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +4 -4
  469. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +252 -254
  470. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +53 -43
  471. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +14 -16
  472. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +4 -4
  473. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +16 -20
  474. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +7 -7
  475. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +16 -18
  476. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +4 -4
  477. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +20 -22
  478. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +4 -4
  479. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +15 -18
  480. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +4 -4
  481. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +20 -28
  482. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +13 -13
  483. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +21 -33
  484. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +19 -19
  485. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +20 -30
  486. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +16 -16
  487. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +16 -18
  488. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +4 -4
  489. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +54 -62
  490. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +19 -19
  491. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +25 -39
  492. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +22 -22
  493. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +21 -23
  494. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +4 -4
  495. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +17 -21
  496. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +7 -7
  497. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +69 -0
  498. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +35 -0
  499. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +19 -35
  500. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +25 -25
  501. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +19 -37
  502. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +28 -28
  503. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +190 -0
  504. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +70 -0
  505. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +21 -27
  506. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +10 -10
  507. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +818 -912
  508. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +160 -160
  509. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +54 -48
  510. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +10 -10
  511. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +188 -0
  512. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +85 -0
  513. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +54 -0
  514. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +35 -0
  515. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +57 -0
  516. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +35 -0
  517. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +17 -21
  518. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +7 -7
  519. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +72 -0
  520. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +35 -0
  521. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +99 -0
  522. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +35 -0
  523. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +52 -0
  524. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +35 -0
  525. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +71 -0
  526. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +40 -0
  527. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +57 -0
  528. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +30 -0
  529. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +75 -0
  530. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +40 -0
  531. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +77 -0
  532. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +35 -0
  533. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +17 -18
  534. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +4 -4
  535. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +19 -29
  536. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +16 -16
  537. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +20 -26
  538. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +10 -10
  539. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +59 -0
  540. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +40 -0
  541. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +19 -20
  542. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +4 -4
  543. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +137 -173
  544. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +58 -58
  545. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +17 -13
  546. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +1 -1
  547. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +171 -157
  548. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +24 -19
  549. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +21 -27
  550. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +10 -10
  551. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +23 -34
  552. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +19 -19
  553. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +58 -0
  554. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +40 -0
  555. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +16 -18
  556. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +4 -4
  557. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +19 -33
  558. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +22 -22
  559. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +18 -22
  560. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +7 -7
  561. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +22 -32
  562. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +16 -16
  563. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +46 -0
  564. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +35 -0
  565. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +15 -23
  566. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +13 -13
  567. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +52 -0
  568. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +50 -0
  569. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +17 -21
  570. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +7 -7
  571. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +17 -19
  572. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +4 -4
  573. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +17 -19
  574. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +4 -4
  575. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +17 -19
  576. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +4 -4
  577. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +17 -23
  578. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +10 -10
  579. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +17 -21
  580. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +7 -7
  581. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +16 -21
  582. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +7 -7
  583. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +18 -24
  584. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +10 -10
  585. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +15 -29
  586. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +22 -22
  587. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +16 -26
  588. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +16 -16
  589. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +53 -0
  590. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +45 -0
  591. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +12 -10
  592. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +1 -1
  593. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +94 -0
  594. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +35 -0
  595. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +14 -19
  596. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +7 -7
  597. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +13 -19
  598. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +10 -10
  599. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +38 -0
  600. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +30 -0
  601. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +13 -16
  602. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +4 -4
  603. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +57 -0
  604. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +35 -0
  605. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +7 -7
  606. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +1 -1
  607. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +154 -0
  608. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +95 -0
  609. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +153 -0
  610. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +100 -0
  611. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +5 -14
  612. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +10 -10
  613. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +39 -0
  614. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +35 -0
  615. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +5 -10
  616. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +4 -4
  617. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +5 -62
  618. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +82 -82
  619. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +5 -10
  620. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +4 -4
  621. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +5 -10
  622. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +4 -4
  623. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +5 -16
  624. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +13 -13
  625. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +5 -10
  626. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +4 -4
  627. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +5 -26
  628. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +28 -28
  629. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +6 -11
  630. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +4 -4
  631. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +67 -0
  632. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +50 -0
  633. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +6 -15
  634. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +10 -10
  635. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +7 -12
  636. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +4 -4
  637. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +6 -6
  638. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +1 -1
  639. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +6 -11
  640. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +4 -4
  641. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +6 -11
  642. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +4 -4
  643. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +8 -57
  644. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +70 -70
  645. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +63 -0
  646. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +45 -0
  647. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +47 -0
  648. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +35 -0
  649. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +35 -0
  650. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +30 -0
  651. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +6 -17
  652. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +13 -13
  653. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +40 -0
  654. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +35 -0
  655. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +7 -12
  656. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +4 -4
  657. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +9 -16
  658. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +7 -7
  659. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +6 -13
  660. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +7 -7
  661. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +41 -0
  662. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +35 -0
  663. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +8 -13
  664. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +4 -4
  665. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +8 -15
  666. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +7 -7
  667. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +8 -13
  668. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +4 -4
  669. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +126 -0
  670. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +80 -0
  671. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +40 -0
  672. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +40 -0
  673. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +52 -0
  674. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +40 -0
  675. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +7 -12
  676. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +4 -4
  677. data/src/core/ext/xds/certificate_provider_registry.cc +1 -1
  678. data/src/core/ext/xds/certificate_provider_store.h +1 -1
  679. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +4 -4
  680. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
  681. data/src/core/ext/xds/upb_utils.h +67 -0
  682. data/src/core/ext/xds/xds_api.cc +162 -3417
  683. data/src/core/ext/xds/xds_api.h +60 -613
  684. data/src/core/ext/xds/xds_bootstrap.cc +221 -122
  685. data/src/core/ext/xds/xds_bootstrap.h +31 -15
  686. data/src/core/ext/xds/xds_certificate_provider.h +2 -2
  687. data/src/core/ext/xds/xds_channel_stack_modifier.cc +16 -20
  688. data/src/core/ext/xds/xds_channel_stack_modifier.h +4 -3
  689. data/src/core/ext/xds/xds_client.cc +794 -1065
  690. data/src/core/ext/xds/xds_client.h +109 -149
  691. data/src/core/ext/xds/xds_client_stats.cc +15 -15
  692. data/src/core/ext/xds/xds_client_stats.h +5 -4
  693. data/src/core/ext/xds/xds_cluster.cc +453 -0
  694. data/src/core/ext/xds/xds_cluster.h +108 -0
  695. data/src/core/ext/xds/xds_common_types.cc +388 -0
  696. data/src/core/ext/xds/xds_common_types.h +95 -0
  697. data/src/core/ext/xds/xds_endpoint.cc +364 -0
  698. data/src/core/ext/xds/xds_endpoint.h +135 -0
  699. data/src/core/ext/xds/xds_http_fault_filter.cc +6 -6
  700. data/src/core/ext/xds/xds_http_fault_filter.h +3 -3
  701. data/src/core/ext/xds/xds_http_filters.cc +11 -5
  702. data/src/core/ext/xds/xds_http_filters.h +4 -4
  703. data/src/core/ext/xds/xds_http_rbac_filter.cc +563 -0
  704. data/src/core/ext/xds/xds_http_rbac_filter.h +54 -0
  705. data/src/core/ext/xds/xds_listener.cc +1039 -0
  706. data/src/core/ext/xds/xds_listener.h +220 -0
  707. data/src/core/ext/xds/xds_resource_type.cc +33 -0
  708. data/src/core/ext/xds/xds_resource_type.h +98 -0
  709. data/src/core/ext/xds/xds_resource_type_impl.h +87 -0
  710. data/src/core/ext/xds/xds_route_config.cc +985 -0
  711. data/src/core/ext/xds/xds_route_config.h +215 -0
  712. data/src/core/ext/xds/xds_routing.cc +250 -0
  713. data/src/core/ext/xds/xds_routing.h +101 -0
  714. data/src/core/ext/xds/xds_server_config_fetcher.cc +1061 -286
  715. data/src/core/lib/address_utils/parse_address.cc +20 -0
  716. data/src/core/lib/address_utils/parse_address.h +5 -0
  717. data/src/core/lib/address_utils/sockaddr_utils.cc +33 -36
  718. data/src/core/lib/address_utils/sockaddr_utils.h +1 -16
  719. data/src/core/lib/avl/avl.h +389 -88
  720. data/src/core/lib/backoff/backoff.cc +9 -38
  721. data/src/core/lib/backoff/backoff.h +11 -11
  722. data/src/core/lib/channel/call_finalization.h +86 -0
  723. data/src/core/lib/channel/channel_args.cc +77 -18
  724. data/src/core/lib/channel/channel_args.h +13 -10
  725. data/src/core/lib/channel/channel_args_preconditioning.cc +48 -0
  726. data/src/core/lib/channel/channel_args_preconditioning.h +62 -0
  727. data/src/core/lib/channel/channel_stack.cc +10 -3
  728. data/src/core/lib/channel/channel_stack.h +42 -6
  729. data/src/core/lib/channel/channel_stack_builder.cc +66 -250
  730. data/src/core/lib/channel/channel_stack_builder.h +95 -147
  731. data/src/core/lib/channel/channel_trace.cc +3 -6
  732. data/src/core/lib/channel/channelz.cc +2 -1
  733. data/src/core/lib/channel/connected_channel.cc +9 -4
  734. data/src/core/lib/channel/connected_channel.h +1 -1
  735. data/src/core/lib/channel/context.h +11 -0
  736. data/src/core/lib/channel/handshaker.cc +1 -1
  737. data/src/core/lib/channel/handshaker.h +1 -1
  738. data/src/core/lib/channel/promise_based_filter.cc +669 -0
  739. data/src/core/lib/channel/promise_based_filter.h +423 -0
  740. data/src/core/lib/compression/compression.cc +20 -112
  741. data/src/core/lib/compression/compression_internal.cc +143 -203
  742. data/src/core/lib/compression/compression_internal.h +64 -69
  743. data/src/core/lib/compression/message_compress.cc +11 -11
  744. data/src/core/lib/compression/message_compress.h +2 -2
  745. data/src/core/lib/config/core_configuration.cc +11 -3
  746. data/src/core/lib/config/core_configuration.h +50 -0
  747. data/src/core/lib/debug/trace.h +2 -2
  748. data/src/core/lib/event_engine/{endpoint_config.cc → channel_args_endpoint_config.cc} +2 -1
  749. data/src/core/lib/event_engine/{endpoint_config_internal.h → channel_args_endpoint_config.h} +3 -3
  750. data/src/core/lib/event_engine/default_event_engine_factory.cc +27 -0
  751. data/src/core/lib/event_engine/event_engine.cc +21 -19
  752. data/src/core/lib/event_engine/event_engine_factory.h +36 -0
  753. data/src/core/lib/event_engine/memory_allocator.cc +66 -0
  754. data/src/core/lib/event_engine/resolved_address.cc +39 -0
  755. data/src/core/lib/gpr/sync_posix.cc +1 -0
  756. data/src/core/lib/gpr/time.cc +2 -1
  757. data/src/core/lib/gpr/tls.h +6 -0
  758. data/src/core/lib/gpr/useful.h +18 -0
  759. data/src/core/lib/gprpp/bitset.h +7 -0
  760. data/src/core/lib/gprpp/capture.h +76 -0
  761. data/src/core/lib/gprpp/chunked_vector.h +45 -3
  762. data/src/core/lib/gprpp/cpp_impl_of.h +45 -0
  763. data/src/core/lib/gprpp/debug_location.h +2 -0
  764. data/src/core/lib/gprpp/global_config_env.cc +7 -7
  765. data/src/core/lib/gprpp/global_config_env.h +2 -2
  766. data/src/core/lib/gprpp/manual_constructor.h +2 -3
  767. data/src/core/lib/gprpp/orphanable.h +1 -1
  768. data/src/core/lib/gprpp/ref_counted.h +1 -1
  769. data/src/core/lib/gprpp/ref_counted_ptr.h +2 -4
  770. data/src/core/lib/gprpp/status_helper.cc +30 -38
  771. data/src/core/lib/gprpp/status_helper.h +6 -19
  772. data/src/core/lib/gprpp/table.h +24 -1
  773. data/src/core/lib/gprpp/time.cc +186 -0
  774. data/src/core/lib/gprpp/time.h +292 -0
  775. data/src/core/lib/http/format_request.cc +27 -23
  776. data/src/core/lib/http/format_request.h +7 -6
  777. data/src/core/lib/http/httpcli.cc +310 -238
  778. data/src/core/lib/http/httpcli.h +183 -88
  779. data/src/core/lib/http/httpcli_security_connector.cc +62 -73
  780. data/src/core/lib/http/httpcli_ssl_credentials.h +37 -0
  781. data/src/core/lib/http/parser.h +1 -1
  782. data/src/core/lib/iomgr/buffer_list.cc +9 -9
  783. data/src/core/lib/iomgr/buffer_list.h +18 -18
  784. data/src/core/lib/iomgr/call_combiner.cc +17 -7
  785. data/src/core/lib/iomgr/closure.h +29 -9
  786. data/src/core/lib/iomgr/combiner.cc +25 -3
  787. data/src/core/lib/iomgr/endpoint.h +0 -1
  788. data/src/core/lib/iomgr/endpoint_cfstream.cc +7 -24
  789. data/src/core/lib/iomgr/endpoint_cfstream.h +4 -4
  790. data/src/core/lib/iomgr/endpoint_pair_posix.cc +9 -11
  791. data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -14
  792. data/src/core/lib/iomgr/error.cc +13 -10
  793. data/src/core/lib/iomgr/error.h +0 -2
  794. data/src/core/lib/iomgr/ev_apple.cc +6 -5
  795. data/src/core/lib/iomgr/ev_epoll1_linux.cc +8 -7
  796. data/src/core/lib/iomgr/ev_epollex_linux.cc +12 -9
  797. data/src/core/lib/iomgr/ev_poll_posix.cc +7 -7
  798. data/src/core/lib/iomgr/ev_posix.cc +3 -3
  799. data/src/core/lib/iomgr/ev_posix.h +1 -1
  800. data/src/core/lib/iomgr/event_engine/endpoint.cc +2 -3
  801. data/src/core/lib/iomgr/event_engine/iomgr.cc +8 -27
  802. data/src/core/lib/iomgr/event_engine/pollset.cc +2 -3
  803. data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +6 -0
  804. data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +2 -0
  805. data/src/core/lib/iomgr/event_engine/resolver.cc +68 -49
  806. data/src/core/lib/iomgr/event_engine/resolver.h +56 -0
  807. data/src/core/lib/iomgr/event_engine/tcp.cc +11 -8
  808. data/src/core/lib/iomgr/event_engine/timer.cc +7 -7
  809. data/src/core/lib/iomgr/exec_ctx.cc +25 -97
  810. data/src/core/lib/iomgr/exec_ctx.h +18 -34
  811. data/src/core/lib/iomgr/executor.cc +22 -16
  812. data/src/core/lib/iomgr/executor.h +1 -1
  813. data/src/core/lib/iomgr/fork_posix.cc +3 -2
  814. data/src/core/lib/iomgr/iocp_windows.cc +9 -9
  815. data/src/core/lib/iomgr/iocp_windows.h +1 -1
  816. data/src/core/lib/iomgr/iomgr_posix.cc +2 -2
  817. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
  818. data/src/core/lib/iomgr/iomgr_windows.cc +2 -2
  819. data/src/core/lib/iomgr/polling_entity.h +6 -0
  820. data/src/core/lib/iomgr/pollset.cc +1 -1
  821. data/src/core/lib/iomgr/pollset.h +4 -4
  822. data/src/core/lib/iomgr/pollset_windows.cc +2 -2
  823. data/src/core/lib/iomgr/port.h +6 -9
  824. data/src/core/lib/iomgr/resolve_address.cc +5 -24
  825. data/src/core/lib/iomgr/resolve_address.h +47 -44
  826. data/src/core/lib/iomgr/resolve_address_impl.h +59 -0
  827. data/src/core/lib/iomgr/resolve_address_posix.cc +83 -67
  828. data/src/core/lib/iomgr/resolve_address_posix.h +47 -0
  829. data/src/core/lib/iomgr/resolve_address_windows.cc +93 -74
  830. data/src/core/lib/iomgr/resolve_address_windows.h +47 -0
  831. data/src/core/lib/iomgr/resolved_address.h +39 -0
  832. data/src/core/lib/iomgr/sockaddr_utils_posix.cc +62 -0
  833. data/src/core/lib/iomgr/socket_utils_common_posix.cc +0 -17
  834. data/src/core/lib/iomgr/tcp_client.cc +3 -5
  835. data/src/core/lib/iomgr/tcp_client.h +4 -5
  836. data/src/core/lib/iomgr/tcp_client_cfstream.cc +2 -10
  837. data/src/core/lib/iomgr/tcp_client_posix.cc +8 -24
  838. data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
  839. data/src/core/lib/iomgr/tcp_client_windows.cc +2 -11
  840. data/src/core/lib/iomgr/tcp_posix.cc +30 -34
  841. data/src/core/lib/iomgr/tcp_posix.h +1 -3
  842. data/src/core/lib/iomgr/tcp_server.cc +4 -6
  843. data/src/core/lib/iomgr/tcp_server.h +6 -8
  844. data/src/core/lib/iomgr/tcp_server_posix.cc +18 -22
  845. data/src/core/lib/iomgr/tcp_server_utils_posix.h +19 -18
  846. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -0
  847. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +1 -0
  848. data/src/core/lib/iomgr/tcp_server_windows.cc +5 -12
  849. data/src/core/lib/iomgr/tcp_windows.cc +19 -17
  850. data/src/core/lib/iomgr/tcp_windows.h +1 -2
  851. data/src/core/lib/iomgr/timer.cc +2 -2
  852. data/src/core/lib/iomgr/timer.h +11 -6
  853. data/src/core/lib/iomgr/timer_generic.cc +96 -77
  854. data/src/core/lib/iomgr/timer_manager.cc +15 -14
  855. data/src/core/lib/iomgr/unix_sockets_posix.cc +22 -34
  856. data/src/core/lib/iomgr/unix_sockets_posix.h +4 -7
  857. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +6 -15
  858. data/src/core/lib/iomgr/work_serializer.cc +120 -44
  859. data/src/core/lib/iomgr/work_serializer.h +16 -4
  860. data/src/core/lib/json/json_reader.cc +83 -35
  861. data/src/core/lib/json/json_util.cc +5 -5
  862. data/src/core/lib/json/json_util.h +2 -2
  863. data/src/core/lib/matchers/matchers.cc +1 -1
  864. data/src/core/lib/promise/activity.cc +121 -0
  865. data/src/core/lib/promise/activity.h +540 -0
  866. data/src/core/lib/promise/arena_promise.h +188 -0
  867. data/src/core/lib/promise/context.h +86 -0
  868. data/src/core/lib/promise/detail/basic_seq.h +496 -0
  869. data/src/core/lib/promise/detail/promise_factory.h +189 -0
  870. data/src/core/lib/promise/detail/promise_like.h +85 -0
  871. data/src/core/lib/promise/detail/status.h +49 -0
  872. data/src/core/lib/promise/detail/switch.h +1455 -0
  873. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +48 -0
  874. data/src/core/lib/promise/loop.h +134 -0
  875. data/src/core/lib/promise/map.h +88 -0
  876. data/src/core/lib/promise/poll.h +66 -0
  877. data/src/core/lib/promise/promise.h +95 -0
  878. data/src/core/lib/promise/race.h +84 -0
  879. data/src/core/lib/promise/seq.h +89 -0
  880. data/src/core/lib/promise/sleep.cc +74 -0
  881. data/src/core/lib/promise/sleep.h +66 -0
  882. data/src/core/lib/promise/try_seq.h +157 -0
  883. data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.cc +17 -25
  884. data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.h +43 -44
  885. data/src/core/{ext/filters/client_channel → lib/resolver}/resolver_factory.h +32 -31
  886. data/src/core/lib/resolver/resolver_registry.cc +156 -0
  887. data/src/core/lib/resolver/resolver_registry.h +113 -0
  888. data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.cc +1 -1
  889. data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.h +4 -4
  890. data/src/core/lib/resource_quota/api.cc +108 -0
  891. data/src/core/lib/resource_quota/api.h +40 -0
  892. data/src/core/lib/{gprpp → resource_quota}/arena.cc +16 -13
  893. data/src/core/lib/{gprpp → resource_quota}/arena.h +24 -13
  894. data/src/core/lib/resource_quota/memory_quota.cc +478 -0
  895. data/src/core/lib/resource_quota/memory_quota.h +457 -0
  896. data/src/core/lib/resource_quota/resource_quota.cc +33 -0
  897. data/src/core/lib/resource_quota/resource_quota.h +58 -0
  898. data/src/core/lib/resource_quota/thread_quota.cc +43 -0
  899. data/src/core/lib/resource_quota/thread_quota.h +57 -0
  900. data/src/core/lib/resource_quota/trace.cc +19 -0
  901. data/src/core/lib/resource_quota/trace.h +24 -0
  902. data/src/core/lib/security/authorization/evaluate_args.cc +37 -38
  903. data/src/core/lib/security/authorization/evaluate_args.h +3 -2
  904. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +60 -0
  905. data/src/core/lib/security/authorization/grpc_authorization_engine.h +62 -0
  906. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +109 -0
  907. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +51 -0
  908. data/src/core/lib/security/authorization/matchers.cc +227 -0
  909. data/src/core/lib/security/authorization/matchers.h +211 -0
  910. data/src/core/lib/security/authorization/rbac_policy.cc +442 -0
  911. data/src/core/lib/security/authorization/rbac_policy.h +171 -0
  912. data/src/core/lib/security/context/security_context.cc +4 -2
  913. data/src/core/lib/security/context/security_context.h +1 -1
  914. data/src/core/lib/security/credentials/alts/alts_credentials.h +6 -0
  915. data/src/core/lib/security/credentials/call_creds_util.cc +87 -0
  916. data/src/core/lib/security/credentials/call_creds_util.h +42 -0
  917. data/src/core/lib/security/credentials/channel_creds_registry.h +97 -0
  918. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +70 -0
  919. data/src/core/lib/security/credentials/composite/composite_credentials.cc +17 -81
  920. data/src/core/lib/security/credentials/composite/composite_credentials.h +21 -9
  921. data/src/core/lib/security/credentials/credentials.cc +2 -3
  922. data/src/core/lib/security/credentials/credentials.h +68 -57
  923. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +48 -33
  924. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -0
  925. data/src/core/lib/security/credentials/external/external_account_credentials.cc +52 -35
  926. data/src/core/lib/security/credentials/external/external_account_credentials.h +5 -9
  927. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +0 -1
  928. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +33 -14
  929. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +1 -0
  930. data/src/core/lib/security/credentials/fake/fake_credentials.cc +18 -18
  931. data/src/core/lib/security/credentials/fake/fake_credentials.h +14 -16
  932. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +17 -16
  933. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +6 -0
  934. data/src/core/lib/security/credentials/iam/iam_credentials.cc +19 -27
  935. data/src/core/lib/security/credentials/iam/iam_credentials.h +11 -9
  936. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +13 -7
  937. data/src/core/lib/security/credentials/jwt/json_token.cc +4 -6
  938. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +28 -44
  939. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +12 -12
  940. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +54 -43
  941. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +1 -1
  942. data/src/core/lib/security/credentials/local/local_credentials.h +6 -0
  943. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +148 -173
  944. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +52 -33
  945. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +95 -153
  946. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +54 -27
  947. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +1 -10
  948. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +6 -3
  949. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +11 -12
  950. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +7 -8
  951. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +201 -0
  952. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +106 -0
  953. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +33 -87
  954. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +36 -83
  955. data/src/core/lib/security/credentials/tls/tls_credentials.cc +21 -10
  956. data/src/core/lib/security/credentials/tls/tls_credentials.h +6 -0
  957. data/src/core/lib/security/credentials/xds/xds_credentials.cc +28 -33
  958. data/src/core/lib/security/credentials/xds/xds_credentials.h +6 -1
  959. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +11 -17
  960. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +3 -3
  961. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +7 -16
  962. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +0 -2
  963. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +8 -18
  964. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +11 -16
  965. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -2
  966. data/src/core/lib/security/security_connector/local/local_security_connector.cc +12 -17
  967. data/src/core/lib/security/security_connector/security_connector.cc +3 -15
  968. data/src/core/lib/security/security_connector/security_connector.h +16 -21
  969. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +6 -11
  970. data/src/core/lib/security/security_connector/ssl_utils.cc +38 -32
  971. data/src/core/lib/security/security_connector/ssl_utils.h +14 -18
  972. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +361 -204
  973. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +70 -47
  974. data/src/core/lib/security/transport/auth_filters.h +37 -4
  975. data/src/core/lib/security/transport/client_auth_filter.cc +87 -358
  976. data/src/core/lib/security/transport/security_handshaker.cc +16 -8
  977. data/src/core/lib/security/transport/server_auth_filter.cc +41 -35
  978. data/src/core/lib/service_config/service_config.h +82 -0
  979. data/src/core/{ext → lib}/service_config/service_config_call_data.h +5 -5
  980. data/src/core/{ext/service_config/service_config.cc → lib/service_config/service_config_impl.cc} +20 -17
  981. data/src/core/{ext/service_config/service_config.h → lib/service_config/service_config_impl.h} +16 -18
  982. data/src/core/{ext → lib}/service_config/service_config_parser.cc +31 -27
  983. data/src/core/{ext → lib}/service_config/service_config_parser.h +39 -30
  984. data/src/core/lib/slice/percent_encoding.cc +30 -86
  985. data/src/core/lib/slice/percent_encoding.h +5 -11
  986. data/src/core/lib/slice/slice.cc +78 -181
  987. data/src/core/lib/slice/slice.h +384 -0
  988. data/src/core/lib/slice/slice_buffer.cc +4 -0
  989. data/src/core/lib/slice/slice_internal.h +12 -31
  990. data/src/core/lib/slice/slice_refcount.cc +18 -0
  991. data/src/core/lib/slice/slice_refcount.h +8 -83
  992. data/src/core/lib/slice/slice_refcount_base.h +21 -133
  993. data/src/core/lib/surface/builtins.cc +6 -6
  994. data/src/core/lib/surface/call.cc +204 -413
  995. data/src/core/lib/surface/call.h +5 -5
  996. data/src/core/lib/surface/channel.cc +67 -99
  997. data/src/core/lib/surface/channel.h +12 -23
  998. data/src/core/lib/surface/channel_init.cc +1 -1
  999. data/src/core/lib/surface/channel_init.h +4 -4
  1000. data/src/core/lib/surface/completion_queue.cc +12 -11
  1001. data/src/core/lib/surface/init.cc +78 -10
  1002. data/src/core/lib/surface/init.h +0 -2
  1003. data/src/core/lib/surface/lame_client.cc +26 -19
  1004. data/src/core/lib/surface/server.cc +44 -72
  1005. data/src/core/lib/surface/server.h +13 -14
  1006. data/src/core/lib/surface/validate_metadata.cc +2 -2
  1007. data/src/core/lib/surface/version.cc +2 -2
  1008. data/src/core/lib/transport/bdp_estimator.cc +10 -11
  1009. data/src/core/lib/transport/bdp_estimator.h +2 -2
  1010. data/src/core/lib/transport/byte_stream.cc +4 -0
  1011. data/src/core/lib/transport/error_utils.cc +5 -3
  1012. data/src/core/lib/transport/error_utils.h +2 -1
  1013. data/src/core/lib/transport/metadata_batch.h +1128 -793
  1014. data/src/core/lib/transport/parsed_metadata.cc +37 -0
  1015. data/src/core/lib/transport/parsed_metadata.h +228 -90
  1016. data/src/core/lib/transport/pid_controller.cc +4 -4
  1017. data/src/core/lib/transport/status_conversion.cc +2 -2
  1018. data/src/core/lib/transport/status_conversion.h +1 -1
  1019. data/src/core/lib/transport/timeout_encoding.cc +204 -67
  1020. data/src/core/lib/transport/timeout_encoding.h +40 -10
  1021. data/src/core/lib/transport/transport.cc +7 -27
  1022. data/src/core/lib/transport/transport.h +88 -4
  1023. data/src/core/lib/transport/transport_impl.h +13 -0
  1024. data/src/core/lib/transport/transport_op_string.cc +5 -47
  1025. data/src/core/lib/uri/uri_parser.cc +237 -63
  1026. data/src/core/lib/uri/uri_parser.h +39 -23
  1027. data/src/core/plugin_registry/grpc_plugin_registry.cc +22 -88
  1028. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +85 -0
  1029. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +28 -23
  1030. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +9 -1
  1031. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +19 -11
  1032. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -2
  1033. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -1
  1034. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -2
  1035. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +2 -2
  1036. data/src/core/tsi/local_transport_security.cc +16 -24
  1037. data/src/core/tsi/local_transport_security.h +1 -4
  1038. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +141 -0
  1039. data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +81 -0
  1040. data/src/core/tsi/ssl/session_cache/ssl_session.h +2 -4
  1041. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +3 -5
  1042. data/src/core/tsi/ssl_transport_security.cc +135 -15
  1043. data/src/core/tsi/ssl_transport_security.h +39 -6
  1044. data/src/ruby/ext/grpc/extconf.rb +10 -3
  1045. data/src/ruby/ext/grpc/rb_channel.c +5 -2
  1046. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +26 -34
  1047. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +39 -51
  1048. data/src/ruby/ext/grpc/rb_server.c +7 -4
  1049. data/src/ruby/lib/grpc/version.rb +1 -1
  1050. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +2 -1
  1051. data/third_party/abseil-cpp/absl/algorithm/container.h +101 -91
  1052. data/third_party/abseil-cpp/absl/base/attributes.h +64 -31
  1053. data/third_party/abseil-cpp/absl/base/config.h +67 -37
  1054. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +1 -26
  1055. data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +48 -0
  1056. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -1
  1057. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +2 -0
  1058. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +69 -0
  1059. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +4 -4
  1060. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +16 -0
  1061. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +4 -4
  1062. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  1063. data/third_party/abseil-cpp/absl/container/fixed_array.h +0 -5
  1064. data/third_party/abseil-cpp/absl/container/inlined_vector.h +105 -97
  1065. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +17 -15
  1066. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +18 -102
  1067. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +37 -78
  1068. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +388 -423
  1069. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +3 -2
  1070. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -8
  1071. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +251 -120
  1072. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +11 -1
  1073. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +12 -11
  1074. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +6 -2
  1075. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +12 -5
  1076. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +110 -0
  1077. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +234 -0
  1078. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +25 -7
  1079. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +8 -2
  1080. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +21 -3
  1081. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +2 -0
  1082. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +2 -0
  1083. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +14 -0
  1084. data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +72 -0
  1085. data/third_party/abseil-cpp/absl/functional/function_ref.h +4 -1
  1086. data/third_party/abseil-cpp/absl/hash/hash.h +22 -0
  1087. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +15 -16
  1088. data/third_party/abseil-cpp/absl/hash/internal/hash.h +88 -37
  1089. data/third_party/abseil-cpp/absl/hash/internal/{wyhash.cc → low_level_hash.cc} +23 -11
  1090. data/third_party/abseil-cpp/absl/hash/internal/{wyhash.h → low_level_hash.h} +14 -12
  1091. data/third_party/abseil-cpp/absl/memory/memory.h +1 -1
  1092. data/third_party/abseil-cpp/absl/meta/type_traits.h +32 -2
  1093. data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -10
  1094. data/third_party/abseil-cpp/absl/numeric/int128.h +146 -73
  1095. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +19 -25
  1096. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +73 -70
  1097. data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.cc +4 -4
  1098. data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.h +6 -6
  1099. data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +230 -0
  1100. data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +200 -0
  1101. data/third_party/abseil-cpp/absl/random/beta_distribution.h +427 -0
  1102. data/third_party/abseil-cpp/absl/random/discrete_distribution.cc +98 -0
  1103. data/third_party/abseil-cpp/absl/random/discrete_distribution.h +247 -0
  1104. data/third_party/abseil-cpp/absl/random/distributions.h +452 -0
  1105. data/third_party/abseil-cpp/absl/random/exponential_distribution.h +165 -0
  1106. data/third_party/abseil-cpp/absl/random/gaussian_distribution.cc +104 -0
  1107. data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +275 -0
  1108. data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +92 -0
  1109. data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +268 -0
  1110. data/third_party/abseil-cpp/absl/random/internal/fastmath.h +57 -0
  1111. data/third_party/abseil-cpp/absl/random/internal/generate_real.h +144 -0
  1112. data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +245 -0
  1113. data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +150 -0
  1114. data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +308 -0
  1115. data/third_party/abseil-cpp/absl/random/internal/platform.h +171 -0
  1116. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +253 -0
  1117. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +131 -0
  1118. data/third_party/abseil-cpp/absl/random/internal/randen.cc +91 -0
  1119. data/third_party/abseil-cpp/absl/random/internal/randen.h +102 -0
  1120. data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +221 -0
  1121. data/third_party/abseil-cpp/absl/random/internal/randen_detect.h +33 -0
  1122. data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +239 -0
  1123. data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +526 -0
  1124. data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h +50 -0
  1125. data/third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc +462 -0
  1126. data/third_party/abseil-cpp/absl/random/internal/randen_slow.cc +471 -0
  1127. data/third_party/abseil-cpp/absl/random/internal/randen_slow.h +40 -0
  1128. data/third_party/abseil-cpp/absl/random/internal/randen_traits.h +88 -0
  1129. data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +167 -0
  1130. data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +267 -0
  1131. data/third_party/abseil-cpp/absl/random/internal/seed_material.h +104 -0
  1132. data/third_party/abseil-cpp/absl/random/internal/traits.h +101 -0
  1133. data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +244 -0
  1134. data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +111 -0
  1135. data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +257 -0
  1136. data/third_party/abseil-cpp/absl/random/poisson_distribution.h +258 -0
  1137. data/third_party/abseil-cpp/absl/random/random.h +189 -0
  1138. data/third_party/abseil-cpp/absl/random/seed_gen_exception.cc +46 -0
  1139. data/third_party/abseil-cpp/absl/random/seed_gen_exception.h +55 -0
  1140. data/third_party/abseil-cpp/absl/random/seed_sequences.cc +29 -0
  1141. data/third_party/abseil-cpp/absl/random/seed_sequences.h +110 -0
  1142. data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +275 -0
  1143. data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +202 -0
  1144. data/third_party/abseil-cpp/absl/random/zipf_distribution.h +271 -0
  1145. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +5 -5
  1146. data/third_party/abseil-cpp/absl/status/status.cc +9 -17
  1147. data/third_party/abseil-cpp/absl/status/status.h +19 -15
  1148. data/third_party/abseil-cpp/absl/status/statusor.cc +34 -2
  1149. data/third_party/abseil-cpp/absl/status/statusor.h +31 -21
  1150. data/third_party/abseil-cpp/absl/strings/charconv.cc +3 -3
  1151. data/third_party/abseil-cpp/absl/strings/charconv.h +3 -2
  1152. data/third_party/abseil-cpp/absl/strings/cord.cc +453 -359
  1153. data/third_party/abseil-cpp/absl/strings/cord.h +197 -70
  1154. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +1 -1
  1155. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +6 -0
  1156. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +140 -63
  1157. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +1128 -0
  1158. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +939 -0
  1159. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +185 -0
  1160. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +265 -0
  1161. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +68 -0
  1162. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +211 -0
  1163. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +129 -0
  1164. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +50 -0
  1165. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +7 -7
  1166. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +55 -181
  1167. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +42 -24
  1168. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +4 -0
  1169. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +96 -0
  1170. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +85 -0
  1171. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +139 -0
  1172. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +131 -0
  1173. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +445 -0
  1174. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +298 -0
  1175. data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +87 -0
  1176. data/third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h +71 -0
  1177. data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +121 -0
  1178. data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +48 -2
  1179. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +8 -0
  1180. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +3 -4
  1181. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +1 -1
  1182. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +6 -6
  1183. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +36 -18
  1184. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +62 -73
  1185. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +24 -16
  1186. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +35 -35
  1187. data/third_party/abseil-cpp/absl/strings/numbers.cc +1 -1
  1188. data/third_party/abseil-cpp/absl/strings/numbers.h +34 -0
  1189. data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
  1190. data/third_party/abseil-cpp/absl/strings/str_format.h +1 -2
  1191. data/third_party/abseil-cpp/absl/strings/string_view.cc +16 -21
  1192. data/third_party/abseil-cpp/absl/strings/string_view.h +120 -39
  1193. data/third_party/abseil-cpp/absl/strings/substitute.cc +2 -1
  1194. data/third_party/abseil-cpp/absl/strings/substitute.h +99 -74
  1195. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +25 -15
  1196. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +5 -3
  1197. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -1
  1198. data/third_party/abseil-cpp/absl/synchronization/mutex.h +3 -3
  1199. data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -3
  1200. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +93 -20
  1201. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
  1202. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +2 -1
  1203. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +83 -21
  1204. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +49 -0
  1205. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +1 -1
  1206. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -3
  1207. data/third_party/abseil-cpp/absl/time/time.h +67 -36
  1208. data/third_party/abseil-cpp/absl/types/bad_optional_access.h +1 -1
  1209. data/third_party/abseil-cpp/absl/types/bad_variant_access.h +2 -2
  1210. data/third_party/abseil-cpp/absl/types/span.h +3 -3
  1211. data/third_party/boringssl-with-bazel/err_data.c +681 -677
  1212. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +19 -11
  1213. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +41 -30
  1214. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +1 -1
  1215. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +59 -47
  1216. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +24 -28
  1217. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +5 -0
  1218. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +28 -0
  1219. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +48 -272
  1220. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -0
  1221. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +8 -6
  1222. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +13 -0
  1223. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +3 -1
  1224. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +21 -0
  1225. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +2 -2
  1226. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +12 -0
  1227. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +1 -2
  1228. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +7 -7
  1229. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +2 -2
  1230. data/third_party/boringssl-with-bazel/src/crypto/mem.c +18 -0
  1231. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +29 -0
  1232. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +0 -1
  1233. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +1 -1
  1234. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +1 -1
  1235. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +5 -1
  1236. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +59 -23
  1237. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +2 -18
  1238. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +8 -2
  1239. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +216 -11
  1240. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +1 -1
  1241. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +1 -1
  1242. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +1 -1
  1243. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +1 -1
  1244. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +1 -1
  1245. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +1 -1
  1246. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +1 -0
  1247. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +0 -1
  1248. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +21 -4
  1249. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +971 -253
  1250. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +3 -3
  1251. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +0 -1
  1252. data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +8 -0
  1253. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +13 -1
  1254. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -12
  1255. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +27 -41
  1256. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +12 -27
  1257. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +8 -10
  1258. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +29 -55
  1259. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +1 -1
  1260. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +12 -13
  1261. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +6 -1
  1262. data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +7 -1
  1263. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +24 -28
  1264. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +29 -11
  1265. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +12 -43
  1266. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +4 -3
  1267. data/third_party/boringssl-with-bazel/src/ssl/internal.h +3 -3
  1268. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +4 -0
  1269. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +4 -0
  1270. data/third_party/cares/cares/{ares.h → include/ares.h} +73 -1
  1271. data/third_party/cares/cares/{ares_dns.h → include/ares_dns.h} +9 -0
  1272. data/third_party/cares/cares/{ares_rules.h → include/ares_rules.h} +0 -0
  1273. data/third_party/cares/cares/{ares_version.h → include/ares_version.h} +3 -3
  1274. data/third_party/cares/cares/{ares__close_sockets.c → src/lib/ares__close_sockets.c} +2 -2
  1275. data/third_party/cares/cares/{ares__get_hostent.c → src/lib/ares__get_hostent.c} +1 -2
  1276. data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +260 -0
  1277. data/third_party/cares/cares/{ares__read_line.c → src/lib/ares__read_line.c} +0 -0
  1278. data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +264 -0
  1279. data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +499 -0
  1280. data/third_party/cares/cares/{ares__timeval.c → src/lib/ares__timeval.c} +0 -0
  1281. data/third_party/cares/cares/src/lib/ares_android.c +444 -0
  1282. data/third_party/cares/cares/src/lib/ares_android.h +27 -0
  1283. data/third_party/cares/cares/{ares_cancel.c → src/lib/ares_cancel.c} +0 -0
  1284. data/third_party/cares/cares/{ares_create_query.c → src/lib/ares_create_query.c} +8 -17
  1285. data/third_party/cares/cares/{ares_data.c → src/lib/ares_data.c} +18 -0
  1286. data/third_party/cares/cares/{ares_data.h → src/lib/ares_data.h} +2 -0
  1287. data/third_party/cares/cares/{ares_destroy.c → src/lib/ares_destroy.c} +0 -0
  1288. data/third_party/cares/cares/{ares_expand_name.c → src/lib/ares_expand_name.c} +114 -23
  1289. data/third_party/cares/cares/{ares_expand_string.c → src/lib/ares_expand_string.c} +2 -5
  1290. data/third_party/cares/cares/{ares_fds.c → src/lib/ares_fds.c} +0 -0
  1291. data/third_party/cares/cares/{ares_free_hostent.c → src/lib/ares_free_hostent.c} +6 -4
  1292. data/third_party/cares/cares/{ares_free_string.c → src/lib/ares_free_string.c} +0 -0
  1293. data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +59 -0
  1294. data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +772 -0
  1295. data/third_party/cares/cares/{ares_getenv.c → src/lib/ares_getenv.c} +0 -2
  1296. data/third_party/cares/cares/{ares_getenv.h → src/lib/ares_getenv.h} +0 -0
  1297. data/third_party/cares/cares/{ares_gethostbyaddr.c → src/lib/ares_gethostbyaddr.c} +2 -9
  1298. data/third_party/cares/cares/{ares_gethostbyname.c → src/lib/ares_gethostbyname.c} +25 -20
  1299. data/third_party/cares/cares/{ares_getnameinfo.c → src/lib/ares_getnameinfo.c} +4 -10
  1300. data/third_party/cares/cares/{ares_getsock.c → src/lib/ares_getsock.c} +0 -0
  1301. data/third_party/cares/cares/{ares_inet_net_pton.h → src/lib/ares_inet_net_pton.h} +0 -0
  1302. data/third_party/cares/cares/{ares_init.c → src/lib/ares_init.c} +79 -40
  1303. data/third_party/cares/cares/{ares_iphlpapi.h → src/lib/ares_iphlpapi.h} +0 -0
  1304. data/third_party/cares/cares/{ares_ipv6.h → src/lib/ares_ipv6.h} +7 -0
  1305. data/third_party/cares/cares/{ares_library_init.c → src/lib/ares_library_init.c} +7 -2
  1306. data/third_party/cares/cares/{ares_library_init.h → src/lib/ares_library_init.h} +1 -1
  1307. data/third_party/cares/cares/{ares_llist.c → src/lib/ares_llist.c} +0 -0
  1308. data/third_party/cares/cares/{ares_llist.h → src/lib/ares_llist.h} +0 -0
  1309. data/third_party/cares/cares/{ares_mkquery.c → src/lib/ares_mkquery.c} +0 -0
  1310. data/third_party/cares/cares/src/lib/ares_nameser.h +482 -0
  1311. data/third_party/cares/cares/{ares_nowarn.c → src/lib/ares_nowarn.c} +0 -0
  1312. data/third_party/cares/cares/{ares_nowarn.h → src/lib/ares_nowarn.h} +0 -0
  1313. data/third_party/cares/cares/{ares_options.c → src/lib/ares_options.c} +0 -0
  1314. data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +209 -0
  1315. data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +212 -0
  1316. data/third_party/cares/cares/src/lib/ares_parse_caa_reply.c +199 -0
  1317. data/third_party/cares/cares/{ares_parse_mx_reply.c → src/lib/ares_parse_mx_reply.c} +2 -8
  1318. data/third_party/cares/cares/{ares_parse_naptr_reply.c → src/lib/ares_parse_naptr_reply.c} +2 -13
  1319. data/third_party/cares/cares/{ares_parse_ns_reply.c → src/lib/ares_parse_ns_reply.c} +5 -11
  1320. data/third_party/cares/cares/{ares_parse_ptr_reply.c → src/lib/ares_parse_ptr_reply.c} +53 -46
  1321. data/third_party/cares/cares/src/lib/ares_parse_soa_reply.c +179 -0
  1322. data/third_party/cares/cares/{ares_parse_srv_reply.c → src/lib/ares_parse_srv_reply.c} +2 -13
  1323. data/third_party/cares/cares/{ares_parse_txt_reply.c → src/lib/ares_parse_txt_reply.c} +3 -9
  1324. data/third_party/cares/cares/{ares_platform.c → src/lib/ares_platform.c} +0 -0
  1325. data/third_party/cares/cares/{ares_platform.h → src/lib/ares_platform.h} +0 -0
  1326. data/third_party/cares/cares/{ares_private.h → src/lib/ares_private.h} +52 -11
  1327. data/third_party/cares/cares/{ares_process.c → src/lib/ares_process.c} +127 -52
  1328. data/third_party/cares/cares/{ares_query.c → src/lib/ares_query.c} +3 -9
  1329. data/third_party/cares/cares/{ares_search.c → src/lib/ares_search.c} +5 -7
  1330. data/third_party/cares/cares/{ares_send.c → src/lib/ares_send.c} +2 -8
  1331. data/third_party/cares/cares/{ares_setup.h → src/lib/ares_setup.h} +4 -1
  1332. data/third_party/cares/cares/{ares_strcasecmp.c → src/lib/ares_strcasecmp.c} +0 -0
  1333. data/third_party/cares/cares/{ares_strcasecmp.h → src/lib/ares_strcasecmp.h} +0 -0
  1334. data/third_party/cares/cares/{ares_strdup.c → src/lib/ares_strdup.c} +0 -0
  1335. data/third_party/cares/cares/{ares_strdup.h → src/lib/ares_strdup.h} +0 -0
  1336. data/third_party/cares/cares/{ares_strerror.c → src/lib/ares_strerror.c} +0 -0
  1337. data/third_party/cares/cares/{ares_strsplit.c → src/lib/ares_strsplit.c} +4 -0
  1338. data/third_party/cares/cares/{ares_strsplit.h → src/lib/ares_strsplit.h} +0 -0
  1339. data/third_party/cares/cares/{ares_timeout.c → src/lib/ares_timeout.c} +0 -0
  1340. data/third_party/cares/cares/{ares_version.c → src/lib/ares_version.c} +0 -0
  1341. data/third_party/cares/cares/{ares_writev.c → src/lib/ares_writev.c} +0 -0
  1342. data/third_party/cares/cares/src/lib/ares_writev.h +36 -0
  1343. data/third_party/cares/cares/{bitncmp.c → src/lib/bitncmp.c} +0 -0
  1344. data/third_party/cares/cares/{bitncmp.h → src/lib/bitncmp.h} +0 -0
  1345. data/third_party/cares/cares/src/lib/config-dos.h +115 -0
  1346. data/third_party/cares/cares/{config-win32.h → src/lib/config-win32.h} +0 -0
  1347. data/third_party/cares/cares/{inet_net_pton.c → src/lib/inet_net_pton.c} +2 -8
  1348. data/third_party/cares/cares/{inet_ntop.c → src/lib/inet_ntop.c} +2 -8
  1349. data/third_party/cares/cares/{setup_once.h → src/lib/setup_once.h} +0 -0
  1350. data/third_party/cares/cares/{windows_port.c → src/lib/windows_port.c} +0 -0
  1351. data/third_party/upb/third_party/utf8_range/naive.c +92 -0
  1352. data/third_party/upb/third_party/utf8_range/range2-neon.c +157 -0
  1353. data/third_party/upb/third_party/utf8_range/range2-sse.c +170 -0
  1354. data/third_party/upb/third_party/utf8_range/utf8_range.h +9 -0
  1355. data/third_party/upb/upb/decode.c +716 -378
  1356. data/third_party/upb/upb/decode.h +43 -17
  1357. data/third_party/upb/upb/decode_fast.c +303 -301
  1358. data/third_party/upb/upb/decode_fast.h +18 -18
  1359. data/third_party/upb/upb/decode_internal.h +73 -55
  1360. data/third_party/upb/upb/def.c +2009 -979
  1361. data/third_party/upb/upb/def.h +321 -258
  1362. data/third_party/upb/upb/def.hpp +139 -169
  1363. data/third_party/upb/upb/encode.c +261 -174
  1364. data/third_party/upb/upb/encode.h +15 -17
  1365. data/third_party/upb/upb/msg.c +154 -121
  1366. data/third_party/upb/upb/msg.h +40 -33
  1367. data/third_party/upb/upb/msg_internal.h +381 -250
  1368. data/third_party/upb/upb/reflection.c +292 -212
  1369. data/third_party/upb/upb/reflection.h +91 -67
  1370. data/third_party/upb/upb/reflection.hpp +6 -6
  1371. data/third_party/upb/upb/table.c +222 -142
  1372. data/third_party/upb/upb/table_internal.h +128 -96
  1373. data/third_party/upb/upb/text_encode.c +114 -91
  1374. data/third_party/upb/upb/text_encode.h +10 -10
  1375. data/third_party/upb/upb/upb.c +118 -71
  1376. data/third_party/upb/upb/upb.h +120 -144
  1377. data/third_party/upb/upb/upb.hpp +31 -28
  1378. data/third_party/upb/upb/upb_internal.h +21 -11
  1379. data/third_party/xxhash/xxhash.h +607 -352
  1380. metadata +476 -213
  1381. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +0 -44
  1382. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +0 -83
  1383. data/src/core/ext/filters/client_channel/resolver_registry.cc +0 -195
  1384. data/src/core/ext/filters/client_channel/resolver_registry.h +0 -89
  1385. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +0 -119
  1386. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +0 -95
  1387. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +0 -189
  1388. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +0 -53
  1389. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +0 -83
  1390. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +0 -125
  1391. data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +0 -37
  1392. data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +0 -107
  1393. data/src/core/ext/transport/chttp2/transport/hpack_utils.cc +0 -46
  1394. data/src/core/ext/transport/chttp2/transport/popularity_count.h +0 -60
  1395. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +0 -27
  1396. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +0 -62
  1397. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +0 -27
  1398. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +0 -62
  1399. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +0 -27
  1400. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +0 -62
  1401. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +0 -27
  1402. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +0 -62
  1403. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +0 -27
  1404. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +0 -62
  1405. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +0 -72
  1406. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +0 -35
  1407. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +0 -73
  1408. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +0 -35
  1409. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +0 -72
  1410. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +0 -35
  1411. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +0 -80
  1412. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +0 -35
  1413. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +0 -74
  1414. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +0 -35
  1415. data/src/core/lib/avl/avl.cc +0 -306
  1416. data/src/core/lib/compression/algorithm_metadata.h +0 -62
  1417. data/src/core/lib/compression/compression_args.cc +0 -138
  1418. data/src/core/lib/compression/compression_args.h +0 -56
  1419. data/src/core/lib/compression/stream_compression.cc +0 -81
  1420. data/src/core/lib/compression/stream_compression.h +0 -117
  1421. data/src/core/lib/compression/stream_compression_gzip.cc +0 -231
  1422. data/src/core/lib/compression/stream_compression_gzip.h +0 -28
  1423. data/src/core/lib/compression/stream_compression_identity.cc +0 -91
  1424. data/src/core/lib/compression/stream_compression_identity.h +0 -29
  1425. data/src/core/lib/gprpp/match.h +0 -73
  1426. data/src/core/lib/gprpp/overload.h +0 -59
  1427. data/src/core/lib/iomgr/event_engine/iomgr.h +0 -42
  1428. data/src/core/lib/iomgr/iomgr_custom.cc +0 -79
  1429. data/src/core/lib/iomgr/iomgr_custom.h +0 -49
  1430. data/src/core/lib/iomgr/pollset_custom.cc +0 -105
  1431. data/src/core/lib/iomgr/pollset_custom.h +0 -37
  1432. data/src/core/lib/iomgr/pollset_set_custom.cc +0 -47
  1433. data/src/core/lib/iomgr/pollset_set_custom.h +0 -26
  1434. data/src/core/lib/iomgr/resolve_address_custom.cc +0 -169
  1435. data/src/core/lib/iomgr/resolve_address_custom.h +0 -44
  1436. data/src/core/lib/iomgr/resource_quota.cc +0 -1106
  1437. data/src/core/lib/iomgr/resource_quota.h +0 -226
  1438. data/src/core/lib/iomgr/tcp_client_custom.cc +0 -152
  1439. data/src/core/lib/iomgr/tcp_custom.cc +0 -377
  1440. data/src/core/lib/iomgr/tcp_custom.h +0 -86
  1441. data/src/core/lib/iomgr/tcp_server_custom.cc +0 -467
  1442. data/src/core/lib/iomgr/timer_custom.cc +0 -96
  1443. data/src/core/lib/iomgr/timer_custom.h +0 -43
  1444. data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +0 -171
  1445. data/src/core/lib/security/authorization/sdk_server_authz_filter.h +0 -67
  1446. data/src/core/lib/security/credentials/credentials_metadata.cc +0 -61
  1447. data/src/core/lib/slice/slice_intern.cc +0 -367
  1448. data/src/core/lib/slice/slice_utils.h +0 -200
  1449. data/src/core/lib/slice/static_slice.cc +0 -529
  1450. data/src/core/lib/slice/static_slice.h +0 -331
  1451. data/src/core/lib/surface/init_secure.cc +0 -103
  1452. data/src/core/lib/transport/metadata.cc +0 -714
  1453. data/src/core/lib/transport/metadata.h +0 -449
  1454. data/src/core/lib/transport/metadata_batch.cc +0 -94
  1455. data/src/core/lib/transport/static_metadata.cc +0 -1117
  1456. data/src/core/lib/transport/static_metadata.h +0 -340
  1457. data/src/core/lib/transport/status_metadata.cc +0 -63
  1458. data/src/core/lib/transport/status_metadata.h +0 -48
  1459. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +0 -93
  1460. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +0 -217
  1461. data/third_party/cares/cares/ares_getopt.c +0 -122
  1462. data/third_party/cares/cares/ares_getopt.h +0 -53
  1463. data/third_party/cares/cares/ares_parse_a_reply.c +0 -264
  1464. data/third_party/cares/cares/ares_parse_aaaa_reply.c +0 -264
  1465. data/third_party/cares/cares/ares_parse_soa_reply.c +0 -133
@@ -0,0 +1,1455 @@
1
+ /*
2
+ * Copyright 2021 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
+ * Automatically generated by tools/codegen/core/gen_switch.py
19
+ */
20
+
21
+ #ifndef GRPC_CORE_LIB_PROMISE_DETAIL_SWITCH_H
22
+ #define GRPC_CORE_LIB_PROMISE_DETAIL_SWITCH_H
23
+
24
+ #include <grpc/support/port_platform.h>
25
+
26
+ #include <stdlib.h>
27
+
28
+ namespace grpc_core {
29
+
30
+ template <typename R, typename F0>
31
+ R Switch(char idx, F0 f0) {
32
+ switch (idx) {
33
+ case 0:
34
+ return f0();
35
+ }
36
+ abort();
37
+ }
38
+
39
+ template <typename R, typename F0, typename F1>
40
+ R Switch(char idx, F0 f0, F1 f1) {
41
+ switch (idx) {
42
+ case 0:
43
+ return f0();
44
+ case 1:
45
+ return f1();
46
+ }
47
+ abort();
48
+ }
49
+
50
+ template <typename R, typename F0, typename F1, typename F2>
51
+ R Switch(char idx, F0 f0, F1 f1, F2 f2) {
52
+ switch (idx) {
53
+ case 0:
54
+ return f0();
55
+ case 1:
56
+ return f1();
57
+ case 2:
58
+ return f2();
59
+ }
60
+ abort();
61
+ }
62
+
63
+ template <typename R, typename F0, typename F1, typename F2, typename F3>
64
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3) {
65
+ switch (idx) {
66
+ case 0:
67
+ return f0();
68
+ case 1:
69
+ return f1();
70
+ case 2:
71
+ return f2();
72
+ case 3:
73
+ return f3();
74
+ }
75
+ abort();
76
+ }
77
+
78
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
79
+ typename F4>
80
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4) {
81
+ switch (idx) {
82
+ case 0:
83
+ return f0();
84
+ case 1:
85
+ return f1();
86
+ case 2:
87
+ return f2();
88
+ case 3:
89
+ return f3();
90
+ case 4:
91
+ return f4();
92
+ }
93
+ abort();
94
+ }
95
+
96
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
97
+ typename F4, typename F5>
98
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5) {
99
+ switch (idx) {
100
+ case 0:
101
+ return f0();
102
+ case 1:
103
+ return f1();
104
+ case 2:
105
+ return f2();
106
+ case 3:
107
+ return f3();
108
+ case 4:
109
+ return f4();
110
+ case 5:
111
+ return f5();
112
+ }
113
+ abort();
114
+ }
115
+
116
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
117
+ typename F4, typename F5, typename F6>
118
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6) {
119
+ switch (idx) {
120
+ case 0:
121
+ return f0();
122
+ case 1:
123
+ return f1();
124
+ case 2:
125
+ return f2();
126
+ case 3:
127
+ return f3();
128
+ case 4:
129
+ return f4();
130
+ case 5:
131
+ return f5();
132
+ case 6:
133
+ return f6();
134
+ }
135
+ abort();
136
+ }
137
+
138
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
139
+ typename F4, typename F5, typename F6, typename F7>
140
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7) {
141
+ switch (idx) {
142
+ case 0:
143
+ return f0();
144
+ case 1:
145
+ return f1();
146
+ case 2:
147
+ return f2();
148
+ case 3:
149
+ return f3();
150
+ case 4:
151
+ return f4();
152
+ case 5:
153
+ return f5();
154
+ case 6:
155
+ return f6();
156
+ case 7:
157
+ return f7();
158
+ }
159
+ abort();
160
+ }
161
+
162
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
163
+ typename F4, typename F5, typename F6, typename F7, typename F8>
164
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
165
+ F8 f8) {
166
+ switch (idx) {
167
+ case 0:
168
+ return f0();
169
+ case 1:
170
+ return f1();
171
+ case 2:
172
+ return f2();
173
+ case 3:
174
+ return f3();
175
+ case 4:
176
+ return f4();
177
+ case 5:
178
+ return f5();
179
+ case 6:
180
+ return f6();
181
+ case 7:
182
+ return f7();
183
+ case 8:
184
+ return f8();
185
+ }
186
+ abort();
187
+ }
188
+
189
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
190
+ typename F4, typename F5, typename F6, typename F7, typename F8,
191
+ typename F9>
192
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
193
+ F8 f8, F9 f9) {
194
+ switch (idx) {
195
+ case 0:
196
+ return f0();
197
+ case 1:
198
+ return f1();
199
+ case 2:
200
+ return f2();
201
+ case 3:
202
+ return f3();
203
+ case 4:
204
+ return f4();
205
+ case 5:
206
+ return f5();
207
+ case 6:
208
+ return f6();
209
+ case 7:
210
+ return f7();
211
+ case 8:
212
+ return f8();
213
+ case 9:
214
+ return f9();
215
+ }
216
+ abort();
217
+ }
218
+
219
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
220
+ typename F4, typename F5, typename F6, typename F7, typename F8,
221
+ typename F9, typename F10>
222
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
223
+ F8 f8, F9 f9, F10 f10) {
224
+ switch (idx) {
225
+ case 0:
226
+ return f0();
227
+ case 1:
228
+ return f1();
229
+ case 2:
230
+ return f2();
231
+ case 3:
232
+ return f3();
233
+ case 4:
234
+ return f4();
235
+ case 5:
236
+ return f5();
237
+ case 6:
238
+ return f6();
239
+ case 7:
240
+ return f7();
241
+ case 8:
242
+ return f8();
243
+ case 9:
244
+ return f9();
245
+ case 10:
246
+ return f10();
247
+ }
248
+ abort();
249
+ }
250
+
251
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
252
+ typename F4, typename F5, typename F6, typename F7, typename F8,
253
+ typename F9, typename F10, typename F11>
254
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
255
+ F8 f8, F9 f9, F10 f10, F11 f11) {
256
+ switch (idx) {
257
+ case 0:
258
+ return f0();
259
+ case 1:
260
+ return f1();
261
+ case 2:
262
+ return f2();
263
+ case 3:
264
+ return f3();
265
+ case 4:
266
+ return f4();
267
+ case 5:
268
+ return f5();
269
+ case 6:
270
+ return f6();
271
+ case 7:
272
+ return f7();
273
+ case 8:
274
+ return f8();
275
+ case 9:
276
+ return f9();
277
+ case 10:
278
+ return f10();
279
+ case 11:
280
+ return f11();
281
+ }
282
+ abort();
283
+ }
284
+
285
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
286
+ typename F4, typename F5, typename F6, typename F7, typename F8,
287
+ typename F9, typename F10, typename F11, typename F12>
288
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
289
+ F8 f8, F9 f9, F10 f10, F11 f11, F12 f12) {
290
+ switch (idx) {
291
+ case 0:
292
+ return f0();
293
+ case 1:
294
+ return f1();
295
+ case 2:
296
+ return f2();
297
+ case 3:
298
+ return f3();
299
+ case 4:
300
+ return f4();
301
+ case 5:
302
+ return f5();
303
+ case 6:
304
+ return f6();
305
+ case 7:
306
+ return f7();
307
+ case 8:
308
+ return f8();
309
+ case 9:
310
+ return f9();
311
+ case 10:
312
+ return f10();
313
+ case 11:
314
+ return f11();
315
+ case 12:
316
+ return f12();
317
+ }
318
+ abort();
319
+ }
320
+
321
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
322
+ typename F4, typename F5, typename F6, typename F7, typename F8,
323
+ typename F9, typename F10, typename F11, typename F12, typename F13>
324
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
325
+ F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13) {
326
+ switch (idx) {
327
+ case 0:
328
+ return f0();
329
+ case 1:
330
+ return f1();
331
+ case 2:
332
+ return f2();
333
+ case 3:
334
+ return f3();
335
+ case 4:
336
+ return f4();
337
+ case 5:
338
+ return f5();
339
+ case 6:
340
+ return f6();
341
+ case 7:
342
+ return f7();
343
+ case 8:
344
+ return f8();
345
+ case 9:
346
+ return f9();
347
+ case 10:
348
+ return f10();
349
+ case 11:
350
+ return f11();
351
+ case 12:
352
+ return f12();
353
+ case 13:
354
+ return f13();
355
+ }
356
+ abort();
357
+ }
358
+
359
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
360
+ typename F4, typename F5, typename F6, typename F7, typename F8,
361
+ typename F9, typename F10, typename F11, typename F12, typename F13,
362
+ typename F14>
363
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
364
+ F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14) {
365
+ switch (idx) {
366
+ case 0:
367
+ return f0();
368
+ case 1:
369
+ return f1();
370
+ case 2:
371
+ return f2();
372
+ case 3:
373
+ return f3();
374
+ case 4:
375
+ return f4();
376
+ case 5:
377
+ return f5();
378
+ case 6:
379
+ return f6();
380
+ case 7:
381
+ return f7();
382
+ case 8:
383
+ return f8();
384
+ case 9:
385
+ return f9();
386
+ case 10:
387
+ return f10();
388
+ case 11:
389
+ return f11();
390
+ case 12:
391
+ return f12();
392
+ case 13:
393
+ return f13();
394
+ case 14:
395
+ return f14();
396
+ }
397
+ abort();
398
+ }
399
+
400
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
401
+ typename F4, typename F5, typename F6, typename F7, typename F8,
402
+ typename F9, typename F10, typename F11, typename F12, typename F13,
403
+ typename F14, typename F15>
404
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
405
+ F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15) {
406
+ switch (idx) {
407
+ case 0:
408
+ return f0();
409
+ case 1:
410
+ return f1();
411
+ case 2:
412
+ return f2();
413
+ case 3:
414
+ return f3();
415
+ case 4:
416
+ return f4();
417
+ case 5:
418
+ return f5();
419
+ case 6:
420
+ return f6();
421
+ case 7:
422
+ return f7();
423
+ case 8:
424
+ return f8();
425
+ case 9:
426
+ return f9();
427
+ case 10:
428
+ return f10();
429
+ case 11:
430
+ return f11();
431
+ case 12:
432
+ return f12();
433
+ case 13:
434
+ return f13();
435
+ case 14:
436
+ return f14();
437
+ case 15:
438
+ return f15();
439
+ }
440
+ abort();
441
+ }
442
+
443
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
444
+ typename F4, typename F5, typename F6, typename F7, typename F8,
445
+ typename F9, typename F10, typename F11, typename F12, typename F13,
446
+ typename F14, typename F15, typename F16>
447
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
448
+ F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
449
+ F16 f16) {
450
+ switch (idx) {
451
+ case 0:
452
+ return f0();
453
+ case 1:
454
+ return f1();
455
+ case 2:
456
+ return f2();
457
+ case 3:
458
+ return f3();
459
+ case 4:
460
+ return f4();
461
+ case 5:
462
+ return f5();
463
+ case 6:
464
+ return f6();
465
+ case 7:
466
+ return f7();
467
+ case 8:
468
+ return f8();
469
+ case 9:
470
+ return f9();
471
+ case 10:
472
+ return f10();
473
+ case 11:
474
+ return f11();
475
+ case 12:
476
+ return f12();
477
+ case 13:
478
+ return f13();
479
+ case 14:
480
+ return f14();
481
+ case 15:
482
+ return f15();
483
+ case 16:
484
+ return f16();
485
+ }
486
+ abort();
487
+ }
488
+
489
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
490
+ typename F4, typename F5, typename F6, typename F7, typename F8,
491
+ typename F9, typename F10, typename F11, typename F12, typename F13,
492
+ typename F14, typename F15, typename F16, typename F17>
493
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
494
+ F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
495
+ F16 f16, F17 f17) {
496
+ switch (idx) {
497
+ case 0:
498
+ return f0();
499
+ case 1:
500
+ return f1();
501
+ case 2:
502
+ return f2();
503
+ case 3:
504
+ return f3();
505
+ case 4:
506
+ return f4();
507
+ case 5:
508
+ return f5();
509
+ case 6:
510
+ return f6();
511
+ case 7:
512
+ return f7();
513
+ case 8:
514
+ return f8();
515
+ case 9:
516
+ return f9();
517
+ case 10:
518
+ return f10();
519
+ case 11:
520
+ return f11();
521
+ case 12:
522
+ return f12();
523
+ case 13:
524
+ return f13();
525
+ case 14:
526
+ return f14();
527
+ case 15:
528
+ return f15();
529
+ case 16:
530
+ return f16();
531
+ case 17:
532
+ return f17();
533
+ }
534
+ abort();
535
+ }
536
+
537
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
538
+ typename F4, typename F5, typename F6, typename F7, typename F8,
539
+ typename F9, typename F10, typename F11, typename F12, typename F13,
540
+ typename F14, typename F15, typename F16, typename F17, typename F18>
541
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
542
+ F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
543
+ F16 f16, F17 f17, F18 f18) {
544
+ switch (idx) {
545
+ case 0:
546
+ return f0();
547
+ case 1:
548
+ return f1();
549
+ case 2:
550
+ return f2();
551
+ case 3:
552
+ return f3();
553
+ case 4:
554
+ return f4();
555
+ case 5:
556
+ return f5();
557
+ case 6:
558
+ return f6();
559
+ case 7:
560
+ return f7();
561
+ case 8:
562
+ return f8();
563
+ case 9:
564
+ return f9();
565
+ case 10:
566
+ return f10();
567
+ case 11:
568
+ return f11();
569
+ case 12:
570
+ return f12();
571
+ case 13:
572
+ return f13();
573
+ case 14:
574
+ return f14();
575
+ case 15:
576
+ return f15();
577
+ case 16:
578
+ return f16();
579
+ case 17:
580
+ return f17();
581
+ case 18:
582
+ return f18();
583
+ }
584
+ abort();
585
+ }
586
+
587
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
588
+ typename F4, typename F5, typename F6, typename F7, typename F8,
589
+ typename F9, typename F10, typename F11, typename F12, typename F13,
590
+ typename F14, typename F15, typename F16, typename F17, typename F18,
591
+ typename F19>
592
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
593
+ F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
594
+ F16 f16, F17 f17, F18 f18, F19 f19) {
595
+ switch (idx) {
596
+ case 0:
597
+ return f0();
598
+ case 1:
599
+ return f1();
600
+ case 2:
601
+ return f2();
602
+ case 3:
603
+ return f3();
604
+ case 4:
605
+ return f4();
606
+ case 5:
607
+ return f5();
608
+ case 6:
609
+ return f6();
610
+ case 7:
611
+ return f7();
612
+ case 8:
613
+ return f8();
614
+ case 9:
615
+ return f9();
616
+ case 10:
617
+ return f10();
618
+ case 11:
619
+ return f11();
620
+ case 12:
621
+ return f12();
622
+ case 13:
623
+ return f13();
624
+ case 14:
625
+ return f14();
626
+ case 15:
627
+ return f15();
628
+ case 16:
629
+ return f16();
630
+ case 17:
631
+ return f17();
632
+ case 18:
633
+ return f18();
634
+ case 19:
635
+ return f19();
636
+ }
637
+ abort();
638
+ }
639
+
640
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
641
+ typename F4, typename F5, typename F6, typename F7, typename F8,
642
+ typename F9, typename F10, typename F11, typename F12, typename F13,
643
+ typename F14, typename F15, typename F16, typename F17, typename F18,
644
+ typename F19, typename F20>
645
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
646
+ F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
647
+ F16 f16, F17 f17, F18 f18, F19 f19, F20 f20) {
648
+ switch (idx) {
649
+ case 0:
650
+ return f0();
651
+ case 1:
652
+ return f1();
653
+ case 2:
654
+ return f2();
655
+ case 3:
656
+ return f3();
657
+ case 4:
658
+ return f4();
659
+ case 5:
660
+ return f5();
661
+ case 6:
662
+ return f6();
663
+ case 7:
664
+ return f7();
665
+ case 8:
666
+ return f8();
667
+ case 9:
668
+ return f9();
669
+ case 10:
670
+ return f10();
671
+ case 11:
672
+ return f11();
673
+ case 12:
674
+ return f12();
675
+ case 13:
676
+ return f13();
677
+ case 14:
678
+ return f14();
679
+ case 15:
680
+ return f15();
681
+ case 16:
682
+ return f16();
683
+ case 17:
684
+ return f17();
685
+ case 18:
686
+ return f18();
687
+ case 19:
688
+ return f19();
689
+ case 20:
690
+ return f20();
691
+ }
692
+ abort();
693
+ }
694
+
695
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
696
+ typename F4, typename F5, typename F6, typename F7, typename F8,
697
+ typename F9, typename F10, typename F11, typename F12, typename F13,
698
+ typename F14, typename F15, typename F16, typename F17, typename F18,
699
+ typename F19, typename F20, typename F21>
700
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
701
+ F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
702
+ F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21) {
703
+ switch (idx) {
704
+ case 0:
705
+ return f0();
706
+ case 1:
707
+ return f1();
708
+ case 2:
709
+ return f2();
710
+ case 3:
711
+ return f3();
712
+ case 4:
713
+ return f4();
714
+ case 5:
715
+ return f5();
716
+ case 6:
717
+ return f6();
718
+ case 7:
719
+ return f7();
720
+ case 8:
721
+ return f8();
722
+ case 9:
723
+ return f9();
724
+ case 10:
725
+ return f10();
726
+ case 11:
727
+ return f11();
728
+ case 12:
729
+ return f12();
730
+ case 13:
731
+ return f13();
732
+ case 14:
733
+ return f14();
734
+ case 15:
735
+ return f15();
736
+ case 16:
737
+ return f16();
738
+ case 17:
739
+ return f17();
740
+ case 18:
741
+ return f18();
742
+ case 19:
743
+ return f19();
744
+ case 20:
745
+ return f20();
746
+ case 21:
747
+ return f21();
748
+ }
749
+ abort();
750
+ }
751
+
752
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
753
+ typename F4, typename F5, typename F6, typename F7, typename F8,
754
+ typename F9, typename F10, typename F11, typename F12, typename F13,
755
+ typename F14, typename F15, typename F16, typename F17, typename F18,
756
+ typename F19, typename F20, typename F21, typename F22>
757
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
758
+ F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
759
+ F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21, F22 f22) {
760
+ switch (idx) {
761
+ case 0:
762
+ return f0();
763
+ case 1:
764
+ return f1();
765
+ case 2:
766
+ return f2();
767
+ case 3:
768
+ return f3();
769
+ case 4:
770
+ return f4();
771
+ case 5:
772
+ return f5();
773
+ case 6:
774
+ return f6();
775
+ case 7:
776
+ return f7();
777
+ case 8:
778
+ return f8();
779
+ case 9:
780
+ return f9();
781
+ case 10:
782
+ return f10();
783
+ case 11:
784
+ return f11();
785
+ case 12:
786
+ return f12();
787
+ case 13:
788
+ return f13();
789
+ case 14:
790
+ return f14();
791
+ case 15:
792
+ return f15();
793
+ case 16:
794
+ return f16();
795
+ case 17:
796
+ return f17();
797
+ case 18:
798
+ return f18();
799
+ case 19:
800
+ return f19();
801
+ case 20:
802
+ return f20();
803
+ case 21:
804
+ return f21();
805
+ case 22:
806
+ return f22();
807
+ }
808
+ abort();
809
+ }
810
+
811
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
812
+ typename F4, typename F5, typename F6, typename F7, typename F8,
813
+ typename F9, typename F10, typename F11, typename F12, typename F13,
814
+ typename F14, typename F15, typename F16, typename F17, typename F18,
815
+ typename F19, typename F20, typename F21, typename F22, typename F23>
816
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
817
+ F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
818
+ F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21, F22 f22,
819
+ F23 f23) {
820
+ switch (idx) {
821
+ case 0:
822
+ return f0();
823
+ case 1:
824
+ return f1();
825
+ case 2:
826
+ return f2();
827
+ case 3:
828
+ return f3();
829
+ case 4:
830
+ return f4();
831
+ case 5:
832
+ return f5();
833
+ case 6:
834
+ return f6();
835
+ case 7:
836
+ return f7();
837
+ case 8:
838
+ return f8();
839
+ case 9:
840
+ return f9();
841
+ case 10:
842
+ return f10();
843
+ case 11:
844
+ return f11();
845
+ case 12:
846
+ return f12();
847
+ case 13:
848
+ return f13();
849
+ case 14:
850
+ return f14();
851
+ case 15:
852
+ return f15();
853
+ case 16:
854
+ return f16();
855
+ case 17:
856
+ return f17();
857
+ case 18:
858
+ return f18();
859
+ case 19:
860
+ return f19();
861
+ case 20:
862
+ return f20();
863
+ case 21:
864
+ return f21();
865
+ case 22:
866
+ return f22();
867
+ case 23:
868
+ return f23();
869
+ }
870
+ abort();
871
+ }
872
+
873
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
874
+ typename F4, typename F5, typename F6, typename F7, typename F8,
875
+ typename F9, typename F10, typename F11, typename F12, typename F13,
876
+ typename F14, typename F15, typename F16, typename F17, typename F18,
877
+ typename F19, typename F20, typename F21, typename F22, typename F23,
878
+ typename F24>
879
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
880
+ F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
881
+ F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21, F22 f22, F23 f23,
882
+ F24 f24) {
883
+ switch (idx) {
884
+ case 0:
885
+ return f0();
886
+ case 1:
887
+ return f1();
888
+ case 2:
889
+ return f2();
890
+ case 3:
891
+ return f3();
892
+ case 4:
893
+ return f4();
894
+ case 5:
895
+ return f5();
896
+ case 6:
897
+ return f6();
898
+ case 7:
899
+ return f7();
900
+ case 8:
901
+ return f8();
902
+ case 9:
903
+ return f9();
904
+ case 10:
905
+ return f10();
906
+ case 11:
907
+ return f11();
908
+ case 12:
909
+ return f12();
910
+ case 13:
911
+ return f13();
912
+ case 14:
913
+ return f14();
914
+ case 15:
915
+ return f15();
916
+ case 16:
917
+ return f16();
918
+ case 17:
919
+ return f17();
920
+ case 18:
921
+ return f18();
922
+ case 19:
923
+ return f19();
924
+ case 20:
925
+ return f20();
926
+ case 21:
927
+ return f21();
928
+ case 22:
929
+ return f22();
930
+ case 23:
931
+ return f23();
932
+ case 24:
933
+ return f24();
934
+ }
935
+ abort();
936
+ }
937
+
938
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
939
+ typename F4, typename F5, typename F6, typename F7, typename F8,
940
+ typename F9, typename F10, typename F11, typename F12, typename F13,
941
+ typename F14, typename F15, typename F16, typename F17, typename F18,
942
+ typename F19, typename F20, typename F21, typename F22, typename F23,
943
+ typename F24, typename F25>
944
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
945
+ F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
946
+ F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21, F22 f22, F23 f23,
947
+ F24 f24, F25 f25) {
948
+ switch (idx) {
949
+ case 0:
950
+ return f0();
951
+ case 1:
952
+ return f1();
953
+ case 2:
954
+ return f2();
955
+ case 3:
956
+ return f3();
957
+ case 4:
958
+ return f4();
959
+ case 5:
960
+ return f5();
961
+ case 6:
962
+ return f6();
963
+ case 7:
964
+ return f7();
965
+ case 8:
966
+ return f8();
967
+ case 9:
968
+ return f9();
969
+ case 10:
970
+ return f10();
971
+ case 11:
972
+ return f11();
973
+ case 12:
974
+ return f12();
975
+ case 13:
976
+ return f13();
977
+ case 14:
978
+ return f14();
979
+ case 15:
980
+ return f15();
981
+ case 16:
982
+ return f16();
983
+ case 17:
984
+ return f17();
985
+ case 18:
986
+ return f18();
987
+ case 19:
988
+ return f19();
989
+ case 20:
990
+ return f20();
991
+ case 21:
992
+ return f21();
993
+ case 22:
994
+ return f22();
995
+ case 23:
996
+ return f23();
997
+ case 24:
998
+ return f24();
999
+ case 25:
1000
+ return f25();
1001
+ }
1002
+ abort();
1003
+ }
1004
+
1005
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
1006
+ typename F4, typename F5, typename F6, typename F7, typename F8,
1007
+ typename F9, typename F10, typename F11, typename F12, typename F13,
1008
+ typename F14, typename F15, typename F16, typename F17, typename F18,
1009
+ typename F19, typename F20, typename F21, typename F22, typename F23,
1010
+ typename F24, typename F25, typename F26>
1011
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
1012
+ F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
1013
+ F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21, F22 f22, F23 f23,
1014
+ F24 f24, F25 f25, F26 f26) {
1015
+ switch (idx) {
1016
+ case 0:
1017
+ return f0();
1018
+ case 1:
1019
+ return f1();
1020
+ case 2:
1021
+ return f2();
1022
+ case 3:
1023
+ return f3();
1024
+ case 4:
1025
+ return f4();
1026
+ case 5:
1027
+ return f5();
1028
+ case 6:
1029
+ return f6();
1030
+ case 7:
1031
+ return f7();
1032
+ case 8:
1033
+ return f8();
1034
+ case 9:
1035
+ return f9();
1036
+ case 10:
1037
+ return f10();
1038
+ case 11:
1039
+ return f11();
1040
+ case 12:
1041
+ return f12();
1042
+ case 13:
1043
+ return f13();
1044
+ case 14:
1045
+ return f14();
1046
+ case 15:
1047
+ return f15();
1048
+ case 16:
1049
+ return f16();
1050
+ case 17:
1051
+ return f17();
1052
+ case 18:
1053
+ return f18();
1054
+ case 19:
1055
+ return f19();
1056
+ case 20:
1057
+ return f20();
1058
+ case 21:
1059
+ return f21();
1060
+ case 22:
1061
+ return f22();
1062
+ case 23:
1063
+ return f23();
1064
+ case 24:
1065
+ return f24();
1066
+ case 25:
1067
+ return f25();
1068
+ case 26:
1069
+ return f26();
1070
+ }
1071
+ abort();
1072
+ }
1073
+
1074
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
1075
+ typename F4, typename F5, typename F6, typename F7, typename F8,
1076
+ typename F9, typename F10, typename F11, typename F12, typename F13,
1077
+ typename F14, typename F15, typename F16, typename F17, typename F18,
1078
+ typename F19, typename F20, typename F21, typename F22, typename F23,
1079
+ typename F24, typename F25, typename F26, typename F27>
1080
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
1081
+ F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
1082
+ F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21, F22 f22, F23 f23,
1083
+ F24 f24, F25 f25, F26 f26, F27 f27) {
1084
+ switch (idx) {
1085
+ case 0:
1086
+ return f0();
1087
+ case 1:
1088
+ return f1();
1089
+ case 2:
1090
+ return f2();
1091
+ case 3:
1092
+ return f3();
1093
+ case 4:
1094
+ return f4();
1095
+ case 5:
1096
+ return f5();
1097
+ case 6:
1098
+ return f6();
1099
+ case 7:
1100
+ return f7();
1101
+ case 8:
1102
+ return f8();
1103
+ case 9:
1104
+ return f9();
1105
+ case 10:
1106
+ return f10();
1107
+ case 11:
1108
+ return f11();
1109
+ case 12:
1110
+ return f12();
1111
+ case 13:
1112
+ return f13();
1113
+ case 14:
1114
+ return f14();
1115
+ case 15:
1116
+ return f15();
1117
+ case 16:
1118
+ return f16();
1119
+ case 17:
1120
+ return f17();
1121
+ case 18:
1122
+ return f18();
1123
+ case 19:
1124
+ return f19();
1125
+ case 20:
1126
+ return f20();
1127
+ case 21:
1128
+ return f21();
1129
+ case 22:
1130
+ return f22();
1131
+ case 23:
1132
+ return f23();
1133
+ case 24:
1134
+ return f24();
1135
+ case 25:
1136
+ return f25();
1137
+ case 26:
1138
+ return f26();
1139
+ case 27:
1140
+ return f27();
1141
+ }
1142
+ abort();
1143
+ }
1144
+
1145
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
1146
+ typename F4, typename F5, typename F6, typename F7, typename F8,
1147
+ typename F9, typename F10, typename F11, typename F12, typename F13,
1148
+ typename F14, typename F15, typename F16, typename F17, typename F18,
1149
+ typename F19, typename F20, typename F21, typename F22, typename F23,
1150
+ typename F24, typename F25, typename F26, typename F27, typename F28>
1151
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
1152
+ F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
1153
+ F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21, F22 f22, F23 f23,
1154
+ F24 f24, F25 f25, F26 f26, F27 f27, F28 f28) {
1155
+ switch (idx) {
1156
+ case 0:
1157
+ return f0();
1158
+ case 1:
1159
+ return f1();
1160
+ case 2:
1161
+ return f2();
1162
+ case 3:
1163
+ return f3();
1164
+ case 4:
1165
+ return f4();
1166
+ case 5:
1167
+ return f5();
1168
+ case 6:
1169
+ return f6();
1170
+ case 7:
1171
+ return f7();
1172
+ case 8:
1173
+ return f8();
1174
+ case 9:
1175
+ return f9();
1176
+ case 10:
1177
+ return f10();
1178
+ case 11:
1179
+ return f11();
1180
+ case 12:
1181
+ return f12();
1182
+ case 13:
1183
+ return f13();
1184
+ case 14:
1185
+ return f14();
1186
+ case 15:
1187
+ return f15();
1188
+ case 16:
1189
+ return f16();
1190
+ case 17:
1191
+ return f17();
1192
+ case 18:
1193
+ return f18();
1194
+ case 19:
1195
+ return f19();
1196
+ case 20:
1197
+ return f20();
1198
+ case 21:
1199
+ return f21();
1200
+ case 22:
1201
+ return f22();
1202
+ case 23:
1203
+ return f23();
1204
+ case 24:
1205
+ return f24();
1206
+ case 25:
1207
+ return f25();
1208
+ case 26:
1209
+ return f26();
1210
+ case 27:
1211
+ return f27();
1212
+ case 28:
1213
+ return f28();
1214
+ }
1215
+ abort();
1216
+ }
1217
+
1218
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
1219
+ typename F4, typename F5, typename F6, typename F7, typename F8,
1220
+ typename F9, typename F10, typename F11, typename F12, typename F13,
1221
+ typename F14, typename F15, typename F16, typename F17, typename F18,
1222
+ typename F19, typename F20, typename F21, typename F22, typename F23,
1223
+ typename F24, typename F25, typename F26, typename F27, typename F28,
1224
+ typename F29>
1225
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
1226
+ F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
1227
+ F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21, F22 f22, F23 f23,
1228
+ F24 f24, F25 f25, F26 f26, F27 f27, F28 f28, F29 f29) {
1229
+ switch (idx) {
1230
+ case 0:
1231
+ return f0();
1232
+ case 1:
1233
+ return f1();
1234
+ case 2:
1235
+ return f2();
1236
+ case 3:
1237
+ return f3();
1238
+ case 4:
1239
+ return f4();
1240
+ case 5:
1241
+ return f5();
1242
+ case 6:
1243
+ return f6();
1244
+ case 7:
1245
+ return f7();
1246
+ case 8:
1247
+ return f8();
1248
+ case 9:
1249
+ return f9();
1250
+ case 10:
1251
+ return f10();
1252
+ case 11:
1253
+ return f11();
1254
+ case 12:
1255
+ return f12();
1256
+ case 13:
1257
+ return f13();
1258
+ case 14:
1259
+ return f14();
1260
+ case 15:
1261
+ return f15();
1262
+ case 16:
1263
+ return f16();
1264
+ case 17:
1265
+ return f17();
1266
+ case 18:
1267
+ return f18();
1268
+ case 19:
1269
+ return f19();
1270
+ case 20:
1271
+ return f20();
1272
+ case 21:
1273
+ return f21();
1274
+ case 22:
1275
+ return f22();
1276
+ case 23:
1277
+ return f23();
1278
+ case 24:
1279
+ return f24();
1280
+ case 25:
1281
+ return f25();
1282
+ case 26:
1283
+ return f26();
1284
+ case 27:
1285
+ return f27();
1286
+ case 28:
1287
+ return f28();
1288
+ case 29:
1289
+ return f29();
1290
+ }
1291
+ abort();
1292
+ }
1293
+
1294
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
1295
+ typename F4, typename F5, typename F6, typename F7, typename F8,
1296
+ typename F9, typename F10, typename F11, typename F12, typename F13,
1297
+ typename F14, typename F15, typename F16, typename F17, typename F18,
1298
+ typename F19, typename F20, typename F21, typename F22, typename F23,
1299
+ typename F24, typename F25, typename F26, typename F27, typename F28,
1300
+ typename F29, typename F30>
1301
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
1302
+ F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
1303
+ F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21, F22 f22, F23 f23,
1304
+ F24 f24, F25 f25, F26 f26, F27 f27, F28 f28, F29 f29, F30 f30) {
1305
+ switch (idx) {
1306
+ case 0:
1307
+ return f0();
1308
+ case 1:
1309
+ return f1();
1310
+ case 2:
1311
+ return f2();
1312
+ case 3:
1313
+ return f3();
1314
+ case 4:
1315
+ return f4();
1316
+ case 5:
1317
+ return f5();
1318
+ case 6:
1319
+ return f6();
1320
+ case 7:
1321
+ return f7();
1322
+ case 8:
1323
+ return f8();
1324
+ case 9:
1325
+ return f9();
1326
+ case 10:
1327
+ return f10();
1328
+ case 11:
1329
+ return f11();
1330
+ case 12:
1331
+ return f12();
1332
+ case 13:
1333
+ return f13();
1334
+ case 14:
1335
+ return f14();
1336
+ case 15:
1337
+ return f15();
1338
+ case 16:
1339
+ return f16();
1340
+ case 17:
1341
+ return f17();
1342
+ case 18:
1343
+ return f18();
1344
+ case 19:
1345
+ return f19();
1346
+ case 20:
1347
+ return f20();
1348
+ case 21:
1349
+ return f21();
1350
+ case 22:
1351
+ return f22();
1352
+ case 23:
1353
+ return f23();
1354
+ case 24:
1355
+ return f24();
1356
+ case 25:
1357
+ return f25();
1358
+ case 26:
1359
+ return f26();
1360
+ case 27:
1361
+ return f27();
1362
+ case 28:
1363
+ return f28();
1364
+ case 29:
1365
+ return f29();
1366
+ case 30:
1367
+ return f30();
1368
+ }
1369
+ abort();
1370
+ }
1371
+
1372
+ template <typename R, typename F0, typename F1, typename F2, typename F3,
1373
+ typename F4, typename F5, typename F6, typename F7, typename F8,
1374
+ typename F9, typename F10, typename F11, typename F12, typename F13,
1375
+ typename F14, typename F15, typename F16, typename F17, typename F18,
1376
+ typename F19, typename F20, typename F21, typename F22, typename F23,
1377
+ typename F24, typename F25, typename F26, typename F27, typename F28,
1378
+ typename F29, typename F30, typename F31>
1379
+ R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
1380
+ F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
1381
+ F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21, F22 f22, F23 f23,
1382
+ F24 f24, F25 f25, F26 f26, F27 f27, F28 f28, F29 f29, F30 f30,
1383
+ F31 f31) {
1384
+ switch (idx) {
1385
+ case 0:
1386
+ return f0();
1387
+ case 1:
1388
+ return f1();
1389
+ case 2:
1390
+ return f2();
1391
+ case 3:
1392
+ return f3();
1393
+ case 4:
1394
+ return f4();
1395
+ case 5:
1396
+ return f5();
1397
+ case 6:
1398
+ return f6();
1399
+ case 7:
1400
+ return f7();
1401
+ case 8:
1402
+ return f8();
1403
+ case 9:
1404
+ return f9();
1405
+ case 10:
1406
+ return f10();
1407
+ case 11:
1408
+ return f11();
1409
+ case 12:
1410
+ return f12();
1411
+ case 13:
1412
+ return f13();
1413
+ case 14:
1414
+ return f14();
1415
+ case 15:
1416
+ return f15();
1417
+ case 16:
1418
+ return f16();
1419
+ case 17:
1420
+ return f17();
1421
+ case 18:
1422
+ return f18();
1423
+ case 19:
1424
+ return f19();
1425
+ case 20:
1426
+ return f20();
1427
+ case 21:
1428
+ return f21();
1429
+ case 22:
1430
+ return f22();
1431
+ case 23:
1432
+ return f23();
1433
+ case 24:
1434
+ return f24();
1435
+ case 25:
1436
+ return f25();
1437
+ case 26:
1438
+ return f26();
1439
+ case 27:
1440
+ return f27();
1441
+ case 28:
1442
+ return f28();
1443
+ case 29:
1444
+ return f29();
1445
+ case 30:
1446
+ return f30();
1447
+ case 31:
1448
+ return f31();
1449
+ }
1450
+ abort();
1451
+ }
1452
+
1453
+ } // namespace grpc_core
1454
+
1455
+ #endif // GRPC_CORE_LIB_PROMISE_DETAIL_SWITCH_H