grpc 1.46.3 → 1.47.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 (481) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +49 -97
  3. data/include/grpc/event_engine/event_engine.h +42 -7
  4. data/include/grpc/event_engine/memory_allocator.h +0 -15
  5. data/include/grpc/event_engine/port.h +1 -1
  6. data/include/grpc/event_engine/slice.h +286 -0
  7. data/include/grpc/event_engine/slice_buffer.h +112 -0
  8. data/include/grpc/grpc_security.h +11 -0
  9. data/include/grpc/impl/codegen/port_platform.h +100 -36
  10. data/include/grpc/impl/codegen/slice.h +1 -1
  11. data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +18 -30
  12. data/src/core/ext/filters/channel_idle/channel_idle_filter.h +4 -1
  13. data/src/core/ext/filters/client_channel/backend_metric.cc +17 -12
  14. data/src/core/ext/filters/client_channel/backend_metric.h +19 -9
  15. data/src/core/ext/filters/client_channel/backup_poller.cc +5 -5
  16. data/src/core/ext/filters/client_channel/backup_poller.h +2 -4
  17. data/src/core/ext/filters/client_channel/channel_connectivity.cc +42 -20
  18. data/src/core/ext/filters/client_channel/client_channel.cc +60 -17
  19. data/src/core/ext/filters/client_channel/client_channel.h +26 -6
  20. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +3 -5
  21. data/src/core/ext/filters/client_channel/client_channel_channelz.h +12 -2
  22. data/src/core/ext/filters/client_channel/client_channel_factory.cc +5 -0
  23. data/src/core/ext/filters/client_channel/client_channel_factory.h +8 -0
  24. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -13
  25. data/src/core/ext/filters/client_channel/config_selector.cc +1 -0
  26. data/src/core/ext/filters/client_channel/config_selector.h +7 -5
  27. data/src/core/ext/filters/client_channel/connector.h +8 -2
  28. data/src/core/ext/filters/client_channel/dynamic_filters.cc +13 -2
  29. data/src/core/ext/filters/client_channel/dynamic_filters.h +11 -1
  30. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +2 -0
  31. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +3 -0
  32. data/src/core/ext/filters/client_channel/health/health_check_client.cc +14 -1
  33. data/src/core/ext/filters/client_channel/health/health_check_client.h +2 -0
  34. data/src/core/ext/filters/client_channel/http_proxy.cc +10 -2
  35. data/src/core/ext/filters/client_channel/http_proxy.h +3 -0
  36. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +6 -2
  37. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +1 -0
  38. data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +49 -0
  39. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +12 -0
  40. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +5 -0
  41. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +9 -3
  42. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +59 -19
  43. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +4 -0
  44. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +6 -0
  45. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +10 -1
  46. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +6 -3
  47. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +408 -0
  48. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +57 -0
  49. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +1038 -0
  50. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +54 -0
  51. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +60 -52
  52. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +102 -60
  53. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +157 -96
  54. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +2 -0
  55. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +45 -10
  56. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +182 -171
  57. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +39 -36
  58. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +30 -5
  59. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +99 -23
  60. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +6 -0
  61. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +30 -4
  62. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +23 -3
  63. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +75 -11
  64. data/src/core/ext/filters/client_channel/lb_policy.cc +4 -2
  65. data/src/core/ext/filters/client_channel/lb_policy.h +18 -24
  66. data/src/core/ext/filters/client_channel/lb_policy_factory.h +2 -0
  67. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +8 -1
  68. data/src/core/ext/filters/client_channel/lb_policy_registry.h +6 -1
  69. data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +4 -0
  70. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +1 -0
  71. data/src/core/ext/filters/client_channel/proxy_mapper.h +1 -1
  72. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +2 -0
  73. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +5 -0
  74. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +23 -5
  75. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +134 -43
  76. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +8 -1
  77. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +10 -8
  78. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +1 -1
  79. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +26 -9
  80. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +13 -4
  81. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +2 -1
  82. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +2 -0
  83. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +2 -1
  84. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +30 -7
  85. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +13 -14
  86. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +5 -2
  87. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +59 -13
  88. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +13 -1
  89. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +8 -1
  90. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +15 -11
  91. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +89 -33
  92. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +5 -11
  93. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +11 -5
  94. data/src/core/ext/filters/client_channel/retry_filter.cc +42 -2
  95. data/src/core/ext/filters/client_channel/retry_service_config.cc +8 -9
  96. data/src/core/ext/filters/client_channel/retry_service_config.h +10 -1
  97. data/src/core/ext/filters/client_channel/retry_throttle.cc +1 -8
  98. data/src/core/ext/filters/client_channel/retry_throttle.h +7 -1
  99. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +22 -5
  100. data/src/core/ext/filters/client_channel/subchannel.cc +156 -160
  101. data/src/core/ext/filters/client_channel/subchannel.h +80 -20
  102. data/src/core/ext/filters/client_channel/subchannel_interface.h +41 -23
  103. data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +38 -0
  104. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +12 -2
  105. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +6 -3
  106. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +16 -2
  107. data/src/core/ext/filters/client_channel/subchannel_stream_client.h +12 -0
  108. data/src/core/ext/filters/deadline/deadline_filter.cc +6 -2
  109. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -4
  110. data/src/core/ext/filters/http/client/http_client_filter.cc +14 -5
  111. data/src/core/ext/filters/http/client/http_client_filter.h +7 -1
  112. data/src/core/ext/filters/http/client_authority_filter.cc +5 -10
  113. data/src/core/ext/filters/http/http_filters_plugin.cc +7 -8
  114. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +1 -0
  115. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +3 -1
  116. data/src/core/ext/filters/http/server/http_server_filter.cc +80 -247
  117. data/src/core/ext/filters/http/server/http_server_filter.h +31 -2
  118. data/src/core/ext/filters/message_size/message_size_filter.cc +20 -26
  119. data/src/core/ext/filters/message_size/message_size_filter.h +2 -2
  120. data/src/core/ext/filters/rbac/rbac_filter.cc +1 -0
  121. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +101 -135
  122. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +9 -7
  123. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -15
  124. data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -0
  125. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +3 -3
  126. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -1
  127. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -0
  128. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +69 -20
  129. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +5 -0
  130. data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -0
  131. data/src/core/ext/transport/chttp2/transport/context_list.h +4 -1
  132. data/src/core/ext/transport/chttp2/transport/flow_control.cc +6 -2
  133. data/src/core/ext/transport/chttp2/transport/flow_control.h +6 -2
  134. data/src/core/ext/transport/chttp2/transport/frame.h +0 -4
  135. data/src/core/ext/transport/chttp2/transport/frame_data.cc +7 -1
  136. data/src/core/ext/transport/chttp2/transport/frame_data.h +4 -1
  137. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +3 -0
  138. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +3 -1
  139. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -0
  140. data/src/core/ext/transport/chttp2/transport/frame_ping.h +3 -0
  141. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +6 -2
  142. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +3 -0
  143. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +12 -3
  144. data/src/core/ext/transport/chttp2/transport/frame_settings.h +4 -0
  145. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -1
  146. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +3 -0
  147. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +14 -12
  148. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +15 -2
  149. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +3 -0
  150. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +3 -0
  151. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +25 -7
  152. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +8 -1
  153. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +55 -37
  154. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +38 -21
  155. data/src/core/ext/transport/chttp2/transport/http2_settings.h +0 -1
  156. data/src/core/ext/transport/chttp2/transport/internal.h +24 -3
  157. data/src/core/ext/transport/chttp2/transport/parsing.cc +27 -6
  158. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +13 -9
  159. data/src/core/ext/transport/chttp2/transport/stream_map.cc +1 -1
  160. data/src/core/ext/transport/chttp2/transport/stream_map.h +1 -0
  161. data/src/core/ext/transport/chttp2/transport/varint.h +2 -0
  162. data/src/core/ext/transport/chttp2/transport/writing.cc +38 -2
  163. data/src/core/ext/transport/inproc/inproc_transport.cc +8 -5
  164. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +47 -0
  165. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +109 -0
  166. data/src/core/ext/xds/certificate_provider_store.cc +4 -2
  167. data/src/core/ext/xds/certificate_provider_store.h +1 -1
  168. data/src/core/ext/xds/xds_certificate_provider.cc +4 -1
  169. data/src/core/ext/xds/xds_certificate_provider.h +1 -1
  170. data/src/core/ext/xds/xds_channel_stack_modifier.cc +5 -5
  171. data/src/core/ext/xds/xds_client.cc +46 -22
  172. data/src/core/ext/xds/xds_cluster.cc +106 -16
  173. data/src/core/ext/xds/xds_cluster.h +3 -0
  174. data/src/core/ext/xds/xds_http_fault_filter.cc +3 -3
  175. data/src/core/ext/xds/xds_listener.cc +19 -9
  176. data/src/core/ext/xds/xds_server_config_fetcher.cc +2 -1
  177. data/src/core/lib/address_utils/sockaddr_utils.cc +56 -23
  178. data/src/core/lib/address_utils/sockaddr_utils.h +7 -4
  179. data/src/core/lib/avl/avl.h +3 -1
  180. data/src/core/lib/channel/call_finalization.h +4 -0
  181. data/src/core/lib/channel/call_tracer.h +8 -2
  182. data/src/core/lib/channel/channel_args.cc +41 -22
  183. data/src/core/lib/channel/channel_args.h +33 -3
  184. data/src/core/lib/channel/channel_args_preconditioning.cc +3 -3
  185. data/src/core/lib/channel/channel_args_preconditioning.h +3 -2
  186. data/src/core/lib/channel/channel_stack.cc +41 -3
  187. data/src/core/lib/channel/channel_stack.h +49 -3
  188. data/src/core/lib/channel/channel_stack_builder.cc +9 -19
  189. data/src/core/lib/channel/channel_stack_builder.h +15 -27
  190. data/src/core/lib/channel/channel_stack_builder_impl.cc +36 -41
  191. data/src/core/lib/channel/channel_stack_builder_impl.h +3 -6
  192. data/src/core/lib/channel/channel_trace.cc +8 -13
  193. data/src/core/lib/channel/channel_trace.h +6 -3
  194. data/src/core/lib/channel/channelz.cc +8 -13
  195. data/src/core/lib/channel/channelz.h +13 -4
  196. data/src/core/lib/channel/channelz_registry.cc +7 -14
  197. data/src/core/lib/channel/channelz_registry.h +10 -9
  198. data/src/core/lib/channel/connected_channel.cc +21 -31
  199. data/src/core/lib/channel/connected_channel.h +1 -0
  200. data/src/core/lib/channel/promise_based_filter.cc +444 -189
  201. data/src/core/lib/channel/promise_based_filter.h +160 -27
  202. data/src/core/lib/channel/status_util.cc +2 -0
  203. data/src/core/lib/channel/status_util.h +0 -3
  204. data/src/core/lib/compression/compression_internal.cc +45 -10
  205. data/src/core/lib/compression/compression_internal.h +1 -1
  206. data/src/core/lib/config/core_configuration.cc +3 -0
  207. data/src/core/lib/config/core_configuration.h +2 -1
  208. data/src/core/lib/event_engine/channel_args_endpoint_config.cc +4 -2
  209. data/src/core/lib/event_engine/channel_args_endpoint_config.h +3 -2
  210. data/src/core/lib/event_engine/default_event_engine_factory.cc +8 -2
  211. data/src/core/lib/event_engine/event_engine.cc +12 -2
  212. data/src/core/lib/event_engine/event_engine_factory.h +5 -0
  213. data/src/core/lib/event_engine/handle_containers.h +67 -0
  214. data/src/core/lib/event_engine/iomgr_engine.cc +206 -0
  215. data/src/core/lib/event_engine/iomgr_engine.h +118 -0
  216. data/src/core/lib/event_engine/memory_allocator.cc +12 -4
  217. data/src/core/lib/event_engine/resolved_address.cc +4 -2
  218. data/src/core/lib/event_engine/slice.cc +102 -0
  219. data/src/core/lib/event_engine/slice_buffer.cc +50 -0
  220. data/src/core/lib/{iomgr/event_engine/pollset.h → event_engine/trace.cc} +3 -10
  221. data/src/core/lib/{iomgr/endpoint_pair_event_engine.cc → event_engine/trace.h} +12 -14
  222. data/src/core/lib/gpr/log.cc +5 -0
  223. data/src/core/lib/gpr/tls.h +3 -5
  224. data/src/core/lib/gprpp/bitset.h +5 -1
  225. data/src/core/lib/gprpp/chunked_vector.h +4 -0
  226. data/src/core/lib/gprpp/construct_destruct.h +1 -0
  227. data/src/core/lib/gprpp/dual_ref_counted.h +1 -4
  228. data/src/core/lib/gprpp/examine_stack.h +0 -1
  229. data/src/core/lib/gprpp/fork.cc +3 -6
  230. data/src/core/lib/gprpp/global_config.h +2 -4
  231. data/src/core/lib/gprpp/global_config_env.cc +3 -2
  232. data/src/core/lib/gprpp/global_config_env.h +3 -1
  233. data/src/core/lib/gprpp/global_config_generic.h +0 -4
  234. data/src/core/lib/gprpp/host_port.cc +2 -0
  235. data/src/core/lib/gprpp/manual_constructor.h +0 -1
  236. data/src/core/lib/gprpp/match.h +2 -0
  237. data/src/core/lib/gprpp/memory.h +1 -5
  238. data/src/core/lib/gprpp/orphanable.h +1 -4
  239. data/src/core/lib/gprpp/ref_counted.h +1 -3
  240. data/src/core/lib/gprpp/ref_counted_ptr.h +1 -1
  241. data/src/core/lib/gprpp/stat.h +0 -2
  242. data/src/core/lib/gprpp/stat_posix.cc +7 -2
  243. data/src/core/lib/gprpp/status_helper.cc +8 -4
  244. data/src/core/lib/gprpp/status_helper.h +4 -0
  245. data/src/core/lib/gprpp/sync.h +3 -1
  246. data/src/core/lib/gprpp/table.h +10 -0
  247. data/src/core/lib/gprpp/thd.h +2 -5
  248. data/src/core/lib/gprpp/thd_posix.cc +4 -2
  249. data/src/core/lib/gprpp/thd_windows.cc +2 -0
  250. data/src/core/lib/gprpp/time.cc +8 -0
  251. data/src/core/lib/gprpp/time.h +6 -1
  252. data/src/core/lib/gprpp/time_util.cc +4 -0
  253. data/src/core/lib/gprpp/time_util.h +1 -1
  254. data/src/core/lib/gprpp/unique_type_name.h +104 -0
  255. data/src/core/lib/http/format_request.cc +29 -0
  256. data/src/core/lib/http/format_request.h +2 -0
  257. data/src/core/lib/http/httpcli.cc +88 -81
  258. data/src/core/lib/http/httpcli.h +39 -7
  259. data/src/core/lib/http/httpcli_security_connector.cc +3 -4
  260. data/src/core/lib/iomgr/endpoint.cc +4 -4
  261. data/src/core/lib/iomgr/endpoint.h +6 -4
  262. data/src/core/lib/iomgr/endpoint_cfstream.cc +7 -4
  263. data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -1
  264. data/src/core/lib/iomgr/ev_posix.cc +1 -4
  265. data/src/core/lib/iomgr/exec_ctx.h +1 -2
  266. data/src/core/lib/iomgr/internal_errqueue.cc +38 -47
  267. data/src/core/lib/iomgr/internal_errqueue.h +1 -6
  268. data/src/core/lib/iomgr/iomgr.cc +0 -1
  269. data/src/core/{ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc → lib/iomgr/iomgr_fwd.h} +9 -12
  270. data/src/core/lib/iomgr/pollset_set.h +1 -2
  271. data/src/core/lib/iomgr/port.h +25 -6
  272. data/src/core/lib/iomgr/resolve_address.cc +8 -0
  273. data/src/core/lib/iomgr/resolve_address.h +21 -14
  274. data/src/core/lib/iomgr/resolve_address_impl.h +2 -3
  275. data/src/core/lib/iomgr/resolve_address_posix.cc +8 -14
  276. data/src/core/lib/iomgr/resolve_address_posix.h +5 -2
  277. data/src/core/lib/iomgr/resolve_address_windows.cc +7 -14
  278. data/src/core/lib/iomgr/resolve_address_windows.h +5 -2
  279. data/src/core/lib/iomgr/sockaddr.h +2 -3
  280. data/src/core/lib/iomgr/sockaddr_posix.h +2 -0
  281. data/src/core/lib/iomgr/sockaddr_windows.h +2 -0
  282. data/src/core/lib/iomgr/socket_utils_common_posix.cc +3 -2
  283. data/src/core/lib/iomgr/tcp_client_cfstream.cc +10 -2
  284. data/src/core/lib/iomgr/tcp_client_posix.cc +12 -5
  285. data/src/core/lib/iomgr/tcp_client_windows.cc +13 -6
  286. data/src/core/lib/iomgr/tcp_posix.cc +9 -27
  287. data/src/core/lib/iomgr/tcp_server_posix.cc +26 -12
  288. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +30 -27
  289. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +7 -4
  290. data/src/core/lib/iomgr/tcp_server_windows.cc +13 -5
  291. data/src/core/lib/iomgr/tcp_windows.cc +7 -4
  292. data/src/core/lib/json/json.h +1 -2
  293. data/src/core/lib/json/json_reader.cc +9 -1
  294. data/src/core/lib/json/json_util.cc +7 -0
  295. data/src/core/lib/json/json_util.h +10 -1
  296. data/src/core/lib/json/json_writer.cc +6 -1
  297. data/src/core/lib/promise/activity.cc +1 -1
  298. data/src/core/lib/promise/activity.h +6 -6
  299. data/src/core/lib/promise/arena_promise.h +11 -1
  300. data/src/core/lib/promise/call_push_pull.h +4 -0
  301. data/src/core/lib/promise/context.h +1 -1
  302. data/src/core/lib/promise/detail/basic_seq.h +2 -2
  303. data/src/core/lib/promise/detail/promise_factory.h +0 -1
  304. data/src/core/lib/promise/latch.h +0 -1
  305. data/src/core/lib/promise/loop.h +1 -0
  306. data/src/core/lib/promise/race.h +0 -1
  307. data/src/core/lib/promise/seq.h +0 -2
  308. data/src/core/lib/promise/sleep.cc +2 -0
  309. data/src/core/lib/promise/sleep.h +10 -0
  310. data/src/core/lib/promise/try_seq.h +2 -2
  311. data/src/core/lib/resolver/resolver_factory.h +1 -2
  312. data/src/core/lib/resolver/server_address.cc +9 -3
  313. data/src/core/lib/resolver/server_address.h +4 -4
  314. data/src/core/lib/resource_quota/api.cc +14 -1
  315. data/src/core/lib/resource_quota/api.h +4 -1
  316. data/src/core/lib/resource_quota/arena.cc +0 -6
  317. data/src/core/lib/resource_quota/arena.h +1 -2
  318. data/src/core/lib/resource_quota/memory_quota.cc +47 -5
  319. data/src/core/lib/resource_quota/memory_quota.h +24 -5
  320. data/src/core/lib/resource_quota/resource_quota.h +8 -0
  321. data/src/core/lib/resource_quota/thread_quota.cc +2 -0
  322. data/src/core/lib/resource_quota/thread_quota.h +4 -0
  323. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +3 -0
  324. data/src/core/lib/security/credentials/alts/alts_credentials.cc +8 -2
  325. data/src/core/lib/security/credentials/alts/alts_credentials.h +2 -2
  326. data/src/core/lib/security/credentials/call_creds_util.cc +2 -0
  327. data/src/core/lib/security/credentials/channel_creds_registry.h +1 -0
  328. data/src/core/lib/security/credentials/composite/composite_credentials.cc +7 -3
  329. data/src/core/lib/security/credentials/composite/composite_credentials.h +5 -4
  330. data/src/core/lib/security/credentials/credentials.h +17 -10
  331. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +81 -0
  332. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +8 -0
  333. data/src/core/lib/security/credentials/external/external_account_credentials.cc +3 -0
  334. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +2 -0
  335. data/src/core/lib/security/credentials/fake/fake_credentials.cc +13 -3
  336. data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
  337. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +25 -15
  338. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +2 -2
  339. data/src/core/lib/security/credentials/iam/iam_credentials.cc +4 -1
  340. data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
  341. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +8 -2
  342. data/src/core/lib/security/credentials/insecure/insecure_credentials.h +4 -4
  343. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -2
  344. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
  345. data/src/core/lib/security/credentials/local/local_credentials.cc +8 -2
  346. data/src/core/lib/security/credentials/local/local_credentials.h +2 -2
  347. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +10 -6
  348. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +4 -4
  349. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +4 -1
  350. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +1 -1
  351. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +8 -2
  352. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +4 -4
  353. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +10 -0
  354. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +5 -7
  355. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +26 -1
  356. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +28 -4
  357. data/src/core/lib/security/credentials/tls/tls_credentials.cc +10 -0
  358. data/src/core/lib/security/credentials/tls/tls_credentials.h +2 -2
  359. data/src/core/lib/security/credentials/xds/xds_credentials.cc +12 -3
  360. data/src/core/lib/security/credentials/xds/xds_credentials.h +5 -5
  361. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +1 -1
  362. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +1 -1
  363. data/src/core/lib/security/security_connector/security_connector.cc +1 -1
  364. data/src/core/lib/security/security_connector/security_connector.h +1 -1
  365. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +1 -1
  366. data/src/core/lib/security/transport/client_auth_filter.cc +6 -8
  367. data/src/core/lib/security/transport/secure_endpoint.cc +23 -12
  368. data/src/core/lib/security/transport/security_handshaker.cc +5 -5
  369. data/src/core/lib/security/transport/security_handshaker.h +1 -1
  370. data/src/core/lib/security/transport/server_auth_filter.cc +3 -2
  371. data/src/core/lib/service_config/service_config.h +4 -8
  372. data/src/core/lib/service_config/service_config_call_data.h +4 -1
  373. data/src/core/lib/service_config/service_config_impl.cc +7 -0
  374. data/src/core/lib/service_config/service_config_impl.h +9 -2
  375. data/src/core/lib/service_config/service_config_parser.cc +8 -0
  376. data/src/core/lib/service_config/service_config_parser.h +7 -0
  377. data/src/core/lib/slice/b64.cc +1 -1
  378. data/src/core/lib/slice/b64.h +2 -0
  379. data/src/core/lib/slice/percent_encoding.cc +4 -1
  380. data/src/core/lib/slice/percent_encoding.h +0 -6
  381. data/src/core/lib/slice/slice.cc +2 -1
  382. data/src/core/lib/slice/slice.h +10 -5
  383. data/src/core/lib/slice/slice_api.cc +1 -1
  384. data/src/core/lib/slice/slice_buffer.cc +50 -23
  385. data/src/core/lib/slice/slice_buffer.h +106 -0
  386. data/src/core/lib/slice/slice_buffer_api.cc +35 -0
  387. data/src/core/lib/slice/slice_internal.h +4 -3
  388. data/src/core/lib/slice/slice_refcount.h +2 -3
  389. data/src/core/lib/slice/slice_refcount_base.h +2 -3
  390. data/src/core/lib/slice/slice_split.cc +3 -0
  391. data/src/core/lib/slice/slice_split.h +0 -4
  392. data/src/core/lib/slice/slice_string_helpers.cc +4 -0
  393. data/src/core/lib/slice/slice_string_helpers.h +1 -4
  394. data/src/core/lib/surface/builtins.cc +7 -2
  395. data/src/core/lib/surface/byte_buffer.cc +7 -1
  396. data/src/core/lib/surface/byte_buffer_reader.cc +4 -4
  397. data/src/core/lib/surface/call.cc +41 -26
  398. data/src/core/lib/surface/call.h +16 -2
  399. data/src/core/lib/surface/call_details.cc +4 -4
  400. data/src/core/lib/surface/call_log_batch.cc +7 -1
  401. data/src/core/lib/surface/call_test_only.h +4 -1
  402. data/src/core/lib/surface/channel.cc +179 -242
  403. data/src/core/lib/surface/channel.h +94 -57
  404. data/src/core/lib/surface/channel_init.h +2 -0
  405. data/src/core/lib/surface/channel_ping.cc +8 -2
  406. data/src/core/lib/surface/channel_stack_type.cc +0 -2
  407. data/src/core/lib/surface/channel_stack_type.h +0 -2
  408. data/src/core/lib/surface/completion_queue.cc +14 -6
  409. data/src/core/lib/surface/completion_queue.h +5 -1
  410. data/src/core/lib/surface/completion_queue_factory.cc +1 -0
  411. data/src/core/lib/surface/completion_queue_factory.h +1 -3
  412. data/src/core/lib/surface/event_string.cc +1 -7
  413. data/src/core/lib/surface/event_string.h +1 -1
  414. data/src/core/lib/surface/init.cc +17 -45
  415. data/src/core/lib/surface/init.h +0 -8
  416. data/src/core/lib/surface/lame_client.cc +64 -110
  417. data/src/core/lib/surface/lame_client.h +40 -2
  418. data/src/core/lib/surface/metadata_array.cc +2 -0
  419. data/src/core/lib/surface/server.cc +69 -56
  420. data/src/core/lib/surface/server.h +39 -9
  421. data/src/core/lib/surface/validate_metadata.cc +2 -5
  422. data/src/core/lib/surface/validate_metadata.h +3 -0
  423. data/src/core/lib/surface/version.cc +2 -2
  424. data/src/core/lib/transport/bdp_estimator.cc +3 -1
  425. data/src/core/lib/transport/bdp_estimator.h +2 -3
  426. data/src/core/lib/transport/byte_stream.cc +4 -3
  427. data/src/core/lib/transport/byte_stream.h +5 -1
  428. data/src/core/lib/transport/connectivity_state.cc +6 -4
  429. data/src/core/lib/transport/connectivity_state.h +2 -3
  430. data/src/core/lib/transport/error_utils.cc +4 -2
  431. data/src/core/lib/transport/error_utils.h +5 -1
  432. data/src/core/lib/{channel → transport}/handshaker.cc +9 -4
  433. data/src/core/lib/{channel → transport}/handshaker.h +13 -6
  434. data/src/core/lib/{channel → transport}/handshaker_factory.h +9 -10
  435. data/src/core/lib/{channel → transport}/handshaker_registry.cc +5 -1
  436. data/src/core/lib/{channel → transport}/handshaker_registry.h +5 -4
  437. data/src/core/{ext/filters/client_channel → lib/transport}/http_connect_handshaker.cc +24 -10
  438. data/src/core/{ext/filters/client_channel → lib/transport}/http_connect_handshaker.h +3 -3
  439. data/src/core/lib/transport/metadata_batch.cc +287 -0
  440. data/src/core/lib/transport/metadata_batch.h +133 -264
  441. data/src/core/lib/transport/parsed_metadata.cc +2 -0
  442. data/src/core/lib/transport/parsed_metadata.h +10 -3
  443. data/src/core/lib/transport/status_conversion.cc +2 -0
  444. data/src/core/lib/transport/status_conversion.h +2 -2
  445. data/src/core/lib/transport/tcp_connect_handshaker.cc +253 -0
  446. data/src/core/lib/transport/tcp_connect_handshaker.h +39 -0
  447. data/src/core/lib/transport/timeout_encoding.cc +2 -6
  448. data/src/core/lib/transport/timeout_encoding.h +5 -1
  449. data/src/core/lib/transport/transport.cc +18 -17
  450. data/src/core/lib/transport/transport.h +28 -2
  451. data/src/core/lib/transport/transport_impl.h +10 -0
  452. data/src/core/lib/transport/transport_op_string.cc +9 -10
  453. data/src/core/lib/uri/uri_parser.cc +11 -3
  454. data/src/core/lib/uri/uri_parser.h +0 -2
  455. data/src/core/plugin_registry/grpc_plugin_registry.cc +11 -0
  456. data/src/core/tsi/ssl/session_cache/ssl_session.h +2 -0
  457. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +2 -0
  458. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -0
  459. data/src/ruby/ext/grpc/extconf.rb +2 -2
  460. data/src/ruby/lib/grpc/version.rb +1 -1
  461. data/third_party/abseil-cpp/absl/cleanup/cleanup.h +140 -0
  462. data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +100 -0
  463. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +504 -0
  464. metadata +36 -29
  465. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +0 -31
  466. data/src/core/lib/event_engine/sockaddr.cc +0 -40
  467. data/src/core/lib/event_engine/sockaddr.h +0 -44
  468. data/src/core/lib/gprpp/capture.h +0 -76
  469. data/src/core/lib/iomgr/event_engine/closure.cc +0 -77
  470. data/src/core/lib/iomgr/event_engine/closure.h +0 -42
  471. data/src/core/lib/iomgr/event_engine/endpoint.cc +0 -172
  472. data/src/core/lib/iomgr/event_engine/endpoint.h +0 -52
  473. data/src/core/lib/iomgr/event_engine/iomgr.cc +0 -85
  474. data/src/core/lib/iomgr/event_engine/pollset.cc +0 -87
  475. data/src/core/lib/iomgr/event_engine/promise.h +0 -51
  476. data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +0 -47
  477. data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +0 -37
  478. data/src/core/lib/iomgr/event_engine/resolver.cc +0 -133
  479. data/src/core/lib/iomgr/event_engine/resolver.h +0 -56
  480. data/src/core/lib/iomgr/event_engine/tcp.cc +0 -296
  481. data/src/core/lib/iomgr/event_engine/timer.cc +0 -62
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.46.3
4
+ version: 1.47.0
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: 2022-05-20 00:00:00.000000000 Z
11
+ date: 2022-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -219,6 +219,8 @@ files:
219
219
  - include/grpc/event_engine/memory_allocator.h
