grpc 1.41.0 → 1.42.0.pre1

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

Potentially problematic release.


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

Files changed (519) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +57 -44
  3. data/etc/roots.pem +335 -326
  4. data/include/grpc/event_engine/event_engine.h +82 -42
  5. data/include/grpc/event_engine/internal/memory_allocator_impl.h +98 -0
  6. data/include/grpc/event_engine/memory_allocator.h +210 -0
  7. data/include/grpc/grpc.h +4 -0
  8. data/include/grpc/grpc_security.h +18 -0
  9. data/include/grpc/grpc_security_constants.h +1 -0
  10. data/include/grpc/impl/codegen/port_platform.h +7 -0
  11. data/src/core/ext/filters/client_channel/backend_metric.cc +18 -19
  12. data/src/core/ext/filters/client_channel/backup_poller.cc +2 -1
  13. data/src/core/ext/filters/client_channel/channel_connectivity.cc +71 -89
  14. data/src/core/ext/filters/client_channel/client_channel.cc +187 -252
  15. data/src/core/ext/filters/client_channel/client_channel.h +74 -27
  16. data/src/core/ext/filters/client_channel/client_channel_factory.cc +1 -1
  17. data/src/core/ext/filters/client_channel/client_channel_factory.h +17 -19
  18. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +8 -14
  19. data/src/core/ext/filters/client_channel/config_selector.cc +1 -1
  20. data/src/core/ext/filters/client_channel/config_selector.h +4 -5
  21. data/src/core/ext/filters/client_channel/connector.h +18 -18
  22. data/src/core/ext/filters/client_channel/dynamic_filters.cc +1 -1
  23. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +0 -1
  24. data/src/core/ext/filters/client_channel/health/health_check_client.cc +12 -11
  25. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +1 -1
  26. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +4 -0
  27. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -15
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +166 -82
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +4 -0
  30. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +1 -1
  31. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +2 -4
  32. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +23 -7
  33. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +15 -10
  34. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +2 -3
  35. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2502 -0
  36. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +6 -1
  37. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +7 -1
  38. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +6 -2
  39. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +1 -1
  40. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +5 -0
  41. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +8 -1
  42. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +7 -16
  43. data/src/core/ext/filters/client_channel/lb_policy.h +11 -1
  44. data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -0
  45. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +139 -0
  46. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +11 -5
  47. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +3 -3
  48. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +12 -39
  49. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +21 -1
  50. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +6 -2
  51. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +3 -1
  52. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +77 -68
  53. data/src/core/ext/filters/client_channel/resolver.h +1 -1
  54. data/src/core/ext/filters/client_channel/resolver_factory.h +2 -0
  55. data/src/core/ext/filters/client_channel/resolver_registry.cc +6 -8
  56. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +1 -1
  57. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +1 -1
  58. data/src/core/ext/filters/client_channel/retry_filter.cc +48 -86
  59. data/src/core/ext/filters/client_channel/retry_service_config.h +1 -1
  60. data/src/core/ext/filters/client_channel/retry_throttle.cc +17 -48
  61. data/src/core/ext/filters/client_channel/server_address.h +1 -1
  62. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +49 -36
  63. data/src/core/ext/filters/client_channel/subchannel.cc +85 -143
  64. data/src/core/ext/filters/client_channel/subchannel.h +29 -49
  65. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +22 -7
  66. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +11 -2
  67. data/src/core/ext/filters/client_idle/client_idle_filter.cc +27 -210
  68. data/src/core/ext/filters/client_idle/idle_filter_state.cc +96 -0
  69. data/src/core/ext/filters/client_idle/idle_filter_state.h +66 -0
  70. data/src/core/ext/filters/deadline/deadline_filter.cc +23 -26
  71. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +19 -19
  72. data/src/core/ext/filters/fault_injection/service_config_parser.cc +0 -1
  73. data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
  74. data/src/core/ext/filters/http/client/http_client_filter.cc +41 -44
  75. data/src/core/ext/filters/http/client_authority_filter.cc +14 -15
  76. data/src/core/ext/filters/http/http_filters_plugin.cc +53 -71
  77. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +17 -12
  78. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +1 -1
  79. data/src/core/ext/filters/http/server/http_server_filter.cc +72 -69
  80. data/src/core/ext/filters/max_age/max_age_filter.cc +24 -26
  81. data/src/core/ext/filters/message_size/message_size_filter.cc +19 -16
  82. data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
  83. data/src/core/ext/{filters/client_channel → service_config}/service_config.cc +2 -2
  84. data/src/core/ext/{filters/client_channel → service_config}/service_config.h +4 -4
  85. data/src/core/ext/service_config/service_config_call_data.h +72 -0
  86. data/src/core/ext/{filters/client_channel → service_config}/service_config_parser.cc +3 -3
  87. data/src/core/ext/{filters/client_channel → service_config}/service_config_parser.h +8 -6
  88. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +2 -5
  89. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +19 -24
  90. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +27 -50
  91. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +14 -16
  92. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +59 -58
  93. data/src/core/ext/transport/chttp2/transport/flow_control.cc +19 -16
  94. data/src/core/ext/transport/chttp2/transport/flow_control.h +4 -4
  95. data/src/core/ext/transport/chttp2/transport/frame_data.cc +4 -4
  96. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -1
  97. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +2 -1
  98. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -3
  99. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +2 -2
  100. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +1 -1
  101. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +41 -1
  102. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +8 -4
  103. data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +1 -1
  104. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +136 -98
  105. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +27 -8
  106. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +12 -25
  107. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +37 -30
  108. data/src/core/ext/transport/chttp2/transport/internal.h +4 -3
  109. data/src/core/ext/transport/chttp2/transport/parsing.cc +30 -173
  110. data/src/core/ext/transport/chttp2/transport/popularity_count.h +1 -1
  111. data/src/core/ext/transport/chttp2/transport/writing.cc +29 -22
  112. data/src/core/ext/transport/inproc/inproc_transport.cc +105 -109
  113. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +68 -34
  114. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +139 -1
  115. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +16 -4
  116. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +53 -4
  117. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +3 -2
  118. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +15 -0
  119. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +13 -8
  120. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +23 -0
  121. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +0 -1
  122. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +14 -11
  123. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +17 -0
  124. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +15 -12
  125. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +49 -19
  126. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +55 -0
  127. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +154 -0
  128. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +0 -2
  129. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +58 -0
  130. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +182 -0
  131. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +1 -1
  132. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +1 -1
  133. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +1 -1
  134. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +1 -1
  135. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +1 -1
  136. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +1 -1
  137. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +58 -0
  138. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +130 -0
  139. data/src/core/ext/upb-generated/{udpa/type/v1 → xds/type/v3}/typed_struct.upb.c +7 -7
  140. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +83 -0
  141. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +310 -286
  142. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +10 -0
  143. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +101 -88
  144. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +5 -0
  145. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +59 -56
  146. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +59 -46
  147. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +78 -82
  148. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +323 -316
  149. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +5 -4
  150. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +19 -23
  151. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +4 -3
  152. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +5 -3
  153. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +5 -4
  154. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +75 -0
  155. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +50 -0
  156. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +13 -12
  157. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +25 -24
  158. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +16 -15
  159. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +17 -16
  160. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +33 -32
  161. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +19 -18
  162. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +45 -0
  163. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +35 -0
  164. data/src/core/ext/xds/xds_api.cc +325 -362
  165. data/src/core/ext/xds/xds_api.h +134 -82
  166. data/src/core/ext/xds/xds_bootstrap.h +10 -0
  167. data/src/core/ext/xds/xds_certificate_provider.cc +3 -3
  168. data/src/core/ext/xds/xds_channel_stack_modifier.cc +113 -0
  169. data/src/core/ext/xds/xds_channel_stack_modifier.h +52 -0
  170. data/src/core/ext/xds/xds_client.cc +527 -314
  171. data/src/core/ext/xds/xds_client.h +42 -37
  172. data/src/core/ext/xds/xds_client_stats.h +1 -1
  173. data/src/core/ext/xds/xds_server_config_fetcher.cc +5 -7
  174. data/src/core/lib/address_utils/parse_address.cc +2 -0
  175. data/src/core/lib/avl/avl.cc +5 -5
  176. data/src/core/lib/backoff/backoff.cc +1 -1
  177. data/src/core/lib/channel/channel_args.cc +24 -6
  178. data/src/core/lib/channel/channel_args.h +9 -0
  179. data/src/core/lib/channel/channel_stack_builder.cc +3 -3
  180. data/src/core/lib/channel/channel_trace.cc +1 -1
  181. data/src/core/lib/channel/channel_trace.h +1 -1
  182. data/src/core/lib/channel/channelz.cc +3 -3
  183. data/src/core/lib/channel/channelz.h +2 -2
  184. data/src/core/lib/channel/channelz_registry.cc +1 -1
  185. data/src/core/lib/channel/channelz_registry.h +1 -1
  186. data/src/core/lib/channel/connected_channel.cc +1 -3
  187. data/src/core/lib/channel/connected_channel.h +1 -2
  188. data/src/core/lib/compression/compression.cc +2 -2
  189. data/src/core/lib/compression/compression_args.cc +6 -4
  190. data/src/core/lib/compression/compression_internal.cc +2 -2
  191. data/src/core/lib/compression/compression_internal.h +1 -1
  192. data/src/core/lib/config/core_configuration.cc +44 -2
  193. data/src/core/lib/config/core_configuration.h +39 -1
  194. data/src/core/lib/debug/stats.cc +1 -1
  195. data/src/core/lib/debug/stats_data.cc +13 -13
  196. data/src/core/lib/gpr/atm.cc +1 -1
  197. data/src/core/lib/gpr/cpu_posix.cc +1 -1
  198. data/src/core/lib/gpr/string.cc +2 -2
  199. data/src/core/lib/gpr/tls.h +1 -1
  200. data/src/core/lib/gpr/useful.h +79 -32
  201. data/src/core/lib/gprpp/arena.h +10 -0
  202. data/src/core/lib/gprpp/bitset.h +38 -16
  203. data/src/core/lib/gprpp/chunked_vector.h +211 -0
  204. data/src/core/lib/gprpp/construct_destruct.h +1 -1
  205. data/src/core/lib/gprpp/match.h +1 -1
  206. data/src/core/lib/gprpp/memory.h +6 -0
  207. data/src/core/lib/gprpp/overload.h +1 -1
  208. data/src/core/lib/gprpp/status_helper.cc +23 -3
  209. data/src/core/lib/gprpp/status_helper.h +12 -1
  210. data/src/core/lib/gprpp/table.h +411 -0
  211. data/src/core/lib/http/httpcli.cc +200 -182
  212. data/src/core/lib/http/parser.cc +2 -2
  213. data/src/core/lib/iomgr/call_combiner.cc +28 -10
  214. data/src/core/lib/iomgr/combiner.cc +6 -21
  215. data/src/core/lib/iomgr/endpoint_cfstream.cc +7 -6
  216. data/src/core/lib/iomgr/error.cc +113 -52
  217. data/src/core/lib/iomgr/error.h +50 -9
  218. data/src/core/lib/iomgr/error_cfstream.cc +5 -0
  219. data/src/core/lib/iomgr/ev_epoll1_linux.cc +3 -2
  220. data/src/core/lib/iomgr/ev_epollex_linux.cc +7 -7
  221. data/src/core/lib/iomgr/ev_poll_posix.cc +29 -20
  222. data/src/core/lib/iomgr/event_engine/closure.cc +41 -18
  223. data/src/core/lib/iomgr/event_engine/closure.h +10 -1
  224. data/src/core/lib/iomgr/event_engine/endpoint.cc +3 -3
  225. data/src/core/lib/iomgr/event_engine/iomgr.cc +1 -1
  226. data/src/core/lib/iomgr/event_engine/pollset.cc +5 -4
  227. data/src/core/lib/iomgr/event_engine/resolver.cc +10 -7
  228. data/src/core/lib/iomgr/event_engine/tcp.cc +9 -8
  229. data/src/core/lib/iomgr/event_engine/timer.cc +7 -2
  230. data/src/core/lib/iomgr/exec_ctx.cc +1 -9
  231. data/src/core/lib/iomgr/executor/mpmcqueue.cc +5 -7
  232. data/src/core/lib/iomgr/executor/mpmcqueue.h +3 -8
  233. data/src/core/lib/iomgr/executor.cc +6 -20
  234. data/src/core/lib/iomgr/iomgr.cc +3 -1
  235. data/src/core/lib/iomgr/iomgr_internal.cc +4 -9
  236. data/src/core/lib/iomgr/iomgr_internal.h +3 -2
  237. data/src/core/lib/iomgr/load_file.cc +2 -2
  238. data/src/core/lib/iomgr/lockfree_event.cc +18 -0
  239. data/src/core/lib/iomgr/pollset_custom.cc +1 -1
  240. data/src/core/lib/iomgr/pollset_custom.h +1 -1
  241. data/src/core/lib/iomgr/resolve_address_posix.cc +5 -7
  242. data/src/core/lib/iomgr/resource_quota.cc +13 -11
  243. data/src/core/lib/iomgr/socket_factory_posix.cc +2 -2
  244. data/src/core/lib/iomgr/socket_mutator.cc +2 -2
  245. data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -2
  246. data/src/core/lib/iomgr/tcp_client_cfstream.cc +5 -3
  247. data/src/core/lib/iomgr/tcp_client_custom.cc +1 -1
  248. data/src/core/lib/iomgr/tcp_client_posix.cc +9 -18
  249. data/src/core/lib/iomgr/tcp_client_windows.cc +2 -3
  250. data/src/core/lib/iomgr/tcp_posix.cc +4 -5
  251. data/src/core/lib/iomgr/tcp_server_custom.cc +2 -1
  252. data/src/core/lib/iomgr/tcp_server_posix.cc +3 -4
  253. data/src/core/lib/iomgr/tcp_server_windows.cc +4 -5
  254. data/src/core/lib/iomgr/tcp_windows.cc +2 -2
  255. data/src/core/lib/iomgr/timer_generic.cc +13 -13
  256. data/src/core/lib/iomgr/timer_heap.cc +1 -1
  257. data/src/core/lib/json/json_util.cc +68 -0
  258. data/src/core/lib/json/json_util.h +57 -99
  259. data/src/core/lib/json/json_writer.cc +0 -3
  260. data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
  261. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +1 -1
  262. data/src/core/lib/security/authorization/evaluate_args.cc +14 -12
  263. data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +13 -1
  264. data/src/core/lib/security/context/security_context.cc +4 -2
  265. data/src/core/lib/security/credentials/composite/composite_credentials.cc +1 -1
  266. data/src/core/lib/security/credentials/credentials.cc +4 -2
  267. data/src/core/lib/security/credentials/credentials.h +6 -1
  268. data/src/core/lib/security/credentials/external/external_account_credentials.cc +47 -11
  269. data/src/core/lib/security/credentials/external/external_account_credentials.h +1 -0
  270. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +1 -1
  271. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +5 -9
  272. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +2 -2
  273. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +2 -2
  274. data/src/core/lib/security/security_connector/security_connector.cc +9 -4
  275. data/src/core/lib/security/security_connector/security_connector.h +1 -1
  276. data/src/core/lib/security/security_connector/ssl_utils.cc +1 -1
  277. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +1 -0
  278. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +0 -2
  279. data/src/core/lib/security/transport/client_auth_filter.cc +5 -5
  280. data/src/core/lib/security/transport/security_handshaker.cc +73 -43
  281. data/src/core/lib/security/transport/server_auth_filter.cc +3 -5
  282. data/src/core/lib/security/transport/tsi_error.cc +3 -5
  283. data/src/core/lib/slice/slice.cc +0 -16
  284. data/src/core/lib/slice/slice_api.cc +39 -0
  285. data/src/core/lib/slice/slice_buffer.cc +5 -5
  286. data/src/core/lib/slice/slice_intern.cc +8 -13
  287. data/src/core/lib/slice/slice_internal.h +1 -244
  288. data/src/core/lib/slice/slice_refcount.cc +17 -0
  289. data/src/core/lib/slice/slice_refcount.h +121 -0
  290. data/src/core/lib/slice/slice_refcount_base.h +173 -0
  291. data/src/core/lib/slice/slice_split.cc +100 -0
  292. data/src/core/lib/slice/slice_split.h +40 -0
  293. data/src/core/lib/slice/slice_string_helpers.cc +0 -83
  294. data/src/core/lib/slice/slice_string_helpers.h +0 -11
  295. data/src/core/lib/slice/static_slice.cc +529 -0
  296. data/src/core/lib/slice/static_slice.h +331 -0
  297. data/src/core/lib/surface/builtins.cc +49 -0
  298. data/src/core/{ext/filters/workarounds/workaround_cronet_compression_filter.h → lib/surface/builtins.h} +8 -9
  299. data/src/core/lib/surface/call.cc +103 -120
  300. data/src/core/lib/surface/call.h +0 -6
  301. data/src/core/lib/surface/channel.cc +19 -32
  302. data/src/core/lib/surface/channel.h +0 -9
  303. data/src/core/lib/surface/channel_init.cc +23 -76
  304. data/src/core/lib/surface/channel_init.h +52 -44
  305. data/src/core/lib/surface/completion_queue.cc +6 -5
  306. data/src/core/lib/surface/init.cc +0 -39
  307. data/src/core/lib/surface/init_secure.cc +17 -14
  308. data/src/core/lib/surface/lame_client.cc +18 -11
  309. data/src/core/lib/surface/lame_client.h +1 -1
  310. data/src/core/lib/surface/server.cc +25 -17
  311. data/src/core/lib/surface/server.h +17 -10
  312. data/src/core/lib/surface/validate_metadata.cc +5 -2
  313. data/src/core/lib/surface/version.cc +2 -2
  314. data/src/core/lib/transport/bdp_estimator.cc +1 -1
  315. data/src/core/lib/transport/error_utils.cc +42 -17
  316. data/src/core/lib/transport/error_utils.h +1 -1
  317. data/src/core/lib/transport/metadata.cc +31 -10
  318. data/src/core/lib/transport/metadata.h +2 -1
  319. data/src/core/lib/transport/metadata_batch.cc +35 -371
  320. data/src/core/lib/transport/metadata_batch.h +905 -71
  321. data/src/core/lib/transport/parsed_metadata.h +263 -0
  322. data/src/core/lib/transport/pid_controller.cc +4 -4
  323. data/src/core/lib/transport/static_metadata.cc +714 -846
  324. data/src/core/lib/transport/static_metadata.h +115 -379
  325. data/src/core/lib/transport/status_metadata.cc +1 -0
  326. data/src/core/lib/transport/transport.cc +4 -5
  327. data/src/core/lib/transport/transport_op_string.cc +40 -20
  328. data/src/core/plugin_registry/grpc_plugin_registry.cc +64 -43
  329. data/src/core/tsi/alts/crypt/aes_gcm.cc +3 -1
  330. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +13 -12
  331. data/src/core/tsi/alts/frame_protector/frame_handler.cc +10 -11
  332. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -2
  333. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +12 -2
  334. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
  335. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +2 -2
  336. data/src/core/tsi/fake_transport_security.cc +15 -7
  337. data/src/core/tsi/local_transport_security.cc +36 -73
  338. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +16 -50
  339. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +4 -3
  340. data/src/core/tsi/ssl_transport_security.cc +10 -2
  341. data/src/core/tsi/transport_security.cc +12 -0
  342. data/src/core/tsi/transport_security.h +16 -1
  343. data/src/core/tsi/transport_security_interface.h +26 -0
  344. data/src/ruby/ext/grpc/extconf.rb +12 -9
  345. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -0
  346. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -0
  347. data/src/ruby/lib/grpc/version.rb +1 -1
  348. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +2 -2
  349. data/src/ruby/spec/client_server_spec.rb +1 -1
  350. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +4 -4
  351. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +11 -6
  352. data/third_party/address_sorting/address_sorting_posix.c +1 -0
  353. data/third_party/boringssl-with-bazel/err_data.c +278 -272
  354. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +21 -22
  355. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +0 -2
  356. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +5 -0
  357. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +15 -22
  358. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +13 -7
  359. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +19 -29
  360. data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/a_strex.c +268 -271
  361. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +106 -153
  362. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +2 -2
  363. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +0 -39
  364. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +1 -1
  365. data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/charmap.h +0 -0
  366. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +38 -0
  367. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +8 -8
  368. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +289 -198
  369. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +8 -8
  370. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +9 -13
  371. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +1 -0
  372. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +11 -8
  373. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +1 -7
  374. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +1 -5
  375. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +0 -4
  376. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +1 -7
  377. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -6
  378. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -17
  379. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +4 -6
  380. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +9 -0
  381. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +8 -0
  382. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +38 -47
  383. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +45 -65
  384. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +1 -0
  385. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +32 -34
  386. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +21 -3
  387. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +3 -2
  388. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +5 -2
  389. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +5 -9
  390. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +10 -0
  391. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/des.c +10 -11
  392. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/internal.h +1 -3
  393. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +4 -7
  394. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +4 -7
  395. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +1 -1
  396. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +1 -1
  397. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +24 -9
  398. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +4 -2
  399. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +35 -35
  400. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +11 -10
  401. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +10 -37
  402. data/third_party/boringssl-with-bazel/src/crypto/internal.h +39 -0
  403. data/third_party/boringssl-with-bazel/src/crypto/mem.c +12 -9
  404. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +0 -9
  405. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +0 -2
  406. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +0 -8
  407. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +0 -2
  408. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +0 -4
  409. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +16 -7
  410. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +9 -4
  411. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +151 -12
  412. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +1 -1
  413. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +6 -6
  414. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +2 -0
  415. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +181 -1
  416. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +246 -0
  417. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +11 -2
  418. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +0 -2
  419. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +0 -179
  420. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +4 -2
  421. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -5
  422. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +1 -0
  423. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +11 -50
  424. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +1 -1
  425. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +2 -4
  426. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +0 -16
  427. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +22 -18
  428. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +11 -8
  429. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +16 -0
  430. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +1 -0
  431. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +1 -1
  432. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +1 -1
  433. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +1 -0
  434. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +4 -3
  435. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +24 -5
  436. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +17 -8
  437. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +3 -0
  438. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +6 -6
  439. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +4 -0
  440. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +5 -0
  441. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +112 -55
  442. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +2 -1
  443. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +0 -2
  444. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
  445. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +71 -26
  446. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +366 -227
  447. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +2 -9
  448. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +10 -4
  449. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +3 -1
  450. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +3 -3
  451. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +9 -0
  452. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +8 -2
  453. data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +4 -0
  454. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +9 -3
  455. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +0 -20
  456. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +12 -5
  457. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +5 -0
  458. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +37 -15
  459. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +28 -14
  460. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +31 -32
  461. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +529 -91
  462. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +16 -695
  463. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +48 -8
  464. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +266 -357
  465. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +90 -152
  466. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +15 -13
  467. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +75 -79
  468. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +96 -97
  469. data/third_party/boringssl-with-bazel/src/ssl/internal.h +63 -43
  470. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +2 -2
  471. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +2 -2
  472. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +6 -12
  473. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +14 -17
  474. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +14 -27
  475. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +203 -203
  476. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +30 -41
  477. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +47 -33
  478. data/third_party/re2/re2/compile.cc +91 -109
  479. data/third_party/re2/re2/dfa.cc +27 -39
  480. data/third_party/re2/re2/filtered_re2.cc +18 -2
  481. data/third_party/re2/re2/filtered_re2.h +10 -5
  482. data/third_party/re2/re2/nfa.cc +1 -1
  483. data/third_party/re2/re2/parse.cc +42 -23
  484. data/third_party/re2/re2/perl_groups.cc +34 -34
  485. data/third_party/re2/re2/prefilter.cc +3 -2
  486. data/third_party/re2/re2/prog.cc +182 -4
  487. data/third_party/re2/re2/prog.h +28 -9
  488. data/third_party/re2/re2/re2.cc +87 -118
  489. data/third_party/re2/re2/re2.h +156 -141
  490. data/third_party/re2/re2/regexp.cc +12 -5
  491. data/third_party/re2/re2/regexp.h +8 -2
  492. data/third_party/re2/re2/set.cc +31 -9
  493. data/third_party/re2/re2/set.h +9 -4
  494. data/third_party/re2/re2/simplify.cc +11 -3
  495. data/third_party/re2/re2/tostring.cc +1 -1
  496. data/third_party/re2/re2/walker-inl.h +1 -1
  497. data/third_party/re2/util/mutex.h +2 -2
  498. data/third_party/re2/util/pcre.h +3 -3
  499. metadata +83 -70
  500. data/include/grpc/event_engine/slice_allocator.h +0 -71
  501. data/src/core/ext/filters/client_channel/service_config_call_data.h +0 -126
  502. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +0 -211
  503. data/src/core/ext/filters/workarounds/workaround_utils.cc +0 -53
  504. data/src/core/ext/filters/workarounds/workaround_utils.h +0 -39
  505. data/src/core/ext/transport/chttp2/client/authority.cc +0 -42
  506. data/src/core/ext/transport/chttp2/client/authority.h +0 -36
  507. data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +0 -67
  508. data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +0 -74
  509. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +0 -66
  510. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +0 -58
  511. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +0 -58
  512. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +0 -130
  513. data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +0 -83
  514. data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +0 -44
  515. data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +0 -35
  516. data/src/core/lib/iomgr/udp_server.cc +0 -747
  517. data/src/core/lib/iomgr/udp_server.h +0 -103
  518. data/src/core/lib/transport/authority_override.cc +0 -40
  519. data/src/core/lib/transport/authority_override.h +0 -37
