grpc 1.45.0 → 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.
- checksums.yaml +4 -4
- data/Makefile +69 -110
- data/include/grpc/event_engine/event_engine.h +42 -7
- data/include/grpc/event_engine/memory_allocator.h +0 -15
- data/include/grpc/event_engine/port.h +1 -1
- data/include/grpc/event_engine/slice.h +286 -0
- data/include/grpc/event_engine/slice_buffer.h +112 -0
- data/include/grpc/grpc_security.h +11 -0
- data/include/grpc/impl/codegen/grpc_types.h +7 -13
- data/include/grpc/impl/codegen/port_platform.h +100 -36
- data/include/grpc/impl/codegen/slice.h +1 -1
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +297 -0
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +125 -0
- data/src/core/ext/filters/{client_idle → channel_idle}/idle_filter_state.cc +1 -1
- data/src/core/ext/filters/{client_idle → channel_idle}/idle_filter_state.h +3 -3
- data/src/core/ext/filters/client_channel/backend_metric.cc +17 -12
- data/src/core/ext/filters/client_channel/backend_metric.h +19 -9
- data/src/core/ext/filters/client_channel/backup_poller.cc +5 -5
- data/src/core/ext/filters/client_channel/backup_poller.h +2 -4
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +42 -20
- data/src/core/ext/filters/client_channel/client_channel.cc +223 -113
- data/src/core/ext/filters/client_channel/client_channel.h +28 -6
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +3 -5
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +12 -2
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +5 -0
- data/src/core/ext/filters/client_channel/client_channel_factory.h +8 -0
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -13
- data/src/core/ext/filters/client_channel/config_selector.cc +1 -0
- data/src/core/ext/filters/client_channel/config_selector.h +7 -5
- data/src/core/ext/filters/client_channel/connector.h +8 -2
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +13 -2
- data/src/core/ext/filters/client_channel/dynamic_filters.h +11 -1
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +2 -0
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +3 -0
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +138 -582
- data/src/core/ext/filters/client_channel/health/health_check_client.h +26 -160
- data/src/core/ext/filters/client_channel/http_proxy.cc +98 -112
- data/src/core/ext/filters/client_channel/http_proxy.h +20 -0
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +6 -2
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +49 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +12 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +5 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +9 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +59 -19
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +4 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +6 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +10 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +6 -3
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +408 -0
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +57 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +1038 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +54 -0
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +60 -52
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +277 -195
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +158 -101
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +46 -20
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +182 -171
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +39 -36
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +117 -63
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +142 -63
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +6 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +30 -4
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +37 -10
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +300 -291
- data/src/core/ext/filters/client_channel/lb_policy.cc +4 -2
- data/src/core/ext/filters/client_channel/lb_policy.h +18 -24
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +8 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +6 -1
- data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +4 -0
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +1 -0
- data/src/core/ext/filters/client_channel/proxy_mapper.h +1 -1
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +2 -0
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +5 -0
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +23 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +226 -300
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +8 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +10 -8
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +26 -9
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +13 -4
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +2 -1
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +2 -0
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +2 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +73 -220
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +13 -14
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +5 -2
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +59 -13
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +213 -0
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +113 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +15 -11
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +182 -79
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +5 -11
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +11 -5
- data/src/core/ext/filters/client_channel/retry_filter.cc +60 -5
- data/src/core/ext/filters/client_channel/retry_service_config.cc +8 -9
- data/src/core/ext/filters/client_channel/retry_service_config.h +10 -1
- data/src/core/ext/filters/client_channel/retry_throttle.cc +1 -8
- data/src/core/ext/filters/client_channel/retry_throttle.h +7 -1
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +22 -5
- data/src/core/ext/filters/client_channel/subchannel.cc +161 -165
- data/src/core/ext/filters/client_channel/subchannel.h +80 -20
- data/src/core/ext/filters/client_channel/subchannel_interface.h +41 -23
- data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +38 -0
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +12 -2
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +6 -3
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +558 -0
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +226 -0
- data/src/core/ext/filters/deadline/deadline_filter.cc +6 -2
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +123 -366
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +24 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +87 -458
- data/src/core/ext/filters/http/client/http_client_filter.h +27 -4
- data/src/core/ext/filters/http/client_authority_filter.cc +21 -31
- data/src/core/ext/filters/http/client_authority_filter.h +6 -5
- data/src/core/ext/filters/http/http_filters_plugin.cc +16 -14
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +1 -0
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +3 -1
- data/src/core/ext/filters/http/server/http_server_filter.cc +80 -361
- data/src/core/ext/filters/http/server/http_server_filter.h +31 -2
- data/src/core/ext/filters/message_size/message_size_filter.cc +20 -26
- data/src/core/ext/filters/message_size/message_size_filter.h +2 -2
- data/src/core/ext/filters/rbac/rbac_filter.cc +1 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector.cc +2 -8
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +2 -2
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +73 -201
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +102 -135
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +9 -7
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +49 -19
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -0
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -1
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +205 -45
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +5 -0
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -0
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +6 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.h +6 -2
- data/src/core/ext/transport/chttp2/transport/frame.h +0 -4
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +7 -1
- data/src/core/ext/transport/chttp2/transport/frame_data.h +4 -1
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +3 -0
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +3 -1
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -0
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +3 -0
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +6 -2
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +3 -0
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +14 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +4 -0
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -1
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +3 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +13 -15
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +15 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +3 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +3 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +25 -7
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +8 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +55 -37
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +38 -21
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +0 -1
- data/src/core/ext/transport/chttp2/transport/internal.h +28 -5
- data/src/core/ext/transport/chttp2/transport/parsing.cc +35 -6
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +13 -9
- data/src/core/ext/transport/chttp2/transport/stream_map.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/stream_map.h +1 -0
- data/src/core/ext/transport/chttp2/transport/varint.h +2 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +62 -15
- data/src/core/ext/transport/inproc/inproc_transport.cc +8 -5
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +27 -24
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +143 -63
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +37 -35
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +177 -77
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +115 -111
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +547 -207
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +26 -13
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +23 -9
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +18 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +13 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +9 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +49 -46
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +217 -78
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +10 -2
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +12 -12
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +40 -8
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +20 -2
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +55 -55
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +289 -110
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +133 -125
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +656 -267
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +24 -18
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +96 -23
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +185 -173
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +860 -309
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +10 -2
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +44 -24
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +165 -40
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +72 -63
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +433 -174
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +33 -31
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +154 -52
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +5 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +14 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +89 -89
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +460 -166
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +76 -33
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +379 -69
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +14 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +5 -25
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +10 -91
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +26 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +70 -68
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +369 -131
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +94 -65
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +447 -161
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +27 -11
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +104 -85
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +378 -113
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +3 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +30 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +43 -16
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +58 -24
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +14 -4
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +18 -18
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +100 -43
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +31 -30
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +171 -71
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +32 -32
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +196 -95
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +7 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +53 -46
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +284 -129
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +56 -50
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +337 -146
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +13 -11
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +49 -14
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +14 -4
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +20 -4
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +33 -32
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +205 -86
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +34 -34
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +175 -74
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +56 -52
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +370 -146
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +27 -23
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +173 -74
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +362 -341
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +2056 -845
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +11 -11
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +49 -16
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +56 -50
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +293 -111
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +6 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +10 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +26 -10
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +27 -12
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +17 -16
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +83 -36
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +7 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +46 -17
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +38 -12
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +10 -6
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +15 -15
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +71 -28
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +25 -25
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +149 -65
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +8 -7
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +30 -12
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +42 -15
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +173 -144
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +898 -323
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +51 -45
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +261 -116
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +13 -13
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +70 -25
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +80 -55
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +410 -124
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +23 -9
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +44 -44
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +261 -122
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +47 -21
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +32 -32
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +175 -66
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +17 -6
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +38 -17
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +12 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +43 -18
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +20 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +24 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +14 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +40 -16
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +70 -25
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +37 -18
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +12 -12
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +81 -30
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +16 -16
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +76 -30
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +20 -20
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +90 -30
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +28 -10
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +3 -0
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +13 -4
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +18 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +9 -0
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +17 -4
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +3 -3
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +17 -2
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +70 -66
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +410 -162
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +80 -74
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +440 -158
- data/src/core/ext/upb-generated/google/api/http.upb.c +17 -17
- data/src/core/ext/upb-generated/google/api/http.upb.h +116 -43
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +4 -4
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +19 -7
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +3 -3
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +6 -0
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +163 -162
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +1157 -435
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +3 -3
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +10 -4
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +15 -15
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +108 -40
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +3 -3
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +10 -4
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +18 -18
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +27 -0
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +4 -4
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +19 -7
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +15 -15
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +65 -22
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +12 -12
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +49 -12
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +69 -65
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +364 -149
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +8 -7
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +20 -4
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +4 -4
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +6 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +31 -31
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +150 -58
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +11 -11
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +51 -18
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +175 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +764 -0
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +22 -22
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +97 -10
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +6 -6
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +23 -2
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +10 -2
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +6 -6
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +27 -6
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +5 -5
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +20 -2
- data/src/core/ext/upb-generated/validate/validate.upb.c +261 -250
- data/src/core/ext/upb-generated/validate/validate.upb.h +1836 -663
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +22 -22
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +97 -10
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +6 -6
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +23 -2
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +10 -2
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +18 -18
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +70 -10
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +20 -2
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +2 -2
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +3 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +8 -8
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +38 -12
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +27 -10
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +10 -2
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +21 -8
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +10 -10
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +71 -30
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +16 -2
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +12 -12
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +69 -26
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +47 -0
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +109 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +43 -39
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +255 -103
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +4 -4
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +19 -8
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +9 -9
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +70 -25
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +10 -2
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +50 -46
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +195 -185
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +16 -12
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +129 -94
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +18 -33
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +0 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +163 -155
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +141 -138
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +26 -20
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +738 -730
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +271 -251
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +207 -193
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +99 -0
- data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +75 -0
- data/src/core/ext/xds/certificate_provider_store.cc +10 -0
- data/src/core/ext/xds/certificate_provider_store.h +9 -0
- data/src/core/ext/xds/xds_api.cc +20 -0
- data/src/core/ext/xds/xds_bootstrap.cc +2 -2
- data/src/core/ext/xds/xds_bootstrap.h +2 -0
- data/src/core/ext/xds/xds_certificate_provider.cc +5 -0
- data/src/core/ext/xds/xds_certificate_provider.h +8 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +5 -5
- data/src/core/ext/xds/xds_client.cc +125 -109
- data/src/core/ext/xds/xds_client.h +13 -5
- data/src/core/ext/xds/xds_cluster.cc +106 -16
- data/src/core/ext/xds/xds_cluster.h +3 -0
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +142 -0
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +79 -0
- data/src/core/ext/xds/xds_common_types.cc +9 -9
- data/src/core/ext/xds/xds_common_types.h +3 -3
- data/src/core/ext/xds/xds_endpoint.cc +12 -5
- data/src/core/ext/xds/xds_http_fault_filter.cc +4 -4
- data/src/core/ext/xds/xds_listener.cc +20 -10
- data/src/core/ext/xds/xds_route_config.cc +162 -25
- data/src/core/ext/xds/xds_route_config.h +13 -10
- data/src/core/ext/xds/xds_server_config_fetcher.cc +19 -23
- data/src/core/lib/address_utils/sockaddr_utils.cc +56 -23
- data/src/core/lib/address_utils/sockaddr_utils.h +7 -4
- data/src/core/lib/avl/avl.h +71 -6
- data/src/core/lib/channel/call_finalization.h +4 -0
- data/src/core/lib/channel/call_tracer.h +12 -3
- data/src/core/lib/channel/channel_args.cc +179 -81
- data/src/core/lib/channel/channel_args.h +242 -11
- data/src/core/lib/channel/channel_args_preconditioning.cc +5 -11
- data/src/core/lib/channel/channel_args_preconditioning.h +4 -4
- data/src/core/lib/channel/channel_stack.cc +41 -3
- data/src/core/lib/channel/channel_stack.h +51 -8
- data/src/core/lib/channel/channel_stack_builder.cc +9 -84
- data/src/core/lib/channel/channel_stack_builder.h +35 -26
- data/src/core/lib/channel/channel_stack_builder_impl.cc +97 -0
- data/src/core/lib/channel/channel_stack_builder_impl.h +45 -0
- data/src/core/lib/channel/channel_trace.cc +8 -13
- data/src/core/lib/channel/channel_trace.h +6 -3
- data/src/core/lib/channel/channelz.cc +8 -13
- data/src/core/lib/channel/channelz.h +13 -4
- data/src/core/lib/channel/channelz_registry.cc +7 -14
- data/src/core/lib/channel/channelz_registry.h +10 -9
- data/src/core/lib/channel/connected_channel.cc +21 -31
- data/src/core/lib/channel/connected_channel.h +2 -0
- data/src/core/lib/channel/promise_based_filter.cc +848 -260
- data/src/core/lib/channel/promise_based_filter.h +215 -68
- data/src/core/lib/channel/status_util.cc +2 -0
- data/src/core/lib/channel/status_util.h +0 -3
- data/src/core/lib/compression/compression_internal.cc +46 -17
- data/src/core/lib/compression/compression_internal.h +1 -1
- data/src/core/lib/config/core_configuration.cc +3 -0
- data/src/core/lib/config/core_configuration.h +2 -1
- data/src/core/lib/debug/stats_data.cc +2 -6
- data/src/core/lib/debug/stats_data.h +18 -21
- data/src/core/lib/event_engine/channel_args_endpoint_config.cc +4 -2
- data/src/core/lib/event_engine/channel_args_endpoint_config.h +3 -2
- data/src/core/lib/event_engine/default_event_engine_factory.cc +8 -2
- data/src/core/lib/event_engine/event_engine.cc +12 -2
- data/src/core/lib/event_engine/event_engine_factory.h +5 -0
- data/src/core/lib/event_engine/handle_containers.h +67 -0
- data/src/core/lib/event_engine/iomgr_engine.cc +206 -0
- data/src/core/lib/event_engine/iomgr_engine.h +118 -0
- data/src/core/lib/event_engine/memory_allocator.cc +12 -4
- data/src/core/lib/event_engine/resolved_address.cc +4 -2
- data/src/core/lib/event_engine/slice.cc +102 -0
- data/src/core/lib/event_engine/slice_buffer.cc +50 -0
- data/src/core/{ext/filters/max_age/max_age_filter.h → lib/event_engine/trace.cc} +3 -11
- data/src/core/lib/{iomgr/endpoint_pair_event_engine.cc → event_engine/trace.h} +12 -14
- data/src/core/lib/gpr/log.cc +5 -0
- data/src/core/lib/gpr/tls.h +4 -5
- data/src/core/lib/gprpp/bitset.h +17 -1
- data/src/core/lib/gprpp/chunked_vector.h +4 -0
- data/src/core/lib/gprpp/construct_destruct.h +1 -0
- data/src/core/lib/gprpp/cpp_impl_of.h +4 -0
- data/src/core/lib/gprpp/dual_ref_counted.h +1 -4
- data/src/core/lib/gprpp/examine_stack.h +0 -1
- data/src/core/lib/gprpp/fork.cc +3 -6
- data/src/core/lib/gprpp/global_config.h +2 -4
- data/src/core/lib/gprpp/global_config_env.cc +3 -2
- data/src/core/lib/gprpp/global_config_env.h +3 -1
- data/src/core/lib/gprpp/global_config_generic.h +0 -4
- data/src/core/lib/gprpp/host_port.cc +2 -0
- data/src/core/lib/gprpp/manual_constructor.h +0 -1
- data/src/core/lib/gprpp/match.h +75 -0
- data/src/core/lib/gprpp/memory.h +1 -5
- data/src/core/lib/gprpp/orphanable.h +1 -4
- data/src/core/lib/gprpp/overload.h +59 -0
- data/src/core/lib/gprpp/ref_counted.h +3 -3
- data/src/core/lib/gprpp/ref_counted_ptr.h +1 -1
- data/src/core/lib/gprpp/single_set_ptr.h +87 -0
- data/src/core/lib/gprpp/stat.h +0 -2
- data/src/core/lib/gprpp/stat_posix.cc +7 -2
- data/src/core/lib/gprpp/status_helper.cc +25 -5
- data/src/core/lib/gprpp/status_helper.h +4 -0
- data/src/core/lib/gprpp/sync.h +3 -1
- data/src/core/lib/gprpp/table.h +10 -0
- data/src/core/lib/gprpp/thd.h +2 -5
- data/src/core/lib/gprpp/thd_posix.cc +4 -2
- data/src/core/lib/gprpp/thd_windows.cc +2 -0
- data/src/core/lib/gprpp/time.cc +20 -0
- data/src/core/lib/gprpp/time.h +7 -2
- data/src/core/lib/gprpp/time_util.cc +4 -0
- data/src/core/lib/gprpp/time_util.h +1 -1
- data/src/core/lib/gprpp/unique_type_name.h +104 -0
- data/src/core/lib/http/format_request.cc +30 -2
- data/src/core/lib/http/format_request.h +2 -0
- data/src/core/lib/http/httpcli.cc +88 -81
- data/src/core/lib/http/httpcli.h +39 -7
- data/src/core/lib/http/httpcli_security_connector.cc +6 -7
- data/src/core/lib/http/parser.cc +80 -9
- data/src/core/lib/http/parser.h +14 -1
- data/src/core/lib/iomgr/endpoint.cc +4 -4
- data/src/core/lib/iomgr/endpoint.h +6 -4
- data/src/core/lib/iomgr/endpoint_cfstream.cc +7 -4
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -1
- data/src/core/lib/iomgr/ev_posix.cc +7 -11
- data/src/core/lib/iomgr/exec_ctx.h +1 -2
- data/src/core/lib/iomgr/fork_posix.cc +1 -1
- data/src/core/lib/iomgr/internal_errqueue.cc +38 -47
- data/src/core/lib/iomgr/internal_errqueue.h +1 -6
- data/src/core/lib/iomgr/iomgr.cc +0 -1
- data/src/core/lib/iomgr/{event_engine/pollset.h → iomgr_fwd.h} +9 -9
- data/src/core/lib/iomgr/pollset_set.h +1 -2
- data/src/core/lib/iomgr/port.h +25 -8
- data/src/core/lib/iomgr/resolve_address.cc +8 -0
- data/src/core/lib/iomgr/resolve_address.h +21 -14
- data/src/core/lib/iomgr/resolve_address_impl.h +2 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +8 -14
- data/src/core/lib/iomgr/resolve_address_posix.h +5 -2
- data/src/core/lib/iomgr/resolve_address_windows.cc +7 -14
- data/src/core/lib/iomgr/resolve_address_windows.h +5 -2
- data/src/core/lib/iomgr/sockaddr.h +2 -3
- data/src/core/lib/iomgr/sockaddr_posix.h +2 -0
- data/src/core/lib/iomgr/sockaddr_windows.h +2 -0
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +3 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +10 -2
- data/src/core/lib/iomgr/tcp_client_posix.cc +14 -7
- data/src/core/lib/iomgr/tcp_client_windows.cc +13 -6
- data/src/core/lib/iomgr/tcp_posix.cc +77 -37
- data/src/core/lib/iomgr/tcp_server_posix.cc +50 -27
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +30 -27
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +7 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +13 -5
- data/src/core/lib/iomgr/tcp_windows.cc +7 -4
- data/src/core/lib/json/json.h +1 -2
- data/src/core/lib/json/json_reader.cc +9 -1
- data/src/core/lib/json/json_util.cc +7 -0
- data/src/core/lib/json/json_util.h +13 -4
- data/src/core/lib/json/json_writer.cc +6 -1
- data/src/core/lib/promise/activity.cc +1 -1
- data/src/core/lib/promise/activity.h +6 -6
- data/src/core/lib/promise/arena_promise.h +11 -1
- data/src/core/lib/promise/call_push_pull.h +148 -0
- data/src/core/lib/promise/context.h +1 -1
- data/src/core/lib/promise/detail/basic_seq.h +2 -2
- data/src/core/lib/promise/detail/promise_factory.h +0 -1
- data/src/core/lib/promise/detail/status.h +2 -1
- data/src/core/lib/promise/intra_activity_waiter.h +49 -0
- data/src/core/lib/promise/latch.h +103 -0
- data/src/core/lib/promise/loop.h +1 -0
- data/src/core/lib/promise/race.h +0 -1
- data/src/core/lib/promise/seq.h +0 -2
- data/src/core/lib/promise/sleep.cc +2 -0
- data/src/core/lib/promise/sleep.h +10 -0
- data/src/core/lib/promise/try_seq.h +2 -2
- data/src/core/lib/resolver/resolver_factory.h +1 -2
- data/src/core/lib/resolver/server_address.cc +9 -3
- data/src/core/lib/resolver/server_address.h +4 -4
- data/src/core/lib/resource_quota/api.cc +19 -31
- data/src/core/lib/resource_quota/api.h +5 -2
- data/src/core/lib/resource_quota/arena.cc +0 -6
- data/src/core/lib/resource_quota/arena.h +1 -2
- data/src/core/lib/resource_quota/memory_quota.cc +47 -5
- data/src/core/lib/resource_quota/memory_quota.h +24 -5
- data/src/core/lib/resource_quota/resource_quota.h +16 -0
- data/src/core/lib/resource_quota/thread_quota.cc +2 -0
- data/src/core/lib/resource_quota/thread_quota.h +4 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +7 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +12 -12
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +5 -6
- data/src/core/lib/security/context/security_context.h +8 -1
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +12 -5
- data/src/core/lib/security/credentials/alts/alts_credentials.h +4 -0
- data/src/core/lib/security/credentials/call_creds_util.cc +5 -3
- data/src/core/lib/security/credentials/call_creds_util.h +2 -2
- data/src/core/lib/security/credentials/channel_creds_registry.h +1 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +19 -10
- data/src/core/lib/security/credentials/composite/composite_credentials.h +11 -9
- data/src/core/lib/security/credentials/credentials.h +29 -39
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +81 -0
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +8 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +3 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +2 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +18 -12
- data/src/core/lib/security/credentials/fake/fake_credentials.h +8 -5
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +27 -13
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +4 -4
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +8 -4
- data/src/core/lib/security/credentials/iam/iam_credentials.h +6 -2
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +28 -29
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +57 -0
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +8 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +6 -2
- data/src/core/lib/security/credentials/local/local_credentials.cc +12 -6
- data/src/core/lib/security/credentials/local/local_credentials.h +4 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +22 -10
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +14 -6
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +11 -6
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +8 -6
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +12 -4
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +8 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +10 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +47 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +34 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +66 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +66 -95
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +19 -6
- data/src/core/lib/security/credentials/tls/tls_credentials.h +5 -5
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +57 -50
- data/src/core/lib/security/credentials/xds/xds_credentials.h +31 -5
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +1 -1
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/security_connector.cc +1 -1
- data/src/core/lib/security/security_connector/security_connector.h +10 -1
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +5 -3
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +4 -2
- data/src/core/lib/security/transport/auth_filters.h +7 -7
- data/src/core/lib/security/transport/client_auth_filter.cc +26 -20
- data/src/core/lib/security/transport/secure_endpoint.cc +213 -133
- data/src/core/lib/security/transport/secure_endpoint.h +1 -1
- data/src/core/lib/security/transport/security_handshaker.cc +11 -9
- data/src/core/lib/security/transport/security_handshaker.h +1 -1
- data/src/core/lib/security/transport/server_auth_filter.cc +3 -2
- data/src/core/lib/service_config/service_config.h +4 -8
- data/src/core/lib/service_config/service_config_call_data.h +4 -1
- data/src/core/lib/service_config/service_config_impl.cc +7 -0
- data/src/core/lib/service_config/service_config_impl.h +9 -2
- data/src/core/lib/service_config/service_config_parser.cc +8 -0
- data/src/core/lib/service_config/service_config_parser.h +7 -0
- data/src/core/lib/slice/b64.cc +1 -1
- data/src/core/lib/slice/b64.h +2 -0
- data/src/core/lib/slice/percent_encoding.cc +4 -1
- data/src/core/lib/slice/percent_encoding.h +0 -6
- data/src/core/lib/slice/slice.cc +2 -1
- data/src/core/lib/slice/slice.h +10 -5
- data/src/core/lib/slice/slice_api.cc +1 -1
- data/src/core/lib/slice/slice_buffer.cc +50 -23
- data/src/core/lib/slice/slice_buffer.h +106 -0
- data/src/core/lib/{iomgr/is_epollexclusive_available.h → slice/slice_buffer_api.cc} +11 -12
- data/src/core/lib/slice/slice_internal.h +4 -3
- data/src/core/lib/slice/slice_refcount.h +2 -3
- data/src/core/lib/slice/slice_refcount_base.h +2 -3
- data/src/core/lib/slice/slice_split.cc +3 -0
- data/src/core/lib/slice/slice_split.h +0 -4
- data/src/core/lib/slice/slice_string_helpers.cc +4 -0
- data/src/core/lib/slice/slice_string_helpers.h +1 -4
- data/src/core/lib/surface/builtins.cc +7 -2
- data/src/core/lib/surface/byte_buffer.cc +7 -1
- data/src/core/lib/surface/byte_buffer_reader.cc +4 -4
- data/src/core/lib/surface/call.cc +1052 -917
- data/src/core/lib/surface/call.h +16 -16
- data/src/core/lib/surface/call_details.cc +4 -4
- data/src/core/lib/surface/call_log_batch.cc +7 -1
- data/src/core/lib/surface/call_test_only.h +4 -1
- data/src/core/lib/surface/channel.cc +181 -243
- data/src/core/lib/surface/channel.h +94 -57
- data/src/core/lib/surface/channel_init.cc +2 -3
- data/src/core/lib/surface/channel_init.h +3 -5
- data/src/core/lib/surface/channel_ping.cc +8 -2
- data/src/core/lib/surface/channel_stack_type.cc +0 -2
- data/src/core/lib/surface/channel_stack_type.h +0 -2
- data/src/core/lib/surface/completion_queue.cc +14 -6
- data/src/core/lib/surface/completion_queue.h +5 -1
- data/src/core/lib/surface/completion_queue_factory.cc +1 -0
- data/src/core/lib/surface/completion_queue_factory.h +1 -3
- data/src/core/lib/surface/event_string.cc +1 -7
- data/src/core/lib/surface/event_string.h +1 -1
- data/src/core/lib/surface/init.cc +17 -45
- data/src/core/lib/surface/init.h +0 -8
- data/src/core/lib/surface/lame_client.cc +64 -110
- data/src/core/lib/surface/lame_client.h +40 -2
- data/src/core/lib/surface/metadata_array.cc +2 -0
- data/src/core/lib/surface/server.cc +72 -70
- data/src/core/lib/surface/server.h +40 -11
- data/src/core/lib/surface/validate_metadata.cc +2 -5
- data/src/core/lib/surface/validate_metadata.h +3 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +3 -1
- data/src/core/lib/transport/bdp_estimator.h +2 -3
- data/src/core/lib/transport/byte_stream.cc +6 -3
- data/src/core/lib/transport/byte_stream.h +5 -1
- data/src/core/lib/transport/connectivity_state.cc +6 -4
- data/src/core/lib/transport/connectivity_state.h +2 -3
- data/src/core/lib/transport/error_utils.cc +4 -2
- data/src/core/lib/transport/error_utils.h +5 -1
- data/src/core/lib/{channel → transport}/handshaker.cc +9 -4
- data/src/core/lib/{channel → transport}/handshaker.h +13 -6
- data/src/core/lib/{channel → transport}/handshaker_factory.h +9 -10
- data/src/core/lib/{channel → transport}/handshaker_registry.cc +5 -1
- data/src/core/lib/{channel → transport}/handshaker_registry.h +5 -4
- data/src/core/{ext/filters/client_channel → lib/transport}/http_connect_handshaker.cc +24 -10
- data/src/core/{ext/filters/client_channel → lib/transport}/http_connect_handshaker.h +3 -3
- data/src/core/lib/transport/metadata_batch.cc +287 -0
- data/src/core/lib/transport/metadata_batch.h +142 -269
- data/src/core/lib/transport/parsed_metadata.cc +2 -0
- data/src/core/lib/transport/parsed_metadata.h +10 -3
- data/src/core/lib/transport/status_conversion.cc +2 -0
- data/src/core/lib/transport/status_conversion.h +2 -2
- data/src/core/lib/transport/tcp_connect_handshaker.cc +253 -0
- data/src/core/lib/transport/tcp_connect_handshaker.h +39 -0
- data/src/core/lib/transport/timeout_encoding.cc +2 -6
- data/src/core/lib/transport/timeout_encoding.h +5 -1
- data/src/core/lib/transport/transport.cc +18 -17
- data/src/core/lib/transport/transport.h +48 -7
- data/src/core/lib/transport/transport_impl.h +14 -3
- data/src/core/lib/transport/transport_op_string.cc +9 -10
- data/src/core/lib/uri/uri_parser.cc +11 -3
- data/src/core/lib/uri/uri_parser.h +0 -2
- data/src/core/plugin_registry/grpc_plugin_registry.cc +13 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +2 -2
- data/src/core/tsi/ssl/session_cache/ssl_session.h +2 -0
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +2 -0
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -0
- data/src/core/tsi/ssl_transport_security.cc +75 -38
- data/src/core/tsi/ssl_transport_security.h +8 -2
- data/src/core/tsi/transport_security_interface.h +2 -0
- data/src/ruby/ext/grpc/extconf.rb +2 -2
- data/src/ruby/lib/grpc/generic/active_call.rb +7 -1
- data/src/ruby/lib/grpc/grpc.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +1 -0
- data/src/ruby/pb/test/client.rb +769 -0
- data/src/ruby/pb/test/server.rb +252 -0
- data/src/ruby/pb/test/xds_client.rb +415 -0
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +140 -0
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +100 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +504 -0
- data/third_party/upb/third_party/utf8_range/utf8_range.h +1 -1
- data/third_party/upb/upb/decode.c +32 -16
- data/third_party/upb/upb/def.c +118 -55
- data/third_party/upb/upb/def.h +12 -3
- data/third_party/upb/upb/encode.c +14 -8
- data/third_party/upb/upb/json_encode.c +776 -0
- data/third_party/upb/upb/json_encode.h +62 -0
- data/third_party/upb/upb/msg.c +5 -7
- data/third_party/upb/upb/msg.h +1 -2
- data/third_party/upb/upb/msg_internal.h +49 -36
- data/third_party/upb/upb/port_def.inc +8 -0
- data/third_party/upb/upb/port_undef.inc +1 -0
- data/third_party/upb/upb/table.c +10 -6
- data/third_party/upb/upb/table_internal.h +2 -0
- data/third_party/upb/upb/upb.h +41 -11
- data/third_party/zlib/crc32.c +966 -292
- data/third_party/zlib/crc32.h +9441 -436
- data/third_party/zlib/deflate.c +78 -30
- data/third_party/zlib/deflate.h +12 -15
- data/third_party/zlib/gzguts.h +3 -2
- data/third_party/zlib/gzlib.c +5 -3
- data/third_party/zlib/gzread.c +5 -7
- data/third_party/zlib/gzwrite.c +25 -13
- data/third_party/zlib/infback.c +2 -1
- data/third_party/zlib/inffast.c +14 -14
- data/third_party/zlib/inflate.c +39 -8
- data/third_party/zlib/inflate.h +3 -2
- data/third_party/zlib/inftrees.c +3 -3
- data/third_party/zlib/trees.c +27 -48
- data/third_party/zlib/zlib.h +123 -100
- data/third_party/zlib/zutil.c +2 -2
- data/third_party/zlib/zutil.h +12 -9
- metadata +100 -72
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +0 -31
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +0 -28
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +0 -201
- data/src/core/ext/filters/max_age/max_age_filter.cc +0 -566
- data/src/core/lib/event_engine/sockaddr.cc +0 -40
- data/src/core/lib/event_engine/sockaddr.h +0 -44
- data/src/core/lib/gprpp/capture.h +0 -76
- data/src/core/lib/iomgr/ev_epollex_linux.cc +0 -1657
- data/src/core/lib/iomgr/ev_epollex_linux.h +0 -30
- data/src/core/lib/iomgr/event_engine/closure.cc +0 -77
- data/src/core/lib/iomgr/event_engine/closure.h +0 -42
- data/src/core/lib/iomgr/event_engine/endpoint.cc +0 -172
- data/src/core/lib/iomgr/event_engine/endpoint.h +0 -52
- data/src/core/lib/iomgr/event_engine/iomgr.cc +0 -85
- data/src/core/lib/iomgr/event_engine/pollset.cc +0 -87
- data/src/core/lib/iomgr/event_engine/promise.h +0 -51
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +0 -47
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +0 -37
- data/src/core/lib/iomgr/event_engine/resolver.cc +0 -133
- data/src/core/lib/iomgr/event_engine/resolver.h +0 -56
- data/src/core/lib/iomgr/event_engine/tcp.cc +0 -296
- data/src/core/lib/iomgr/event_engine/timer.cc +0 -62
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +0 -119
- data/src/core/lib/iomgr/sys_epoll_wrapper.h +0 -30
@@ -26,8 +26,9 @@
|
|
26
26
|
#include <grpc/event_engine/endpoint_config.h>
|
27
27
|
#include <grpc/event_engine/memory_allocator.h>
|
28
28
|
#include <grpc/event_engine/port.h>
|
29
|
+
#include <grpc/event_engine/slice_buffer.h>
|
29
30
|
|
30
|
-
// TODO(
|
31
|
+
// TODO(vigneshbabu): Define the Endpoint::Write metrics collection system
|
31
32
|
namespace grpc_event_engine {
|
32
33
|
namespace experimental {
|
33
34
|
|
@@ -138,6 +139,18 @@ class EventEngine {
|
|
138
139
|
/// Shuts down all connections and invokes all pending read or write
|
139
140
|
/// callbacks with an error status.
|
140
141
|
virtual ~Endpoint() = default;
|
142
|
+
/// A struct representing optional arguments that may be provided to an
|
143
|
+
/// EventEngine Endpoint Read API call.
|
144
|
+
///
|
145
|
+
/// Passed as argument to an Endpoint \a Read
|
146
|
+
struct ReadArgs {
|
147
|
+
// A suggestion to the endpoint implementation to read at-least the
|
148
|
+
// specified number of bytes over the network connection before marking
|
149
|
+
// the endpoint read operation as complete. gRPC may use this argument
|
150
|
+
// to minimize the number of endpoint read API calls over the lifetime
|
151
|
+
// of a connection.
|
152
|
+
int64_t read_hint_bytes;
|
153
|
+
};
|
141
154
|
/// Reads data from the Endpoint.
|
142
155
|
///
|
143
156
|
/// When data is available on the connection, that data is moved into the
|
@@ -156,7 +169,21 @@ class EventEngine {
|
|
156
169
|
/// statuses to \a on_read. For example, callbacks might expect to receive
|
157
170
|
/// CANCELLED on endpoint shutdown.
|
158
171
|
virtual void Read(std::function<void(absl::Status)> on_read,
|
159
|
-
SliceBuffer* buffer) = 0;
|
172
|
+
SliceBuffer* buffer, const ReadArgs* args) = 0;
|
173
|
+
/// A struct representing optional arguments that may be provided to an
|
174
|
+
/// EventEngine Endpoint Write API call.
|
175
|
+
///
|
176
|
+
/// Passed as argument to an Endpoint \a Write
|
177
|
+
struct WriteArgs {
|
178
|
+
// Represents private information that may be passed by gRPC for
|
179
|
+
// select endpoints expected to be used only within google.
|
180
|
+
void* google_specific = nullptr;
|
181
|
+
// A suggestion to the endpoint implementation to group data to be written
|
182
|
+
// into frames of the specified max_frame_size. gRPC may use this
|
183
|
+
// argument to dynamically control the max sizes of frames sent to a
|
184
|
+
// receiver in response to high receiver memory pressure.
|
185
|
+
int64_t max_frame_size;
|
186
|
+
};
|
160
187
|
/// Writes data out on the connection.
|
161
188
|
///
|
162
189
|
/// \a on_writable is called when the connection is ready for more data. The
|
@@ -176,7 +203,7 @@ class EventEngine {
|
|
176
203
|
/// statuses to \a on_writable. For example, callbacks might expect to
|
177
204
|
/// receive CANCELLED on endpoint shutdown.
|
178
205
|
virtual void Write(std::function<void(absl::Status)> on_writable,
|
179
|
-
SliceBuffer* data) = 0;
|
206
|
+
SliceBuffer* data, const WriteArgs* args) = 0;
|
180
207
|
/// Returns an address in the format described in DNSResolver. The returned
|
181
208
|
/// values are expected to remain valid for the life of the Endpoint.
|
182
209
|
virtual const ResolvedAddress& GetPeerAddress() const = 0;
|
@@ -259,7 +286,13 @@ class EventEngine {
|
|
259
286
|
public:
|
260
287
|
/// Task handle for DNS Resolution requests.
|
261
288
|
struct LookupTaskHandle {
|
262
|
-
intptr_t
|
289
|
+
intptr_t keys[2];
|
290
|
+
};
|
291
|
+
/// Optional configuration for DNSResolvers.
|
292
|
+
struct ResolverOptions {
|
293
|
+
/// If empty, default DNS servers will be used.
|
294
|
+
/// Must be in the "IP:port" format as described in naming.md.
|
295
|
+
std::string dns_server;
|
263
296
|
};
|
264
297
|
/// DNS SRV record type.
|
265
298
|
struct SRVRecord {
|
@@ -293,7 +326,7 @@ class EventEngine {
|
|
293
326
|
///
|
294
327
|
/// If cancelled, \a on_resolve will not be executed.
|
295
328
|
virtual LookupTaskHandle LookupHostname(LookupHostnameCallback on_resolve,
|
296
|
-
absl::string_view
|
329
|
+
absl::string_view name,
|
297
330
|
absl::string_view default_port,
|
298
331
|
absl::Time deadline) = 0;
|
299
332
|
/// Asynchronously perform an SRV record lookup.
|
@@ -331,8 +364,10 @@ class EventEngine {
|
|
331
364
|
// de-experimentalize this API.
|
332
365
|
virtual bool IsWorkerThread() = 0;
|
333
366
|
|
334
|
-
/// Creates and returns an instance of a DNSResolver
|
335
|
-
|
367
|
+
/// Creates and returns an instance of a DNSResolver, optionally configured by
|
368
|
+
/// the \a options struct.
|
369
|
+
virtual std::unique_ptr<DNSResolver> GetDNSResolver(
|
370
|
+
const DNSResolver::ResolverOptions& options) = 0;
|
336
371
|
|
337
372
|
/// Asynchronously executes a task as soon as possible.
|
338
373
|
///
|
@@ -26,24 +26,9 @@
|
|
26
26
|
#include <grpc/event_engine/internal/memory_allocator_impl.h>
|
27
27
|
#include <grpc/slice.h>
|
28
28
|
|
29
|
-
// forward-declaring an internal struct, not used publicly.
|
30
|
-
struct grpc_slice_buffer;
|
31
|
-
|
32
29
|
namespace grpc_event_engine {
|
33
30
|
namespace experimental {
|
34
31
|
|
35
|
-
// TODO(nnoble): needs implementation
|
36
|
-
class SliceBuffer {
|
37
|
-
public:
|
38
|
-
SliceBuffer() { abort(); }
|
39
|
-
explicit SliceBuffer(grpc_slice_buffer*) { abort(); }
|
40
|
-
|
41
|
-
grpc_slice_buffer* RawSliceBuffer() { return slice_buffer_; }
|
42
|
-
|
43
|
-
private:
|
44
|
-
grpc_slice_buffer* slice_buffer_;
|
45
|
-
};
|
46
|
-
|
47
32
|
// Tracks memory allocated by one system.
|
48
33
|
// Is effectively a thin wrapper/smart pointer for a MemoryAllocatorImpl,
|
49
34
|
// providing a convenient and stable API.
|
@@ -20,7 +20,7 @@
|
|
20
20
|
#if defined(GPR_ANDROID) || defined(GPR_LINUX) || defined(GPR_APPLE) || \
|
21
21
|
defined(GPR_FREEBSD) || defined(GPR_OPENBSD) || defined(GPR_SOLARIS) || \
|
22
22
|
defined(GPR_AIX) || defined(GPR_NACL) || defined(GPR_FUCHSIA) || \
|
23
|
-
defined(GRPC_POSIX_SOCKET)
|
23
|
+
defined(GRPC_POSIX_SOCKET) || defined(GPR_NETBSD)
|
24
24
|
#define GRPC_EVENT_ENGINE_POSIX
|
25
25
|
#include <arpa/inet.h>
|
26
26
|
#include <netdb.h>
|
@@ -0,0 +1,286 @@
|
|
1
|
+
// Copyright 2022 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_EVENT_ENGINE_SLICE_H
|
16
|
+
#define GRPC_EVENT_ENGINE_SLICE_H
|
17
|
+
|
18
|
+
#include <grpc/support/port_platform.h>
|
19
|
+
|
20
|
+
#include <string.h>
|
21
|
+
|
22
|
+
#include <cstdint>
|
23
|
+
#include <string>
|
24
|
+
#include <utility>
|
25
|
+
|
26
|
+
#include "absl/strings/string_view.h"
|
27
|
+
|
28
|
+
#include <grpc/slice.h>
|
29
|
+
#include <grpc/support/log.h>
|
30
|
+
|
31
|
+
// This public slice definition largely based of the internal grpc_core::Slice
|
32
|
+
// implementation. Changes to this implementation might warrant changes to the
|
33
|
+
// internal grpc_core::Slice type as well.
|
34
|
+
|
35
|
+
namespace grpc_event_engine {
|
36
|
+
namespace experimental {
|
37
|
+
|
38
|
+
// Forward declarations
|
39
|
+
class Slice;
|
40
|
+
class MutableSlice;
|
41
|
+
|
42
|
+
namespace slice_detail {
|
43
|
+
|
44
|
+
// Returns an empty slice.
|
45
|
+
static constexpr grpc_slice EmptySlice() { return {nullptr, {}}; }
|
46
|
+
|
47
|
+
// BaseSlice holds the grpc_slice object, but does not apply refcounting policy.
|
48
|
+
// It does export immutable access into the slice, such that this can be shared
|
49
|
+
// by all storage policies.
|
50
|
+
class BaseSlice {
|
51
|
+
public:
|
52
|
+
BaseSlice(const BaseSlice&) = delete;
|
53
|
+
BaseSlice& operator=(const BaseSlice&) = delete;
|
54
|
+
BaseSlice(BaseSlice&& other) = delete;
|
55
|
+
BaseSlice& operator=(BaseSlice&& other) = delete;
|
56
|
+
|
57
|
+
// Iterator access to the underlying bytes
|
58
|
+
const uint8_t* begin() const { return GRPC_SLICE_START_PTR(c_slice()); }
|
59
|
+
const uint8_t* end() const { return GRPC_SLICE_END_PTR(c_slice()); }
|
60
|
+
const uint8_t* cbegin() const { return GRPC_SLICE_START_PTR(c_slice()); }
|
61
|
+
const uint8_t* cend() const { return GRPC_SLICE_END_PTR(c_slice()); }
|
62
|
+
|
63
|
+
// Retrieve a borrowed reference to the underlying grpc_slice.
|
64
|
+
const grpc_slice& c_slice() const { return slice_; }
|
65
|
+
|
66
|
+
// Retrieve the underlying grpc_slice, and replace the one in this object with
|
67
|
+
// EmptySlice().
|
68
|
+
grpc_slice TakeCSlice() {
|
69
|
+
grpc_slice out = slice_;
|
70
|
+
slice_ = EmptySlice();
|
71
|
+
return out;
|
72
|
+
}
|
73
|
+
|
74
|
+
// As other things... borrowed references.
|
75
|
+
absl::string_view as_string_view() const {
|
76
|
+
return absl::string_view(reinterpret_cast<const char*>(data()), size());
|
77
|
+
}
|
78
|
+
|
79
|
+
// Array access
|
80
|
+
uint8_t operator[](size_t i) const {
|
81
|
+
return GRPC_SLICE_START_PTR(c_slice())[i];
|
82
|
+
}
|
83
|
+
|
84
|
+
// Access underlying data
|
85
|
+
const uint8_t* data() const { return GRPC_SLICE_START_PTR(c_slice()); }
|
86
|
+
|
87
|
+
// Size of the slice
|
88
|
+
size_t size() const { return GRPC_SLICE_LENGTH(c_slice()); }
|
89
|
+
size_t length() const { return size(); }
|
90
|
+
bool empty() const { return size() == 0; }
|
91
|
+
|
92
|
+
// For inlined slices - are these two slices equal?
|
93
|
+
// For non-inlined slices - do these two slices refer to the same block of
|
94
|
+
// memory?
|
95
|
+
bool is_equivalent(const BaseSlice& other) const {
|
96
|
+
return grpc_slice_is_equivalent(slice_, other.slice_);
|
97
|
+
}
|
98
|
+
|
99
|
+
uint32_t Hash() const;
|
100
|
+
|
101
|
+
protected:
|
102
|
+
BaseSlice() : slice_(EmptySlice()) {}
|
103
|
+
explicit BaseSlice(const grpc_slice& slice) : slice_(slice) {}
|
104
|
+
~BaseSlice() = default;
|
105
|
+
|
106
|
+
void Swap(BaseSlice* other) { std::swap(slice_, other->slice_); }
|
107
|
+
void SetCSlice(const grpc_slice& slice) { slice_ = slice; }
|
108
|
+
|
109
|
+
uint8_t* mutable_data() { return GRPC_SLICE_START_PTR(slice_); }
|
110
|
+
|
111
|
+
grpc_slice* c_slice_ptr() { return &slice_; }
|
112
|
+
|
113
|
+
private:
|
114
|
+
grpc_slice slice_;
|
115
|
+
};
|
116
|
+
|
117
|
+
inline bool operator==(const BaseSlice& a, const BaseSlice& b) {
|
118
|
+
return grpc_slice_eq(a.c_slice(), b.c_slice()) != 0;
|
119
|
+
}
|
120
|
+
|
121
|
+
inline bool operator!=(const BaseSlice& a, const BaseSlice& b) {
|
122
|
+
return grpc_slice_eq(a.c_slice(), b.c_slice()) == 0;
|
123
|
+
}
|
124
|
+
|
125
|
+
inline bool operator==(const BaseSlice& a, absl::string_view b) {
|
126
|
+
return a.as_string_view() == b;
|
127
|
+
}
|
128
|
+
|
129
|
+
inline bool operator!=(const BaseSlice& a, absl::string_view b) {
|
130
|
+
return a.as_string_view() != b;
|
131
|
+
}
|
132
|
+
|
133
|
+
inline bool operator==(absl::string_view a, const BaseSlice& b) {
|
134
|
+
return a == b.as_string_view();
|
135
|
+
}
|
136
|
+
|
137
|
+
inline bool operator!=(absl::string_view a, const BaseSlice& b) {
|
138
|
+
return a != b.as_string_view();
|
139
|
+
}
|
140
|
+
|
141
|
+
inline bool operator==(const BaseSlice& a, const grpc_slice& b) {
|
142
|
+
return grpc_slice_eq(a.c_slice(), b) != 0;
|
143
|
+
}
|
144
|
+
|
145
|
+
inline bool operator!=(const BaseSlice& a, const grpc_slice& b) {
|
146
|
+
return grpc_slice_eq(a.c_slice(), b) == 0;
|
147
|
+
}
|
148
|
+
|
149
|
+
inline bool operator==(const grpc_slice& a, const BaseSlice& b) {
|
150
|
+
return grpc_slice_eq(a, b.c_slice()) != 0;
|
151
|
+
}
|
152
|
+
|
153
|
+
inline bool operator!=(const grpc_slice& a, const BaseSlice& b) {
|
154
|
+
return grpc_slice_eq(a, b.c_slice()) == 0;
|
155
|
+
}
|
156
|
+
|
157
|
+
template <typename Out>
|
158
|
+
struct CopyConstructors {
|
159
|
+
static Out FromCopiedString(const char* s) {
|
160
|
+
return FromCopiedBuffer(s, strlen(s));
|
161
|
+
}
|
162
|
+
static Out FromCopiedString(absl::string_view s) {
|
163
|
+
return FromCopiedBuffer(s.data(), s.size());
|
164
|
+
}
|
165
|
+
static Out FromCopiedString(std::string s);
|
166
|
+
|
167
|
+
static Out FromCopiedBuffer(const char* p, size_t len) {
|
168
|
+
return Out(grpc_slice_from_copied_buffer(p, len));
|
169
|
+
}
|
170
|
+
|
171
|
+
template <typename Buffer>
|
172
|
+
static Out FromCopiedBuffer(const Buffer& buffer) {
|
173
|
+
return FromCopiedBuffer(reinterpret_cast<const char*>(buffer.data()),
|
174
|
+
buffer.size());
|
175
|
+
}
|
176
|
+
};
|
177
|
+
|
178
|
+
} // namespace slice_detail
|
179
|
+
|
180
|
+
class MutableSlice : public slice_detail::BaseSlice,
|
181
|
+
public slice_detail::CopyConstructors<MutableSlice> {
|
182
|
+
public:
|
183
|
+
MutableSlice() = default;
|
184
|
+
explicit MutableSlice(const grpc_slice& slice);
|
185
|
+
~MutableSlice();
|
186
|
+
|
187
|
+
MutableSlice(const MutableSlice&) = delete;
|
188
|
+
MutableSlice& operator=(const MutableSlice&) = delete;
|
189
|
+
MutableSlice(MutableSlice&& other) noexcept
|
190
|
+
: slice_detail::BaseSlice(other.TakeCSlice()) {}
|
191
|
+
MutableSlice& operator=(MutableSlice&& other) noexcept {
|
192
|
+
Swap(&other);
|
193
|
+
return *this;
|
194
|
+
}
|
195
|
+
|
196
|
+
static MutableSlice CreateUninitialized(size_t length) {
|
197
|
+
return MutableSlice(grpc_slice_malloc(length));
|
198
|
+
}
|
199
|
+
|
200
|
+
// Return a sub slice of this one. Leaves this slice in an indeterminate but
|
201
|
+
// valid state.
|
202
|
+
MutableSlice TakeSubSlice(size_t pos, size_t n) {
|
203
|
+
return MutableSlice(grpc_slice_sub_no_ref(TakeCSlice(), pos, pos + n));
|
204
|
+
}
|
205
|
+
|
206
|
+
// Iterator access to the underlying bytes
|
207
|
+
uint8_t* begin() { return mutable_data(); }
|
208
|
+
uint8_t* end() { return mutable_data() + size(); }
|
209
|
+
uint8_t* data() { return mutable_data(); }
|
210
|
+
|
211
|
+
// Array access
|
212
|
+
uint8_t& operator[](size_t i) { return mutable_data()[i]; }
|
213
|
+
};
|
214
|
+
|
215
|
+
class Slice : public slice_detail::BaseSlice,
|
216
|
+
public slice_detail::CopyConstructors<Slice> {
|
217
|
+
public:
|
218
|
+
Slice() = default;
|
219
|
+
~Slice();
|
220
|
+
explicit Slice(const grpc_slice& slice) : slice_detail::BaseSlice(slice) {}
|
221
|
+
explicit Slice(slice_detail::BaseSlice&& other)
|
222
|
+
: slice_detail::BaseSlice(other.TakeCSlice()) {}
|
223
|
+
|
224
|
+
Slice(const Slice&) = delete;
|
225
|
+
Slice& operator=(const Slice&) = delete;
|
226
|
+
Slice(Slice&& other) noexcept : slice_detail::BaseSlice(other.TakeCSlice()) {}
|
227
|
+
Slice& operator=(Slice&& other) noexcept {
|
228
|
+
Swap(&other);
|
229
|
+
return *this;
|
230
|
+
}
|
231
|
+
|
232
|
+
// A slice might refer to some memory that we keep a refcount to (this is
|
233
|
+
// owned), or some memory that's inlined into the slice (also owned), or some
|
234
|
+
// other block of memory that we know will be available for the lifetime of
|
235
|
+
// some operation in the common case (not owned). In the *less common* case
|
236
|
+
// that we need to keep that slice text for longer than our API's guarantee us
|
237
|
+
// access, we need to take a copy and turn this into something that we do own.
|
238
|
+
|
239
|
+
// TakeOwned returns an owned slice regardless of current ownership, and
|
240
|
+
// leaves the current slice in a valid but externally unpredictable state - in
|
241
|
+
// doing so it can avoid adding a ref to the underlying slice.
|
242
|
+
Slice TakeOwned();
|
243
|
+
|
244
|
+
// AsOwned returns an owned slice but does not mutate the current slice,
|
245
|
+
// meaning that it may add a reference to the underlying slice.
|
246
|
+
Slice AsOwned() const;
|
247
|
+
|
248
|
+
// TakeMutable returns a MutableSlice, and leaves the current slice in an
|
249
|
+
// indeterminate but valid state.
|
250
|
+
// A mutable slice requires only one reference to the bytes of the slice -
|
251
|
+
// this can be achieved either with inlined storage or with a single
|
252
|
+
// reference.
|
253
|
+
// If the current slice is refcounted and there are more than one references
|
254
|
+
// to that slice, then the slice is copied in order to achieve a mutable
|
255
|
+
// version.
|
256
|
+
MutableSlice TakeMutable();
|
257
|
+
|
258
|
+
// Return a sub slice of this one. Leaves this slice in an indeterminate but
|
259
|
+
// valid state.
|
260
|
+
Slice TakeSubSlice(size_t pos, size_t n) {
|
261
|
+
return Slice(grpc_slice_sub_no_ref(TakeCSlice(), pos, pos + n));
|
262
|
+
}
|
263
|
+
|
264
|
+
// Return a sub slice of this one. Adds a reference to the underlying slice.
|
265
|
+
Slice RefSubSlice(size_t pos, size_t n) const {
|
266
|
+
return Slice(grpc_slice_sub(c_slice(), pos, pos + n));
|
267
|
+
}
|
268
|
+
|
269
|
+
// Split this slice, returning a new slice containing (split:end] and
|
270
|
+
// leaving this slice with [begin:split).
|
271
|
+
Slice Split(size_t split) {
|
272
|
+
return Slice(grpc_slice_split_tail(c_slice_ptr(), split));
|
273
|
+
}
|
274
|
+
|
275
|
+
Slice Ref() const;
|
276
|
+
|
277
|
+
Slice Copy() const { return Slice(grpc_slice_copy(c_slice())); }
|
278
|
+
|
279
|
+
static Slice FromRefcountAndBytes(grpc_slice_refcount* r,
|
280
|
+
const uint8_t* begin, const uint8_t* end);
|
281
|
+
};
|
282
|
+
|
283
|
+
} // namespace experimental
|
284
|
+
} // namespace grpc_event_engine
|
285
|
+
|
286
|
+
#endif // GRPC_EVENT_ENGINE_SLICE_H
|
@@ -0,0 +1,112 @@
|
|
1
|
+
// Copyright 2022 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_EVENT_ENGINE_SLICE_BUFFER_H
|
16
|
+
#define GRPC_EVENT_ENGINE_SLICE_BUFFER_H
|
17
|
+
|
18
|
+
#include <grpc/support/port_platform.h>
|
19
|
+
|
20
|
+
#include <string.h>
|
21
|
+
|
22
|
+
#include <cstdint>
|
23
|
+
#include <string>
|
24
|
+
|
25
|
+
#include "absl/strings/string_view.h"
|
26
|
+
#include "absl/utility/utility.h"
|
27
|
+
|
28
|
+
#include <grpc/event_engine/slice.h>
|
29
|
+
#include <grpc/slice.h>
|
30
|
+
#include <grpc/slice_buffer.h>
|
31
|
+
#include <grpc/support/log.h>
|
32
|
+
|
33
|
+
namespace grpc_event_engine {
|
34
|
+
namespace experimental {
|
35
|
+
|
36
|
+
/// A Wrapper around \a grpc_slice_buffer pointer.
|
37
|
+
///
|
38
|
+
/// A slice buffer holds the memory for a collection of slices.
|
39
|
+
/// The SliceBuffer object itself is meant to only hide the C-style API,
|
40
|
+
/// and won't hold the data itself. In terms of lifespan, the
|
41
|
+
/// grpc_slice_buffer ought to be kept somewhere inside the caller's objects,
|
42
|
+
/// like a transport or an endpoint.
|
43
|
+
///
|
44
|
+
/// This lifespan rule is likely to change in the future, as we may
|
45
|
+
/// collapse the grpc_slice_buffer structure straight into this class.
|
46
|
+
///
|
47
|
+
/// The SliceBuffer API is basically a replica of the grpc_slice_buffer's,
|
48
|
+
/// and its documentation will move here once we remove the C structure,
|
49
|
+
/// which should happen before the Event Engine's API is no longer
|
50
|
+
/// an experimental API.
|
51
|
+
class SliceBuffer {
|
52
|
+
public:
|
53
|
+
explicit SliceBuffer() { grpc_slice_buffer_init(&slice_buffer_); }
|
54
|
+
SliceBuffer(const SliceBuffer& other) = delete;
|
55
|
+
SliceBuffer(SliceBuffer&& other) noexcept
|
56
|
+
: slice_buffer_(other.slice_buffer_) {
|
57
|
+
grpc_slice_buffer_reset_and_unref(&slice_buffer_);
|
58
|
+
grpc_slice_buffer_swap(&slice_buffer_, &other.slice_buffer_);
|
59
|
+
}
|
60
|
+
/// Upon destruction, the underlying raw slice buffer is cleaned out and all
|
61
|
+
/// slices are unreffed.
|
62
|
+
~SliceBuffer() { grpc_slice_buffer_destroy(&slice_buffer_); }
|
63
|
+
|
64
|
+
/// Appends a new slice into the SliceBuffer and makes an attempt to merge
|
65
|
+
/// this slice with the last slice in the SliceBuffer.
|
66
|
+
void Append(Slice slice);
|
67
|
+
|
68
|
+
/// Adds a new slice into the SliceBuffer at the next available index.
|
69
|
+
/// Returns the index at which the new slice is added.
|
70
|
+
size_t AppendIndexed(Slice slice);
|
71
|
+
|
72
|
+
/// Returns the number of slices held by the SliceBuffer.
|
73
|
+
size_t Count() { return slice_buffer_.count; }
|
74
|
+
|
75
|
+
/// Removes/deletes the last n bytes in the SliceBuffer.
|
76
|
+
void RemoveLastNBytes(size_t n) {
|
77
|
+
grpc_slice_buffer_trim_end(&slice_buffer_, n, nullptr);
|
78
|
+
}
|
79
|
+
|
80
|
+
/// Move the first n bytes of the SliceBuffer into a memory pointed to by dst.
|
81
|
+
void MoveFirstNBytesIntoBuffer(size_t n, void* dst) {
|
82
|
+
grpc_slice_buffer_move_first_into_buffer(&slice_buffer_, n, dst);
|
83
|
+
}
|
84
|
+
|
85
|
+
/// Removes and unrefs all slices in the SliceBuffer.
|
86
|
+
void Clear() { grpc_slice_buffer_reset_and_unref(&slice_buffer_); }
|
87
|
+
|
88
|
+
/// Removes the first slice in the SliceBuffer and returns it.
|
89
|
+
Slice TakeFirst();
|
90
|
+
|
91
|
+
/// Prepends the slice to the the front of the SliceBuffer.
|
92
|
+
void Prepend(Slice slice);
|
93
|
+
|
94
|
+
/// Increased the ref-count of slice at the specified index and returns the
|
95
|
+
/// associated slice.
|
96
|
+
Slice RefSlice(size_t index);
|
97
|
+
|
98
|
+
/// The total number of bytes held by the SliceBuffer
|
99
|
+
size_t Length() { return slice_buffer_.length; }
|
100
|
+
|
101
|
+
/// Return a pointer to the back raw grpc_slice_buffer
|
102
|
+
grpc_slice_buffer* RawSliceBuffer() { return &slice_buffer_; }
|
103
|
+
|
104
|
+
private:
|
105
|
+
/// The backing raw slice buffer.
|
106
|
+
grpc_slice_buffer slice_buffer_;
|
107
|
+
};
|
108
|
+
|
109
|
+
} // namespace experimental
|
110
|
+
} // namespace grpc_event_engine
|
111
|
+
|
112
|
+
#endif // GRPC_EVENT_ENGINE_SLICE_BUFFER_H
|
@@ -1047,6 +1047,17 @@ typedef struct grpc_tls_certificate_verifier_external {
|
|
1047
1047
|
grpc_tls_certificate_verifier* grpc_tls_certificate_verifier_external_create(
|
1048
1048
|
grpc_tls_certificate_verifier_external* external_verifier);
|
1049
1049
|
|
1050
|
+
/**
|
1051
|
+
* EXPERIMENTAL API - Subject to change
|
1052
|
+
*
|
1053
|
+
* Factory function for an internal verifier that won't perform any
|
1054
|
+
* post-handshake verification. Note: using this solely without any other
|
1055
|
+
* authentication mechanisms on the peer identity will leave your applications
|
1056
|
+
* to the MITM(Man-In-The-Middle) attacks. Users should avoid doing so in
|
1057
|
+
* production environments.
|
1058
|
+
*/
|
1059
|
+
grpc_tls_certificate_verifier* grpc_tls_certificate_verifier_no_op_create();
|
1060
|
+
|
1050
1061
|
/**
|
1051
1062
|
* EXPERIMENTAL API - Subject to change
|
1052
1063
|
*
|
@@ -219,7 +219,7 @@ typedef struct {
|
|
219
219
|
"grpc.http2.min_ping_interval_without_data_ms"
|
220
220
|
/** Channel arg to override the http2 :scheme header */
|
221
221
|
#define GRPC_ARG_HTTP2_SCHEME "grpc.http2_scheme"
|
222
|
-
/** How many pings can
|
222
|
+
/** How many pings can the client send before needing to send a
|
223
223
|
data/header frame? (0 indicates that an infinite number of
|
224
224
|
pings can be sent without sending a data frame or header frame) */
|
225
225
|
#define GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA \
|
@@ -241,8 +241,8 @@ typedef struct {
|
|
241
241
|
not receive the ping ack, it will close the transport. Int valued,
|
242
242
|
milliseconds. */
|
243
243
|
#define GRPC_ARG_KEEPALIVE_TIMEOUT_MS "grpc.keepalive_timeout_ms"
|
244
|
-
/** Is it permissible to send keepalive pings without any
|
245
|
-
|
244
|
+
/** Is it permissible to send keepalive pings from the client without any
|
245
|
+
outstanding streams. Int valued, 0(false)/1(true). */
|
246
246
|
#define GRPC_ARG_KEEPALIVE_PERMIT_WITHOUT_CALLS \
|
247
247
|
"grpc.keepalive_permit_without_calls"
|
248
248
|
/** Default authority to pass if none specified on call construction. A string.
|
@@ -518,12 +518,8 @@ typedef enum grpc_call_error {
|
|
518
518
|
|
519
519
|
/** Initial metadata flags */
|
520
520
|
/** These flags are to be passed to the `grpc_op::flags` field */
|
521
|
-
/** Signal that the call is idempotent */
|
522
|
-
#define GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST (0x00000010u)
|
523
521
|
/** Signal that the call should not return UNAVAILABLE before it has started */
|
524
522
|
#define GRPC_INITIAL_METADATA_WAIT_FOR_READY (0x00000020u)
|
525
|
-
/** Signal that the call is cacheable. GRPC is free to use GET verb */
|
526
|
-
#define GRPC_INITIAL_METADATA_CACHEABLE_REQUEST (0x00000040u)
|
527
523
|
/** Signal that GRPC_INITIAL_METADATA_WAIT_FOR_READY was explicitly set
|
528
524
|
by the calling application. */
|
529
525
|
#define GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET (0x00000080u)
|
@@ -531,12 +527,10 @@ typedef enum grpc_call_error {
|
|
531
527
|
#define GRPC_INITIAL_METADATA_CORKED (0x00000100u)
|
532
528
|
|
533
529
|
/** Mask of all valid flags */
|
534
|
-
#define GRPC_INITIAL_METADATA_USED_MASK
|
535
|
-
(
|
536
|
-
GRPC_INITIAL_METADATA_WAIT_FOR_READY |
|
537
|
-
|
538
|
-
GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET | \
|
539
|
-
GRPC_INITIAL_METADATA_CORKED | GRPC_WRITE_THROUGH)
|
530
|
+
#define GRPC_INITIAL_METADATA_USED_MASK \
|
531
|
+
(GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET | \
|
532
|
+
GRPC_INITIAL_METADATA_WAIT_FOR_READY | GRPC_INITIAL_METADATA_CORKED | \
|
533
|
+
GRPC_WRITE_THROUGH)
|
540
534
|
|
541
535
|
/** A single metadata element */
|
542
536
|
typedef struct grpc_metadata {
|