220
220
  - include/grpc/event_engine/memory_request.h
221
221
  - include/grpc/event_engine/port.h
222
+ - include/grpc/event_engine/slice.h
223
+ - include/grpc/event_engine/slice_buffer.h
222
224
  - include/grpc/fork.h
223
225
  - include/grpc/grpc.h
224
226
  - include/grpc/grpc_cronet.h
@@ -299,14 +301,13 @@ files:
299
301
  - src/core/ext/filters/client_channel/global_subchannel_pool.h
300
302
  - src/core/ext/filters/client_channel/health/health_check_client.cc
301
303
  - src/core/ext/filters/client_channel/health/health_check_client.h
302
- - src/core/ext/filters/client_channel/http_connect_handshaker.cc
303
- - src/core/ext/filters/client_channel/http_connect_handshaker.h
304
304
  - src/core/ext/filters/client_channel/http_proxy.cc
305
305
  - src/core/ext/filters/client_channel/http_proxy.h
306
306
  - src/core/ext/filters/client_channel/lb_policy.cc
307
307
  - src/core/ext/filters/client_channel/lb_policy.h
308
308
  - src/core/ext/filters/client_channel/lb_policy/address_filtering.cc
309
309
  - src/core/ext/filters/client_channel/lb_policy/address_filtering.h