@@ -555,7 +555,7 @@ class PCRE_Options {
555
555
  // Hex/Octal/Binary?
556
556
 
557
557
  // Special class for parsing into objects that define a ParseFrom() method
558
- template <class T>
558
+ template <typename T>
559
559
  class _PCRE_MatchObject {
560
560
  public:
561
561
  static inline bool Parse(const char* str, size_t n, void* dest) {
@@ -600,9 +600,9 @@ class PCRE::Arg {
600
600
  #undef MAKE_PARSER
601
601
 
602
602
  // Generic constructor
603
- template <class T> Arg(T*, Parser parser);
603
+ template <typename T> Arg(T*, Parser parser);
604
604
  // Generic constructor template
605
- template <class T> Arg(T* p)
605
+ template <typename T> Arg(T* p)
606
606
  : arg_(p), parser_(_PCRE_MatchObject<T>::Parse) {
607
607
  }
608
608
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grpc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.41.0
4
+ version: 1.42.0.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - gRPC Authors
8
8
  autorequire:
9
9
  bindir: src/ruby/bin
10
10
  cert_chain: []
11
- date: 2021-09-25 00:00:00.000000000 Z
11
+ date: 2021-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.17'
19
+ version: '3.18'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '3.17'
26
+ version: '3.18'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: googleapis-common-protos-types
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '1.0'
131
+ version: '1.1'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '1.0'
138
+ version: '1.1'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: rspec
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -215,8 +215,9 @@ files:
215
215
  - include/grpc/event_engine/README.md
216
216
  - include/grpc/event_engine/endpoint_config.h
217
217
  - include/grpc/event_engine/event_engine.h
218
+ - include/grpc/event_engine/internal/memory_allocator_impl.h
219
+ - include/grpc/event_engine/memory_allocator.h
218
220
  - include/grpc/event_engine/port.h
219
- - include/grpc/event_engine/slice_allocator.h
220
221
  - include/grpc/fork.h
221
222
  - include/grpc/grpc.h
222
223
  - include/grpc/grpc_cronet.h
@@ -319,6 +320,7 @@ files:
319
320
  - src/core/ext/filters/client_channel/lb_policy/priority/priority.cc
320
321
  - src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc
321
322
  - src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h
323
+ - src/core/ext/filters/client_channel/lb_policy/rls/rls.cc
322
324
  - src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc
323
325
  - src/core/ext/filters/client_channel/lb_policy/subchannel_list.h
324
326
  - src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc
@@ -338,6 +340,7 @@ files:
338
340
  - src/core/ext/filters/client_channel/proxy_mapper_registry.h
339
341
  - src/core/ext/filters/client_channel/resolver.cc
340
342
  - src/core/ext/filters/client_channel/resolver.h
343
+ - src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc
341
344
  - src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc
342
345
  - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h
343
346
  - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc
@@ -370,18 +373,15 @@ files:
370
373
  - src/core/ext/filters/client_channel/retry_throttle.h
371
374
  - src/core/ext/filters/client_channel/server_address.cc
372
375
  - src/core/ext/filters/client_channel/server_address.h
373
- - src/core/ext/filters/client_channel/service_config.cc
374
- - src/core/ext/filters/client_channel/service_config.h
375
- - src/core/ext/filters/client_channel/service_config_call_data.h
376
376
  - src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc
377
- - src/core/ext/filters/client_channel/service_config_parser.cc
378
- - src/core/ext/filters/client_channel/service_config_parser.h
379
377
  - src/core/ext/filters/client_channel/subchannel.cc
380
378
  - src/core/ext/filters/client_channel/subchannel.h
381
379
  - src/core/ext/filters/client_channel/subchannel_interface.h
382
380
  - src/core/ext/filters/client_channel/subchannel_pool_interface.cc
383
381
  - src/core/ext/filters/client_channel/subchannel_pool_interface.h
384
382
  - src/core/ext/filters/client_idle/client_idle_filter.cc
383
+ - src/core/ext/filters/client_idle/idle_filter_state.cc
384
+ - src/core/ext/filters/client_idle/idle_filter_state.h
385
385
  - src/core/ext/filters/deadline/deadline_filter.cc
386
386
  - src/core/ext/filters/deadline/deadline_filter.h
387
387
  - src/core/ext/filters/fault_injection/fault_injection_filter.cc
@@ -403,14 +403,13 @@ files:
403
403
  - src/core/ext/filters/max_age/max_age_filter.h
404
404
  - src/core/ext/filters/message_size/message_size_filter.cc
405
405
  - src/core/ext/filters/message_size/message_size_filter.h
406
- - src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc
407
- - src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h
408
- - src/core/ext/filters/workarounds/workaround_utils.cc
409
- - src/core/ext/filters/workarounds/workaround_utils.h
406
+ - src/core/ext/service_config/service_config.cc
407
+ - src/core/ext/service_config/service_config.h
408
+ - src/core/ext/service_config/service_config_call_data.h
409
+ - src/core/ext/service_config/service_config_parser.cc
410
+ - src/core/ext/service_config/service_config_parser.h
410
411
  - src/core/ext/transport/chttp2/alpn/alpn.cc
411
412
  - src/core/ext/transport/chttp2/alpn/alpn.h
412
- - src/core/ext/transport/chttp2/client/authority.cc
413
- - src/core/ext/transport/chttp2/client/authority.h
414
413
  - src/core/ext/transport/chttp2/client/chttp2_connector.cc
415
414
  - src/core/ext/transport/chttp2/client/chttp2_connector.h
416
415
  - src/core/ext/transport/chttp2/client/insecure/channel_create.cc
@@ -426,8 +425,6 @@ files:
426
425
  - src/core/ext/transport/chttp2/transport/bin_encoder.cc
427
426
  - src/core/ext/transport/chttp2/transport/bin_encoder.h
428
427
  - src/core/ext/transport/chttp2/transport/chttp2_plugin.cc
429
- - src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc
430
- - src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h
431
428
  - src/core/ext/transport/chttp2/transport/chttp2_transport.cc
432
429
  - src/core/ext/transport/chttp2/transport/chttp2_transport.h
433
430
  - src/core/ext/transport/chttp2/transport/context_list.cc
@@ -463,8 +460,6 @@ files:
463
460
  - src/core/ext/transport/chttp2/transport/http2_settings.h
464
461
  - src/core/ext/transport/chttp2/transport/huffsyms.cc
465
462
  - src/core/ext/transport/chttp2/transport/huffsyms.h
466
- - src/core/ext/transport/chttp2/transport/incoming_metadata.cc
467
- - src/core/ext/transport/chttp2/transport/incoming_metadata.h
468
463
  - src/core/ext/transport/chttp2/transport/internal.h
469
464
  - src/core/ext/transport/chttp2/transport/parsing.cc
470
465
  - src/core/ext/transport/chttp2/transport/popularity_count.h
@@ -655,6 +650,8 @@ files:
655
650
  - src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h
656
651
  - src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c
657
652
  - src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h
653
+ - src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c
654
+ - src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h
658
655
  - src/core/ext/upb-generated/udpa/annotations/migrate.upb.c
659
656
  - src/core/ext/upb-generated/udpa/annotations/migrate.upb.h
660
657
  - src/core/ext/upb-generated/udpa/annotations/security.upb.c
@@ -665,12 +662,10 @@ files:
665
662
  - src/core/ext/upb-generated/udpa/annotations/status.upb.h
666
663
  - src/core/ext/upb-generated/udpa/annotations/versioning.upb.c
667
664
  - src/core/ext/upb-generated/udpa/annotations/versioning.upb.h
668
- - src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c
669
- - src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h
670
- - src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c
671
- - src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h
672
665
  - src/core/ext/upb-generated/validate/validate.upb.c
673
666
  - src/core/ext/upb-generated/validate/validate.upb.h
667
+ - src/core/ext/upb-generated/xds/annotations/v3/status.upb.c
668
+ - src/core/ext/upb-generated/xds/annotations/v3/status.upb.h
674
669
  - src/core/ext/upb-generated/xds/core/v3/authority.upb.c
675
670
  - src/core/ext/upb-generated/xds/core/v3/authority.upb.h
676
671
  - src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c
@@ -683,6 +678,10 @@ files:
683
678
  - src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h
684
679
  - src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c
685
680
  - src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h
681
+ - src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c
682
+ - src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h
683
+ - src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c
684
+ - src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h
686
685
  - src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c
687
686
  - src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h
688
687
  - src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c
@@ -855,10 +854,10 @@ files:
855
854
  - src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h
856
855
  - src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c
857
856
  - src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h
858
- - src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c
859
- - src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h
860
857
  - src/core/ext/upbdefs-generated/validate/validate.upbdefs.c
861
858
  - src/core/ext/upbdefs-generated/validate/validate.upbdefs.h
859
+ - src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c
860
+ - src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h
862
861
  - src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c
863
862
  - src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h
864
863
  - src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c
@@ -871,6 +870,8 @@ files:
871
870
  - src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h
872
871
  - src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c
873
872
  - src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h
873
+ - src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c
874
+ - src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h
874
875
  - src/core/ext/xds/certificate_provider_factory.h
875
876
  - src/core/ext/xds/certificate_provider_registry.cc
876
877
  - src/core/ext/xds/certificate_provider_registry.h
@@ -885,6 +886,8 @@ files:
885
886
  - src/core/ext/xds/xds_certificate_provider.cc
886
887
  - src/core/ext/xds/xds_certificate_provider.h
887
888
  - src/core/ext/xds/xds_channel_args.h
889
+ - src/core/ext/xds/xds_channel_stack_modifier.cc
890
+ - src/core/ext/xds/xds_channel_stack_modifier.h
888
891
  - src/core/ext/xds/xds_client.cc
889
892
  - src/core/ext/xds/xds_client.h
890
893
  - src/core/ext/xds/xds_client_stats.cc
@@ -997,6 +1000,7 @@ files:
997
1000
  - src/core/lib/gprpp/arena.h
998
1001
  - src/core/lib/gprpp/atomic_utils.h
999
1002
  - src/core/lib/gprpp/bitset.h
1003
+ - src/core/lib/gprpp/chunked_vector.h
1000
1004
  - src/core/lib/gprpp/construct_destruct.h
1001
1005
  - src/core/lib/gprpp/debug_location.h
1002
1006
  - src/core/lib/gprpp/dual_ref_counted.h
@@ -1026,6 +1030,7 @@ files:
1026
1030
  - src/core/lib/gprpp/status_helper.cc
1027
1031
  - src/core/lib/gprpp/status_helper.h
1028
1032
  - src/core/lib/gprpp/sync.h
1033
+ - src/core/lib/gprpp/table.h
1029
1034
  - src/core/lib/gprpp/thd.h
1030
1035
  - src/core/lib/gprpp/thd_posix.cc
1031
1036
  - src/core/lib/gprpp/thd_windows.cc
@@ -1199,8 +1204,6 @@ files:
1199
1204
  - src/core/lib/iomgr/timer_heap.h
1200
1205
  - src/core/lib/iomgr/timer_manager.cc
1201
1206
  - src/core/lib/iomgr/timer_manager.h
1202
- - src/core/lib/iomgr/udp_server.cc
1203
- - src/core/lib/iomgr/udp_server.h
1204
1207
  - src/core/lib/iomgr/unix_sockets_posix.cc
1205
1208
  - src/core/lib/iomgr/unix_sockets_posix.h
1206
1209
  - src/core/lib/iomgr/unix_sockets_posix_noop.cc
@@ -1329,14 +1332,24 @@ files:
1329
1332
  - src/core/lib/slice/percent_encoding.cc
1330
1333
  - src/core/lib/slice/percent_encoding.h
1331
1334
  - src/core/lib/slice/slice.cc
1335
+ - src/core/lib/slice/slice_api.cc
1332
1336
  - src/core/lib/slice/slice_buffer.cc
1333
1337
  - src/core/lib/slice/slice_intern.cc
1334
1338
  - src/core/lib/slice/slice_internal.h
1339
+ - src/core/lib/slice/slice_refcount.cc
1340
+ - src/core/lib/slice/slice_refcount.h
1341
+ - src/core/lib/slice/slice_refcount_base.h
1342
+ - src/core/lib/slice/slice_split.cc
1343
+ - src/core/lib/slice/slice_split.h
1335
1344
  - src/core/lib/slice/slice_string_helpers.cc
1336
1345
  - src/core/lib/slice/slice_string_helpers.h
1337
1346
  - src/core/lib/slice/slice_utils.h
1347
+ - src/core/lib/slice/static_slice.cc
1348
+ - src/core/lib/slice/static_slice.h
1338
1349
  - src/core/lib/surface/api_trace.cc
1339
1350
  - src/core/lib/surface/api_trace.h
1351
+ - src/core/lib/surface/builtins.cc
1352
+ - src/core/lib/surface/builtins.h
1340
1353
  - src/core/lib/surface/byte_buffer.cc
1341
1354
  - src/core/lib/surface/byte_buffer_reader.cc
1342
1355
  - src/core/lib/surface/call.cc
@@ -1368,8 +1381,6 @@ files:
1368
1381
  - src/core/lib/surface/validate_metadata.cc
1369
1382
  - src/core/lib/surface/validate_metadata.h
1370
1383
  - src/core/lib/surface/version.cc
1371
- - src/core/lib/transport/authority_override.cc
1372
- - src/core/lib/transport/authority_override.h
1373
1384
  - src/core/lib/transport/bdp_estimator.cc
1374
1385
  - src/core/lib/transport/bdp_estimator.h
1375
1386
  - src/core/lib/transport/byte_stream.cc
@@ -1383,6 +1394,7 @@ files:
1383
1394
  - src/core/lib/transport/metadata.h
1384
1395
  - src/core/lib/transport/metadata_batch.cc
1385
1396
  - src/core/lib/transport/metadata_batch.h
1397
+ - src/core/lib/transport/parsed_metadata.h
1386
1398
  - src/core/lib/transport/pid_controller.cc
1387
1399
  - src/core/lib/transport/pid_controller.h
1388
1400
  - src/core/lib/transport/static_metadata.cc
@@ -1835,6 +1847,7 @@ files:
1835
1847
  - third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c
1836
1848
  - third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c
1837
1849
  - third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c
1850
+ - third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c
1838
1851
  - third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c
1839
1852
  - third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c
1840
1853
  - third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c
@@ -1843,6 +1856,7 @@ files:
1843
1856
  - third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c
1844
1857
  - third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c
1845
1858
  - third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c
1859
+ - third_party/boringssl-with-bazel/src/crypto/asn1/charmap.h
1846
1860
  - third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c
1847
1861
  - third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c
1848
1862
  - third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c
@@ -2093,15 +2107,14 @@ files:
2093
2107
  - third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c
2094
2108
  - third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c
2095
2109
  - third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c
2096
- - third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c
2097
2110
  - third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c
2098
2111
  - third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c
2099
2112
  - third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c
2100
2113
  - third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c
2101
2114
  - third_party/boringssl-with-bazel/src/crypto/x509/by_file.c
2102
- - third_party/boringssl-with-bazel/src/crypto/x509/charmap.h
2103
2115
  - third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c
2104
2116
  - third_party/boringssl-with-bazel/src/crypto/x509/internal.h
2117
+ - third_party/boringssl-with-bazel/src/crypto/x509/name_print.c
2105
2118
  - third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c
2106
2119
  - third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c
2107
2120
  - third_party/boringssl-with-bazel/src/crypto/x509/t_req.c
@@ -2492,55 +2505,55 @@ required_ruby_version: !ruby/object:Gem::Requirement
2492
2505
  version: 2.4.0
2493
2506
  required_rubygems_version: !ruby/object:Gem::Requirement
2494
2507
  requirements:
2495
- - - ">="
2508
+ - - ">"
2496
2509
  - !ruby/object:Gem::Version
2497
- version: '0'
2510
+ version: 1.3.1
2498
2511
  requirements: []
2499
- rubygems_version: 3.2.28
2512
+ rubygems_version: 3.2.30
2500
2513
  signing_key:
2501
2514
  specification_version: 4
2502
2515
  summary: GRPC system in Ruby
2503
2516
  test_files:
2504
- - src/ruby/spec/pb/duplicate/codegen_spec.rb
2505
- - src/ruby/spec/pb/codegen/grpc/testing/package_options_import.proto
2506
- - src/ruby/spec/pb/codegen/grpc/testing/same_ruby_package_service_name.proto
2507
- - src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto
2508
- - src/ruby/spec/pb/codegen/grpc/testing/same_package_service_name.proto
2509
- - src/ruby/spec/pb/codegen/grpc/testing/package_options_import2.proto
2510
- - src/ruby/spec/pb/codegen/grpc/testing/package_options.proto
2511
- - src/ruby/spec/pb/codegen/package_option_spec.rb
2512
- - src/ruby/spec/pb/health/checker_spec.rb
2513
- - src/ruby/spec/call_spec.rb
2514
2517
  - src/ruby/spec/call_credentials_spec.rb
2515
- - src/ruby/spec/channel_connection_spec.rb
2516
- - src/ruby/spec/user_agent_spec.rb
2517
- - src/ruby/spec/server_spec.rb
2518
- - src/ruby/spec/time_consts_spec.rb
2519
- - src/ruby/spec/support/helpers.rb
2520
- - src/ruby/spec/support/services.rb
2521
- - src/ruby/spec/channel_credentials_spec.rb
2522
- - src/ruby/spec/google_rpc_status_utils_spec.rb
2523
- - src/ruby/spec/channel_spec.rb
2524
- - src/ruby/spec/errors_spec.rb
2525
2518
  - src/ruby/spec/generic/active_call_spec.rb
2526
- - src/ruby/spec/generic/rpc_server_spec.rb
2527
- - src/ruby/spec/generic/server_interceptors_spec.rb
2528
- - src/ruby/spec/generic/rpc_desc_spec.rb
2529
- - src/ruby/spec/generic/interceptor_registry_spec.rb
2530
- - src/ruby/spec/generic/service_spec.rb
2531
2519
  - src/ruby/spec/generic/client_interceptors_spec.rb
2532
2520
  - src/ruby/spec/generic/rpc_server_pool_spec.rb
2521
+ - src/ruby/spec/generic/rpc_server_spec.rb
2533
2522
  - src/ruby/spec/generic/client_stub_spec.rb
2523
+ - src/ruby/spec/generic/rpc_desc_spec.rb
2524
+ - src/ruby/spec/generic/server_interceptors_spec.rb
2525
+ - src/ruby/spec/generic/service_spec.rb
2526
+ - src/ruby/spec/generic/interceptor_registry_spec.rb
2527
+ - src/ruby/spec/call_spec.rb
2534
2528
  - src/ruby/spec/spec_helper.rb
2535
- - src/ruby/spec/testdata/server1.key
2529
+ - src/ruby/spec/testdata/ca.pem
2530
+ - src/ruby/spec/testdata/client.key
2531
+ - src/ruby/spec/testdata/server1.pem
2536
2532
  - src/ruby/spec/testdata/client.pem
2537
2533
  - src/ruby/spec/testdata/README
2538
- - src/ruby/spec/testdata/server1.pem
2539
- - src/ruby/spec/testdata/client.key
2540
- - src/ruby/spec/testdata/ca.pem
2541
- - src/ruby/spec/client_server_spec.rb
2542
- - src/ruby/spec/error_sanity_spec.rb
2543
- - src/ruby/spec/server_credentials_spec.rb
2534
+ - src/ruby/spec/testdata/server1.key
2535
+ - src/ruby/spec/debug_message_spec.rb
2536
+ - src/ruby/spec/pb/codegen/package_option_spec.rb
2537
+ - src/ruby/spec/pb/codegen/grpc/testing/same_package_service_name.proto
2538
+ - src/ruby/spec/pb/codegen/grpc/testing/same_ruby_package_service_name.proto
2539
+ - src/ruby/spec/pb/codegen/grpc/testing/package_options.proto
2540
+ - src/ruby/spec/pb/codegen/grpc/testing/package_options_import2.proto
2541
+ - src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto
2542
+ - src/ruby/spec/pb/codegen/grpc/testing/package_options_import.proto
2543
+ - src/ruby/spec/pb/duplicate/codegen_spec.rb
2544
+ - src/ruby/spec/pb/health/checker_spec.rb
2545
+ - src/ruby/spec/time_consts_spec.rb
2544
2546
  - src/ruby/spec/client_auth_spec.rb
2547
+ - src/ruby/spec/channel_spec.rb
2548
+ - src/ruby/spec/errors_spec.rb
2549
+ - src/ruby/spec/user_agent_spec.rb
2550
+ - src/ruby/spec/google_rpc_status_utils_spec.rb
2551
+ - src/ruby/spec/error_sanity_spec.rb
2552
+ - src/ruby/spec/client_server_spec.rb
2545
2553
  - src/ruby/spec/compression_options_spec.rb
2546
- - src/ruby/spec/debug_message_spec.rb
2554
+ - src/ruby/spec/channel_connection_spec.rb
2555
+ - src/ruby/spec/server_credentials_spec.rb
2556
+ - src/ruby/spec/support/helpers.rb
2557
+ - src/ruby/spec/support/services.rb
2558
+ - src/ruby/spec/server_spec.rb
2559
+ - src/ruby/spec/channel_credentials_spec.rb
@@ -1,71 +0,0 @@
1
- // Copyright 2021 The gRPC Authors
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // http://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
- #ifndef GRPC_EVENT_ENGINE_SLICE_ALLOCATOR_H
15
- #define GRPC_EVENT_ENGINE_SLICE_ALLOCATOR_H
16
-
17
- #include <grpc/support/port_platform.h>
18
-
19
- #include <functional>
20
-
21
- #include "absl/status/status.h"
22
-
23
- // forward-declaring an internal struct, not used publicly.
24
- struct grpc_resource_quota;
25
- struct grpc_resource_user;
26
- struct grpc_slice_buffer;
27
-
28
- namespace grpc_event_engine {
29
- namespace experimental {
30
-
31
- // TODO(nnoble): needs implementation
32
- class SliceBuffer {
33
- public:
34
- SliceBuffer() { abort(); }
35
- explicit SliceBuffer(grpc_slice_buffer*) { abort(); }
36
-
37
- grpc_slice_buffer* RawSliceBuffer() { return slice_buffer_; }
38
-
39
- private:
40
- grpc_slice_buffer* slice_buffer_;
41
- };
42
-
43
- class SliceAllocator {
44
- public:
45
- using AllocateCallback = std::function<void(absl::Status)>;
46
- virtual ~SliceAllocator() = default;
47
- /// Requests \a size bytes from gRPC, and populates \a dest with the allocated
48
- /// slices. Ownership of the \a SliceBuffer is not transferred.
49
- ///
50
- /// gRPC provides a ResourceQuota system to cap the amount of memory used by
51
- /// the library. When a memory limit has been reached, slice allocation is
52
- /// interrupted to attempt to reclaim memory from participating gRPC
53
- /// internals. When there is sufficient memory available, slice allocation
54
- /// proceeds as normal.
55
- virtual absl::Status Allocate(size_t size, SliceBuffer* dest,
56
- SliceAllocator::AllocateCallback cb) = 0;
57
- };
58
-
59
- class SliceAllocatorFactory {
60
- public:
61
- virtual ~SliceAllocatorFactory() = default;
62
- /// On Endpoint creation, call \a CreateSliceAllocator with the name of the
63
- /// endpoint peer (a URI string, most likely).
64
- virtual std::unique_ptr<SliceAllocator> CreateSliceAllocator(
65
- absl::string_view peer_name) = 0;
66
- };
67
-
68
- } // namespace experimental
69
- } // namespace grpc_event_engine
70
-
71
- #endif // GRPC_EVENT_ENGINE_SLICE_ALLOCATOR_H
@@ -1,126 +0,0 @@
1
- //
2
- // Copyright 2016 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
- #ifndef GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_SERVICE_CONFIG_CALL_DATA_H
18
- #define GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_SERVICE_CONFIG_CALL_DATA_H
19
-
20
- #include <grpc/support/port_platform.h>
21
-
22
- #include <map>
23
-
24
- #include "absl/strings/string_view.h"
25
-
26
- #include "src/core/ext/filters/client_channel/config_selector.h"
27
- #include "src/core/ext/filters/client_channel/service_config.h"
28
- #include "src/core/ext/filters/client_channel/service_config_parser.h"
29
- #include "src/core/lib/channel/context.h"
30
- #include "src/core/lib/gprpp/ref_counted_ptr.h"
31
-
32
- namespace grpc_core {
33
-
34
- /// When a service config is applied to a call in the client_channel_filter,
35
- /// we create an instance of this object on the arena. A pointer to this
36
- /// object is also stored in the call_context, so that future filters can
37
- /// easily access method and global parameters for the call.
38
- class ServiceConfigCallData {
39
- public:
40
- ServiceConfigCallData(
41
- RefCountedPtr<ServiceConfig> service_config,
42
- const ServiceConfigParser::ParsedConfigVector* method_configs,
43
- ConfigSelector::CallAttributes call_attributes,
44
- ConfigSelector::CallDispatchController* call_dispatch_controller,
45
- grpc_call_context_element* call_context)
46
- : service_config_(std::move(service_config)),
47
- method_configs_(method_configs),
48
- call_attributes_(std::move(call_attributes)),
49
- call_dispatch_controller_(call_dispatch_controller) {
50
- call_context[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].value = this;
51
- call_context[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].destroy = Destroy;
52
- }
53
-
54
- ServiceConfigCallData(
55
- RefCountedPtr<ServiceConfig> service_config,
56
- const ServiceConfigParser::ParsedConfigVector* method_configs,
57
- grpc_call_context_element* call_context)
58
- : ServiceConfigCallData(std::move(service_config), method_configs, {},
59
- nullptr, call_context) {}
60
-
61
- ServiceConfig* service_config() { return service_config_.get(); }
62
-
63
- ServiceConfigParser::ParsedConfig* GetMethodParsedConfig(size_t index) const {
64
- return method_configs_ != nullptr ? (*method_configs_)[index].get()
65
- : nullptr;
66
- }
67
-
68
- ServiceConfigParser::ParsedConfig* GetGlobalParsedConfig(size_t index) const {
69
- return service_config_->GetGlobalParsedConfig(index);
70
- }
71
-
72
- const std::map<const char*, absl::string_view>& call_attributes() const {
73
- return call_attributes_;
74
- }
75
-
76
- ConfigSelector::CallDispatchController* call_dispatch_controller() {
77
- return &call_dispatch_controller_;
78
- }
79
-
80
- private:
81
- // A wrapper for the CallDispatchController returned by the ConfigSelector.
82
- // Handles the case where the ConfigSelector doees not return any
83
- // CallDispatchController.
84
- // Also ensures that we call Commit() at most once, which allows the
85
- // client channel code to call Commit() when the call is complete in case
86
- // it wasn't called earlier, without needing to know whether or not it was.
87
- class SingleCommitCallDispatchController
88
- : public ConfigSelector::CallDispatchController {
89
- public:
90
- explicit SingleCommitCallDispatchController(
91
- ConfigSelector::CallDispatchController* call_dispatch_controller)
92
- : call_dispatch_controller_(call_dispatch_controller) {}
93
-
94
- bool ShouldRetry() override {
95
- if (call_dispatch_controller_ != nullptr) {
96
- return call_dispatch_controller_->ShouldRetry();
97
- }
98
- return true;
99
- }
100
-
101
- void Commit() override {
102
- if (call_dispatch_controller_ != nullptr && !commit_called_) {
103
- call_dispatch_controller_->Commit();
104
- commit_called_ = true;
105
- }
106
- }
107
-
108
- private:
109
- ConfigSelector::CallDispatchController* call_dispatch_controller_;
110
- bool commit_called_ = false;
111
- };
112
-
113
- static void Destroy(void* ptr) {
114
- ServiceConfigCallData* self = static_cast<ServiceConfigCallData*>(ptr);
115
- self->~ServiceConfigCallData();
116
- }
117
-
118
- RefCountedPtr<ServiceConfig> service_config_;
119
- const ServiceConfigParser::ParsedConfigVector* method_configs_;
120
- ConfigSelector::CallAttributes call_attributes_;
121
- SingleCommitCallDispatchController call_dispatch_controller_;
122
- };
123
-
124
- } // namespace grpc_core
125
-
126
- #endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_SERVICE_CONFIG_CALL_DATA_H */