310
+ - src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h
310
311
  - src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc
311
312
  - src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h
312
313
  - src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc
@@ -319,6 +320,10 @@ files:
319
320
  - src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h
320
321
  - src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc
321
322
  - src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h
323
+ - src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc
324
+ - src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h
325
+ - src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc
326
+ - src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h
322
327
  - src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc
323
328
  - src/core/ext/filters/client_channel/lb_policy/priority/priority.cc
324
329
  - src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc
@@ -344,12 +349,10 @@ files:
344
349
  - src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc
345
350
  - src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc
346
351
  - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h
347
- - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc
348
352
  - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc
349
353
  - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc
350
354
  - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc
351
355
  - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h
352
- - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc
353
356
  - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc
354
357
  - src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc
355
358
  - src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc
@@ -375,6 +378,7 @@ files:
375
378
  - src/core/ext/filters/client_channel/subchannel.cc
376
379
  - src/core/ext/filters/client_channel/subchannel.h
377
380
  - src/core/ext/filters/client_channel/subchannel_interface.h
381
+ - src/core/ext/filters/client_channel/subchannel_interface_internal.h
378
382
  - src/core/ext/filters/client_channel/subchannel_pool_interface.cc
379
383
  - src/core/ext/filters/client_channel/subchannel_pool_interface.h
380
384
  - src/core/ext/filters/client_channel/subchannel_stream_client.cc
@@ -733,6 +737,8 @@ files:
733
737
  - src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h
734
738
  - src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c
735
739
  - src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h
740
+ - src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c
741
+ - src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h
736
742
  - src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c
737
743
  - src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h
738
744
  - src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c
@@ -1082,11 +1088,6 @@ files:
1082
1088
  - src/core/lib/channel/connected_channel.cc
1083
1089
  - src/core/lib/channel/connected_channel.h
1084
1090
  - src/core/lib/channel/context.h
1085
- - src/core/lib/channel/handshaker.cc
1086
- - src/core/lib/channel/handshaker.h
1087
- - src/core/lib/channel/handshaker_factory.h
1088
- - src/core/lib/channel/handshaker_registry.cc
1089
- - src/core/lib/channel/handshaker_registry.h
1090
1091
  - src/core/lib/channel/promise_based_filter.cc
1091
1092
  - src/core/lib/channel/promise_based_filter.h
1092
1093
  - src/core/lib/channel/status_util.cc
@@ -1109,10 +1110,15 @@ files:
1109
1110
  - src/core/lib/event_engine/default_event_engine_factory.cc
1110
1111
  - src/core/lib/event_engine/event_engine.cc
1111
1112
  - src/core/lib/event_engine/event_engine_factory.h
1113
+ - src/core/lib/event_engine/handle_containers.h
1114
+ - src/core/lib/event_engine/iomgr_engine.cc
1115
+ - src/core/lib/event_engine/iomgr_engine.h
1112
1116
  - src/core/lib/event_engine/memory_allocator.cc
1113
1117
  - src/core/lib/event_engine/resolved_address.cc
1114
- - src/core/lib/event_engine/sockaddr.cc
1115
- - src/core/lib/event_engine/sockaddr.h
1118
+ - src/core/lib/event_engine/slice.cc
1119
+ - src/core/lib/event_engine/slice_buffer.cc
1120
+ - src/core/lib/event_engine/trace.cc
1121
+ - src/core/lib/event_engine/trace.h
1116
1122
  - src/core/lib/gpr/alloc.cc
1117
1123
  - src/core/lib/gpr/alloc.h
1118
1124
  - src/core/lib/gpr/atm.cc
@@ -1156,7 +1162,6 @@ files:
1156
1162
  - src/core/lib/gpr/wrap_memcpy.cc
1157
1163
  - src/core/lib/gprpp/atomic_utils.h
1158
1164
  - src/core/lib/gprpp/bitset.h
1159
- - src/core/lib/gprpp/capture.h
1160
1165
  - src/core/lib/gprpp/chunked_vector.h
1161
1166
  - src/core/lib/gprpp/construct_destruct.h
1162
1167
  - src/core/lib/gprpp/cpp_impl_of.h
@@ -1197,6 +1202,7 @@ files:
1197
1202
  - src/core/lib/gprpp/time.h
1198
1203
  - src/core/lib/gprpp/time_util.cc
1199
1204
  - src/core/lib/gprpp/time_util.h
1205
+ - src/core/lib/gprpp/unique_type_name.h
1200
1206
  - src/core/lib/http/format_request.cc
1201
1207
  - src/core/lib/http/format_request.h
1202
1208
  - src/core/lib/http/httpcli.cc
@@ -1222,7 +1228,6 @@ files:
1222
1228
  - src/core/lib/iomgr/endpoint_cfstream.cc
1223
1229
  - src/core/lib/iomgr/endpoint_cfstream.h
1224
1230
  - src/core/lib/iomgr/endpoint_pair.h
1225
- - src/core/lib/iomgr/endpoint_pair_event_engine.cc
1226
1231
  - src/core/lib/iomgr/endpoint_pair_posix.cc
1227
1232
  - src/core/lib/iomgr/endpoint_pair_windows.cc
1228
1233
  - src/core/lib/iomgr/error.cc
@@ -1239,20 +1244,6 @@ files:
1239
1244
  - src/core/lib/iomgr/ev_posix.cc
1240
1245
  - src/core/lib/iomgr/ev_posix.h
1241
1246
  - src/core/lib/iomgr/ev_windows.cc
1242
- - src/core/lib/iomgr/event_engine/closure.cc
1243
- - src/core/lib/iomgr/event_engine/closure.h
1244
- - src/core/lib/iomgr/event_engine/endpoint.cc
1245
- - src/core/lib/iomgr/event_engine/endpoint.h
1246
- - src/core/lib/iomgr/event_engine/iomgr.cc
1247
- - src/core/lib/iomgr/event_engine/pollset.cc
1248
- - src/core/lib/iomgr/event_engine/pollset.h
1249
- - src/core/lib/iomgr/event_engine/promise.h
1250
- - src/core/lib/iomgr/event_engine/resolved_address_internal.cc
1251
- - src/core/lib/iomgr/event_engine/resolved_address_internal.h
1252
- - src/core/lib/iomgr/event_engine/resolver.cc
1253
- - src/core/lib/iomgr/event_engine/resolver.h
1254
- - src/core/lib/iomgr/event_engine/tcp.cc
1255
- - src/core/lib/iomgr/event_engine/timer.cc
1256
1247
  - src/core/lib/iomgr/exec_ctx.cc
1257
1248
  - src/core/lib/iomgr/exec_ctx.h
1258
1249
  - src/core/lib/iomgr/executor.cc
@@ -1276,6 +1267,7 @@ files:
1276
1267
  - src/core/lib/iomgr/iocp_windows.h
1277
1268
  - src/core/lib/iomgr/iomgr.cc
1278
1269
  - src/core/lib/iomgr/iomgr.h
1270
+ - src/core/lib/iomgr/iomgr_fwd.h
1279
1271
  - src/core/lib/iomgr/iomgr_internal.cc
1280
1272
  - src/core/lib/iomgr/iomgr_internal.h
1281
1273
  - src/core/lib/iomgr/iomgr_posix.cc
@@ -1540,6 +1532,8 @@ files:
1540
1532
  - src/core/lib/slice/slice.h
1541
1533
  - src/core/lib/slice/slice_api.cc
1542
1534
  - src/core/lib/slice/slice_buffer.cc
1535
+ - src/core/lib/slice/slice_buffer.h
1536
+ - src/core/lib/slice/slice_buffer_api.cc
1543
1537
  - src/core/lib/slice/slice_internal.h
1544
1538
  - src/core/lib/slice/slice_refcount.cc
1545
1539
  - src/core/lib/slice/slice_refcount.h
@@ -1590,7 +1584,15 @@ files:
1590
1584
  - src/core/lib/transport/connectivity_state.h
1591
1585
  - src/core/lib/transport/error_utils.cc
1592
1586
  - src/core/lib/transport/error_utils.h
1587
+ - src/core/lib/transport/handshaker.cc
1588
+ - src/core/lib/transport/handshaker.h
1589
+ - src/core/lib/transport/handshaker_factory.h
1590
+ - src/core/lib/transport/handshaker_registry.cc
1591
+ - src/core/lib/transport/handshaker_registry.h
1593
1592
  - src/core/lib/transport/http2_errors.h
1593
+ - src/core/lib/transport/http_connect_handshaker.cc
1594
+ - src/core/lib/transport/http_connect_handshaker.h
1595
+ - src/core/lib/transport/metadata_batch.cc
1594
1596
  - src/core/lib/transport/metadata_batch.h
1595
1597
  - src/core/lib/transport/parsed_metadata.cc
1596
1598
  - src/core/lib/transport/parsed_metadata.h
@@ -1598,6 +1600,8 @@ files:
1598
1600
  - src/core/lib/transport/pid_controller.h
1599
1601
  - src/core/lib/transport/status_conversion.cc
1600
1602
  - src/core/lib/transport/status_conversion.h
1603
+ - src/core/lib/transport/tcp_connect_handshaker.cc
1604
+ - src/core/lib/transport/tcp_connect_handshaker.h
1601
1605
  - src/core/lib/transport/timeout_encoding.cc
1602
1606
  - src/core/lib/transport/timeout_encoding.h
1603
1607
  - src/core/lib/transport/transport.cc
@@ -1836,8 +1840,11 @@ files:
1836
1840
  - third_party/abseil-cpp/absl/base/policy_checks.h
1837
1841
  - third_party/abseil-cpp/absl/base/port.h
1838
1842
  - third_party/abseil-cpp/absl/base/thread_annotations.h
1843
+ - third_party/abseil-cpp/absl/cleanup/cleanup.h
1844
+ - third_party/abseil-cpp/absl/cleanup/internal/cleanup.h
1839
1845
  - third_party/abseil-cpp/absl/container/fixed_array.h
1840
1846
  - third_party/abseil-cpp/absl/container/flat_hash_map.h
1847
+ - third_party/abseil-cpp/absl/container/flat_hash_set.h
1841
1848
  - third_party/abseil-cpp/absl/container/inlined_vector.h
1842
1849
  - third_party/abseil-cpp/absl/container/internal/common.h
1843
1850
  - third_party/abseil-cpp/absl/container/internal/compressed_tuple.h
@@ -1,31 +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
- #include <grpc/support/port_platform.h>
15
-
16
- #include "src/core/lib/iomgr/port.h"
17
- #if GRPC_ARES == 1 && defined(GRPC_USE_EVENT_ENGINE)
18
-
19
- #include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h"
20
- #include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h"
21
-
22
- namespace grpc_core {
23
-
24
- std::unique_ptr<GrpcPolledFdFactory> NewGrpcPolledFdFactory(
25
- std::shared_ptr<WorkSerializer> /* work_serializer */) {
26
- return nullptr;
27
- }
28
-
29
- } // namespace grpc_core
30
-
31
- #endif /* GRPC_ARES == 1 && defined(GRPC_USE_EVENT_ENGINE) */
@@ -1,40 +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
- #include <grpc/support/port_platform.h>
15
-
16
- #ifdef GRPC_USE_EVENT_ENGINE
17
- #include <string.h>
18
-
19
- #include <grpc/event_engine/event_engine.h>
20
- #include <grpc/event_engine/port.h>
21
- #include <grpc/support/log.h>
22
-
23
- uint16_t grpc_htons(uint16_t hostshort) { return htons(hostshort); }
24
-
25
- uint16_t grpc_ntohs(uint16_t netshort) { return ntohs(netshort); }
26
-
27
- uint32_t grpc_htonl(uint32_t hostlong) { return htonl(hostlong); }
28
-
29
- uint32_t grpc_ntohl(uint32_t netlong) { return ntohl(netlong); }
30
-
31
- int grpc_inet_pton(int af, const char* src, void* dst) {
32
- return inet_pton(af, src, dst);
33
- }
34
-
35
- const char* grpc_inet_ntop(int af, const void* src, char* dst, size_t size) {
36
- inet_ntop(af, src, dst, size);
37
- return dst;
38
- }
39
-
40
- #endif // GRPC_USE_EVENT_ENGINE
@@ -1,44 +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_CORE_LIB_EVENT_ENGINE_SOCKADDR_H
15
- #define GRPC_CORE_LIB_EVENT_ENGINE_SOCKADDR_H
16
-
17
- #include <grpc/support/port_platform.h>
18
-
19
- #ifdef GRPC_USE_EVENT_ENGINE
20
- #include <grpc/event_engine/port.h>
21
-
22
- #include "src/core/lib/iomgr/port.h"
23
-
24
- typedef struct sockaddr grpc_sockaddr;
25
- typedef struct sockaddr_in grpc_sockaddr_in;
26
- typedef struct sockaddr_in6 grpc_sockaddr_in6;
27
- typedef struct in_addr grpc_in_addr;
28
- typedef struct in6_addr grpc_in6_addr;
29
-
30
- #define GRPC_INET_ADDRSTRLEN INET_ADDRSTRLEN
31
- #define GRPC_INET6_ADDRSTRLEN INET6_ADDRSTRLEN
32
-
33
- #define GRPC_SOCK_STREAM SOCK_STREAM
34
- #define GRPC_SOCK_DGRAM SOCK_DGRAM
35
-
36
- #define GRPC_AF_UNSPEC AF_UNSPEC
37
- #define GRPC_AF_UNIX AF_UNIX
38
- #define GRPC_AF_INET AF_INET
39
- #define GRPC_AF_INET6 AF_INET6
40
-
41
- #define GRPC_AI_PASSIVE AI_PASSIVE
42
-
43
- #endif
44
- #endif // GRPC_CORE_LIB_EVENT_ENGINE_SOCKADDR_H
@@ -1,76 +0,0 @@
1
- // Copyright 2021 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
-
15
- #ifndef GRPC_CORE_LIB_GPRPP_CAPTURE_H
16
- #define GRPC_CORE_LIB_GPRPP_CAPTURE_H
17
-
18
- #include <grpc/support/port_platform.h>
19
-
20
- #include <tuple>
21
- #include <utility>
22
-
23
- #include "absl/utility/utility.h"
24
-
25
- namespace grpc_core {
26
-
27
- namespace detail {
28
-
29
- template <typename F, typename... Captures>
30
- class Capture {
31
- public:
32
- explicit Capture(F f, Captures... captures)
33
- : f_(std::move(f)), captures_(std::move(captures)...) {}
34
-
35
- template <typename... Args>
36
- decltype(std::declval<F>()(static_cast<Captures*>(nullptr)...,
37
- std::declval<Args>()...))
38
- operator()(Args... args) {
39
- auto f = &f_;
40
- return absl::apply(
41
- [f, &args...](Captures&... captures) {
42
- return (*f)(&captures..., std::move(args)...);
43
- },
44
- captures_);
45
- }
46
-
47
- private:
48
- GPR_NO_UNIQUE_ADDRESS F f_;
49
- GPR_NO_UNIQUE_ADDRESS std::tuple<Captures...> captures_;
50
- };
51
-
52
- } // namespace detail
53
-
54
- // C++11 helper - best explained by usage:
55
- //
56
- // BigThing big_thing;
57
- // auto f = Capture(
58
- // [](BigThing* c, int a, int b) { /*...*/ },
59
- // std::move(big_thing));
60
- //
61
- // results in: f being a callable that takes arguments (int a, int b), and
62
- // captures the original value of big_thing by move. Each call, a pointer to
63
- // each captured thing is inserted into the argument list at the beginning so it
64
- // can be manipulated.
65
- //
66
- // Captured values are mutable, and it's the users responsibility to ensure,
67
- // should this callable be invoked from different threads, that proper locking
68
- // is implemented.
69
- template <typename F, typename... Captures>
70
- detail::Capture<F, Captures...> Capture(F f, Captures... captures) {
71
- return detail::Capture<F, Captures...>(std::move(f), std::move(captures)...);
72
- }
73
-
74
- } // namespace grpc_core
75
-
76
- #endif // GRPC_CORE_LIB_GPRPP_CAPTURE_H
@@ -1,77 +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
- #include <grpc/support/port_platform.h>
15
-
16
- #ifdef GRPC_USE_EVENT_ENGINE
17
- #include <grpc/event_engine/event_engine.h>
18
-
19
- #include "src/core/lib/iomgr/closure.h"
20
- #include "src/core/lib/iomgr/event_engine/closure.h"
21
- #include "src/core/lib/iomgr/event_engine/pollset.h"
22
- #include "src/core/lib/transport/error_utils.h"
23
-
24
- namespace grpc_event_engine {
25
- namespace experimental {
26
-
27
- namespace {
28
-
29
- void RunClosure(grpc_closure* closure, grpc_error_handle error) {
30
- GPR_ASSERT(closure != nullptr);
31
- #ifndef NDEBUG
32
- closure->scheduled = false;
33
- if (grpc_trace_closure.enabled()) {
34
- gpr_log(GPR_DEBUG,
35
- "EventEngine: running closure %p: created [%s:%d]: %s [%s:%d]",
36
- closure, closure->file_created, closure->line_created,
37
- closure->run ? "run" : "scheduled", closure->file_initiated,
38
- closure->line_initiated);
39
- }
40
- #endif
41
- closure->cb(closure->cb_arg, error);
42
- #ifndef NDEBUG
43
- if (grpc_trace_closure.enabled()) {
44
- gpr_log(GPR_DEBUG, "EventEngine: closure %p finished", closure);
45
- }
46
- #endif
47
- }
48
-
49
- } // namespace
50
-
51
- std::function<void(absl::Status)> GrpcClosureToStatusCallback(
52
- grpc_closure* closure) {
53
- return [closure](absl::Status status) {
54
- RunClosure(closure, absl_status_to_grpc_error(status));
55
- grpc_pollset_ee_broadcast_event();
56
- };
57
- }
58
-
59
- std::function<void()> GrpcClosureToCallback(grpc_closure* closure) {
60
- return [closure]() {
61
- RunClosure(closure, GRPC_ERROR_NONE);
62
- grpc_pollset_ee_broadcast_event();
63
- };
64
- }
65
-
66
- std::function<void()> GrpcClosureToCallback(grpc_closure* closure,
67
- grpc_error_handle error) {
68
- return [closure, error]() {
69
- RunClosure(closure, error);
70
- grpc_pollset_ee_broadcast_event();
71
- };
72
- }
73
-
74
- } // namespace experimental
75
- } // namespace grpc_event_engine
76
-
77
- #endif // GRPC_USE_EVENT_ENGINE
@@ -1,42 +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_CORE_LIB_IOMGR_EVENT_ENGINE_CLOSURE_H
15
- #define GRPC_CORE_LIB_IOMGR_EVENT_ENGINE_CLOSURE_H
16
-
17
- #include <grpc/support/port_platform.h>
18
-
19
- #include <grpc/event_engine/event_engine.h>
20
-
21
- #include "src/core/lib/iomgr/closure.h"
22
- #include "src/core/lib/iomgr/error.h"
23
-
24
- namespace grpc_event_engine {
25
- namespace experimental {
26
-
27
- /// Creates a callback that takes an error status argument.
28
- std::function<void(absl::Status)> GrpcClosureToStatusCallback(
29
- grpc_closure* closure);
30
-
31
- /// Create a callback that *does not* take an error status argument.
32
- std::function<void()> GrpcClosureToCallback(grpc_closure* closure);
33
-
34
- /// Creates a callback that *does not* take an error status argument.
35
- /// This version has a pre-bound error.
36
- std::function<void()> GrpcClosureToCallback(grpc_closure* closure,
37
- grpc_error_handle error);
38
-
39
- } // namespace experimental
40
- } // namespace grpc_event_engine
41
-
42
- #endif // GRPC_CORE_LIB_IOMGR_EVENT_ENGINE_CLOSURE_H