grpc 1.46.3-x86_64-linux → 1.48.0-x86_64-linux
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 +138 -128
- data/include/grpc/compression.h +1 -1
- data/include/grpc/event_engine/event_engine.h +62 -18
- 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 +118 -0
- data/include/grpc/grpc.h +3 -3
- data/include/grpc/grpc_security.h +11 -0
- data/include/grpc/impl/codegen/compression_types.h +2 -1
- data/include/grpc/impl/codegen/connectivity_state.h +2 -1
- data/include/grpc/impl/codegen/gpr_types.h +2 -1
- data/include/grpc/impl/codegen/grpc_types.h +2 -1
- data/include/grpc/impl/codegen/port_platform.h +106 -39
- data/include/grpc/impl/codegen/slice.h +1 -1
- data/src/core/ext/filters/census/grpc_context.cc +3 -0
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +35 -35
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +20 -1
- data/src/core/ext/filters/channel_idle/idle_filter_state.h +2 -0
- 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 +8 -6
- data/src/core/ext/filters/client_channel/backup_poller.h +2 -4
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +43 -21
- data/src/core/ext/filters/client_channel/client_channel.cc +111 -82
- data/src/core/ext/filters/client_channel/client_channel.h +43 -8
- 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 +8 -6
- data/src/core/ext/filters/client_channel/connector.h +9 -3
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +19 -6
- data/src/core/ext/filters/client_channel/dynamic_filters.h +12 -2
- 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 +14 -1
- data/src/core/ext/filters/client_channel/health/health_check_client.h +2 -0
- data/src/core/ext/filters/client_channel/http_proxy.cc +10 -2
- data/src/core/ext/filters/client_channel/http_proxy.h +3 -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 +11 -5
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +132 -62
- 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 +407 -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 +1036 -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 +149 -147
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +176 -85
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +303 -203
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +6 -1
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +92 -54
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +240 -214
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +119 -111
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +86 -71
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +101 -25
- 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 +35 -11
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +36 -20
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +78 -14
- data/src/core/ext/filters/client_channel/lb_policy.cc +4 -2
- data/src/core/ext/filters/client_channel/lb_policy.h +18 -31
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +11 -6
- 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 +1 -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 +26 -6
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +139 -48
- 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 +6 -6
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +36 -14
- 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 +39 -7
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +18 -19
- 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 +61 -16
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +14 -2
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +8 -1
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +17 -12
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +111 -46
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +3 -1
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +12 -18
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +11 -5
- data/src/core/ext/filters/client_channel/retry_filter.cc +75 -36
- data/src/core/ext/filters/client_channel/retry_filter.h +1 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +12 -13
- 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 +24 -6
- data/src/core/ext/filters/client_channel/subchannel.cc +186 -187
- data/src/core/ext/filters/client_channel/subchannel.h +80 -36
- data/src/core/ext/filters/client_channel/subchannel_interface.h +51 -41
- 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 +24 -95
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +17 -9
- data/src/core/ext/filters/deadline/deadline_filter.cc +18 -9
- data/src/core/ext/filters/deadline/deadline_filter.h +8 -1
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +22 -6
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +8 -3
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +7 -4
- data/src/core/ext/filters/fault_injection/service_config_parser.h +17 -3
- data/src/core/ext/filters/http/client/http_client_filter.cc +30 -10
- data/src/core/ext/filters/http/client/http_client_filter.h +15 -2
- data/src/core/ext/filters/http/client_authority_filter.cc +16 -20
- data/src/core/ext/filters/http/client_authority_filter.h +5 -2
- data/src/core/ext/filters/http/http_filters_plugin.cc +16 -9
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +65 -187
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +1 -2
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +45 -107
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +1 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +95 -255
- data/src/core/ext/filters/http/server/http_server_filter.h +37 -3
- data/src/core/ext/filters/message_size/message_size_filter.cc +45 -41
- data/src/core/ext/filters/message_size/message_size_filter.h +15 -2
- data/src/core/ext/filters/rbac/rbac_filter.cc +15 -3
- data/src/core/ext/filters/rbac/rbac_filter.h +8 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +13 -2
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +14 -2
- data/src/core/ext/filters/server_config_selector/server_config_selector.cc +1 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +9 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +22 -2
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +1 -0
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +104 -138
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +9 -7
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +58 -29
- 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 +260 -491
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +6 -1
- 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 +145 -261
- data/src/core/ext/transport/chttp2/transport/flow_control.h +179 -288
- data/src/core/ext/transport/chttp2/transport/frame.h +0 -4
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +59 -211
- data/src/core/ext/transport/chttp2/transport/frame_data.h +13 -36
- 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 +10 -42
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +4 -0
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +10 -12
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +3 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +14 -12
- 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 +32 -13
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +8 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +53 -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 +31 -112
- data/src/core/ext/transport/chttp2/transport/parsing.cc +77 -43
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +11 -11
- 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 +54 -21
- data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -1
- data/src/core/ext/transport/inproc/inproc_transport.cc +93 -86
- data/src/core/ext/transport/inproc/inproc_transport.h +3 -1
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +52 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +164 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +94 -0
- 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/xds/certificate_provider_factory.h +6 -1
- data/src/core/ext/xds/certificate_provider_registry.cc +8 -8
- data/src/core/ext/xds/certificate_provider_registry.h +3 -1
- data/src/core/ext/xds/certificate_provider_store.cc +6 -2
- data/src/core/ext/xds/certificate_provider_store.h +10 -1
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +9 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +8 -0
- data/src/core/ext/xds/upb_utils.h +1 -2
- data/src/core/ext/xds/xds_api.cc +16 -18
- data/src/core/ext/xds/xds_api.h +12 -5
- data/src/core/ext/xds/xds_bootstrap.cc +37 -24
- data/src/core/ext/xds/xds_bootstrap.h +9 -11
- data/src/core/ext/xds/xds_certificate_provider.cc +16 -4
- data/src/core/ext/xds/xds_certificate_provider.h +17 -2
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +14 -5
- data/src/core/ext/xds/xds_channel_stack_modifier.h +5 -1
- data/src/core/ext/xds/xds_client.cc +117 -44
- data/src/core/ext/xds/xds_client.h +17 -3
- data/src/core/ext/xds/xds_client_stats.cc +3 -4
- data/src/core/ext/xds/xds_client_stats.h +4 -3
- data/src/core/ext/xds/xds_cluster.cc +126 -25
- data/src/core/ext/xds/xds_cluster.h +12 -1
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +16 -7
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +1 -8
- data/src/core/ext/xds/xds_common_types.cc +36 -22
- data/src/core/ext/xds/xds_common_types.h +12 -4
- data/src/core/ext/xds/xds_endpoint.cc +25 -15
- data/src/core/ext/xds/xds_endpoint.h +13 -5
- data/src/core/ext/xds/xds_http_fault_filter.cc +10 -8
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -1
- data/src/core/ext/xds/xds_http_filters.cc +7 -0
- data/src/core/ext/xds/xds_http_filters.h +3 -3
- data/src/core/ext/xds/xds_http_rbac_filter.cc +16 -0
- data/src/core/ext/xds/xds_http_rbac_filter.h +7 -0
- data/src/core/ext/xds/xds_lb_policy_registry.cc +291 -0
- data/src/core/ext/xds/xds_lb_policy_registry.h +72 -0
- data/src/core/ext/xds/xds_listener.cc +70 -42
- data/src/core/ext/xds/xds_listener.h +10 -1
- data/src/core/ext/xds/xds_resource_type.h +3 -3
- data/src/core/ext/xds/xds_resource_type_impl.h +7 -3
- data/src/core/ext/xds/xds_route_config.cc +56 -28
- data/src/core/ext/xds/xds_route_config.h +11 -2
- data/src/core/ext/xds/xds_routing.cc +16 -0
- data/src/core/ext/xds/xds_routing.h +7 -2
- data/src/core/ext/xds/xds_server_config_fetcher.cc +56 -7
- data/src/core/lib/address_utils/parse_address.cc +5 -8
- data/src/core/lib/address_utils/parse_address.h +3 -2
- data/src/core/lib/address_utils/sockaddr_utils.cc +60 -26
- data/src/core/lib/address_utils/sockaddr_utils.h +9 -4
- data/src/core/lib/avl/avl.h +6 -4
- data/src/core/lib/backoff/backoff.cc +1 -1
- data/src/core/lib/backoff/backoff.h +1 -1
- data/src/core/lib/channel/call_finalization.h +4 -0
- data/src/core/lib/channel/call_tracer.h +11 -5
- data/src/core/lib/channel/channel_args.cc +41 -22
- data/src/core/lib/channel/channel_args.h +34 -3
- data/src/core/lib/channel/channel_args_preconditioning.cc +4 -3
- data/src/core/lib/channel/channel_args_preconditioning.h +3 -2
- data/src/core/lib/channel/channel_fwd.h +26 -0
- data/src/core/lib/channel/channel_stack.cc +45 -7
- data/src/core/lib/channel/channel_stack.h +45 -9
- data/src/core/lib/channel/channel_stack_builder.cc +9 -19
- data/src/core/lib/channel/channel_stack_builder.h +17 -32
- data/src/core/lib/channel/channel_stack_builder_impl.cc +38 -43
- data/src/core/lib/channel/channel_stack_builder_impl.h +4 -6
- 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 +10 -14
- data/src/core/lib/channel/channelz.h +15 -7
- data/src/core/lib/channel/channelz_registry.cc +11 -19
- data/src/core/lib/channel/channelz_registry.h +10 -9
- data/src/core/lib/channel/connected_channel.cc +22 -31
- data/src/core/lib/channel/connected_channel.h +2 -0
- data/src/core/lib/channel/promise_based_filter.cc +451 -190
- data/src/core/lib/channel/promise_based_filter.h +162 -27
- 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.cc +6 -1
- data/src/core/lib/compression/compression_internal.cc +48 -16
- data/src/core/lib/compression/compression_internal.h +4 -3
- data/src/core/lib/compression/message_compress.cc +3 -1
- data/src/core/lib/compression/message_compress.h +2 -3
- 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.cc +9 -9
- data/src/core/lib/debug/stats.h +2 -1
- data/src/core/lib/debug/stats_data.cc +2 -1
- data/src/core/lib/debug/stats_data.h +0 -4
- data/src/core/lib/debug/trace.h +13 -12
- 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 +29 -14
- 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/iomgr_engine.cc +159 -0
- data/src/core/lib/event_engine/iomgr_engine/iomgr_engine.h +122 -0
- data/src/core/lib/event_engine/iomgr_engine/thread_pool.cc +123 -0
- data/src/core/lib/event_engine/iomgr_engine/thread_pool.h +70 -0
- data/src/core/lib/event_engine/iomgr_engine/time_averaged_stats.cc +62 -0
- data/src/core/lib/event_engine/iomgr_engine/time_averaged_stats.h +81 -0
- data/src/core/lib/event_engine/iomgr_engine/timer.cc +312 -0
- data/src/core/lib/event_engine/iomgr_engine/timer.h +193 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_heap.cc +107 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_heap.h +56 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_manager.cc +254 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_manager.h +111 -0
- data/src/core/lib/event_engine/memory_allocator.cc +12 -4
- data/src/core/lib/{iomgr/event_engine → event_engine}/promise.h +27 -9
- 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/lib/{iomgr/event_engine/pollset.h → event_engine/trace.cc} +3 -10
- 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/time_posix.cc +6 -9
- data/src/core/lib/gpr/time_windows.cc +10 -7
- data/src/core/lib/gpr/tls.h +3 -5
- data/src/core/lib/gprpp/bitset.h +5 -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/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 -68
- data/src/core/lib/gprpp/match.h +2 -0
- data/src/core/lib/gprpp/memory.h +1 -5
- data/src/core/lib/gprpp/orphanable.h +1 -4
- data/src/core/lib/gprpp/ref_counted.h +1 -3
- data/src/core/lib/gprpp/ref_counted_ptr.h +1 -1
- 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 +50 -32
- 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 +16 -0
- data/src/core/lib/gprpp/time.h +10 -1
- 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 +34 -4
- data/src/core/lib/http/format_request.h +3 -1
- data/src/core/lib/http/httpcli.cc +106 -93
- data/src/core/lib/http/httpcli.h +58 -10
- data/src/core/lib/http/httpcli_security_connector.cc +19 -8
- data/src/core/lib/http/httpcli_ssl_credentials.h +3 -1
- data/src/core/lib/http/parser.cc +6 -7
- data/src/core/lib/http/parser.h +3 -0
- data/src/core/lib/iomgr/call_combiner.cc +2 -2
- data/src/core/lib/iomgr/endpoint.cc +4 -4
- data/src/core/lib/iomgr/endpoint.h +7 -5
- data/src/core/lib/iomgr/endpoint_cfstream.cc +9 -6
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -1
- data/src/core/lib/iomgr/error.cc +11 -9
- data/src/core/lib/iomgr/error.h +9 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +57 -18
- data/src/core/lib/iomgr/ev_epoll1_linux.h +1 -1
- data/src/core/lib/iomgr/ev_poll_posix.cc +77 -52
- data/src/core/lib/iomgr/ev_poll_posix.h +2 -2
- data/src/core/lib/iomgr/ev_posix.cc +55 -96
- data/src/core/lib/iomgr/ev_posix.h +5 -3
- 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 +7 -1
- data/src/core/{ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc → lib/iomgr/iomgr_fwd.h} +9 -12
- data/src/core/lib/iomgr/iomgr_posix.cc +1 -0
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +1 -0
- data/src/core/lib/iomgr/load_file.cc +1 -1
- data/src/core/lib/iomgr/pollset_set.h +1 -2
- data/src/core/lib/iomgr/port.h +25 -6
- 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 +9 -15
- data/src/core/lib/iomgr/resolve_address_posix.h +5 -2
- data/src/core/lib/iomgr/resolve_address_windows.cc +8 -15
- 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.cc +12 -7
- data/src/core/lib/iomgr/tcp_client.h +24 -13
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +24 -10
- data/src/core/lib/iomgr/tcp_client_posix.cc +154 -29
- data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_client_windows.cc +27 -16
- data/src/core/lib/iomgr/tcp_posix.cc +96 -52
- data/src/core/lib/iomgr/tcp_server_posix.cc +33 -19
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +41 -38
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -6
- data/src/core/lib/iomgr/tcp_server_windows.cc +20 -12
- data/src/core/lib/iomgr/tcp_windows.cc +12 -9
- data/src/core/lib/iomgr/unix_sockets_posix.cc +2 -2
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -2
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +15 -12
- data/src/core/lib/iomgr/wakeup_fd_posix.h +0 -2
- data/src/core/lib/iomgr/work_serializer.h +2 -3
- 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 +10 -1
- data/src/core/lib/json/json_writer.cc +6 -1
- data/src/core/lib/matchers/matchers.cc +6 -3
- data/src/core/lib/matchers/matchers.h +2 -0
- data/src/core/lib/promise/activity.cc +1 -2
- data/src/core/lib/promise/activity.h +13 -19
- data/src/core/lib/promise/arena_promise.h +11 -1
- data/src/core/lib/promise/call_push_pull.h +4 -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/latch.h +0 -1
- data/src/core/lib/promise/loop.h +2 -0
- data/src/core/lib/promise/promise.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 +38 -31
- data/src/core/lib/promise/sleep.h +32 -22
- data/src/core/lib/promise/try_seq.h +2 -2
- data/src/core/lib/resolver/resolver.cc +5 -0
- data/src/core/lib/resolver/resolver.h +3 -0
- data/src/core/lib/resolver/resolver_factory.h +6 -4
- data/src/core/lib/resolver/resolver_registry.cc +2 -9
- data/src/core/lib/resolver/resolver_registry.h +12 -1
- data/src/core/lib/resolver/server_address.cc +17 -3
- data/src/core/lib/resolver/server_address.h +13 -6
- data/src/core/lib/resource_quota/api.cc +14 -1
- data/src/core/lib/resource_quota/api.h +4 -1
- 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 +62 -62
- data/src/core/lib/resource_quota/memory_quota.h +35 -30
- data/src/core/lib/resource_quota/resource_quota.h +8 -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/authorization_policy_provider_vtable.cc +4 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +9 -3
- data/src/core/lib/security/authorization/evaluate_args.h +6 -3
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +6 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +7 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +15 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +12 -1
- data/src/core/lib/security/authorization/matchers.cc +9 -1
- data/src/core/lib/security/authorization/matchers.h +7 -0
- data/src/core/lib/security/authorization/rbac_policy.cc +5 -0
- data/src/core/lib/security/authorization/rbac_policy.h +7 -0
- data/src/core/lib/security/context/security_context.cc +5 -2
- data/src/core/lib/security/context/security_context.h +14 -2
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +12 -4
- data/src/core/lib/security/credentials/alts/alts_credentials.h +8 -3
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +1 -3
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +1 -4
- data/src/core/lib/security/credentials/call_creds_util.cc +10 -0
- data/src/core/lib/security/credentials/call_creds_util.h +1 -0
- data/src/core/lib/security/credentials/channel_creds_registry.h +7 -1
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +10 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +11 -7
- data/src/core/lib/security/credentials/composite/composite_credentials.h +21 -6
- data/src/core/lib/security/credentials/credentials.cc +4 -8
- data/src/core/lib/security/credentials/credentials.h +27 -18
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +108 -9
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +18 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +9 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +27 -9
- data/src/core/lib/security/credentials/external/external_account_credentials.h +11 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +12 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +6 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +22 -4
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +10 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +21 -9
- data/src/core/lib/security/credentials/fake/fake_credentials.h +15 -3
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +1 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +51 -24
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +12 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +13 -4
- data/src/core/lib/security/credentials/iam/iam_credentials.h +12 -2
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +12 -2
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +9 -4
- data/src/core/lib/security/credentials/jwt/json_token.cc +5 -2
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +14 -7
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +16 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +28 -3
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +4 -2
- data/src/core/lib/security/credentials/local/local_credentials.cc +12 -5
- data/src/core/lib/security/credentials/local/local_credentials.h +9 -2
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +36 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +24 -4
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +12 -8
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +25 -1
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +13 -2
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +17 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +6 -6
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +39 -10
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +14 -11
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +35 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +34 -11
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -5
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +17 -2
- data/src/core/lib/security/credentials/tls/tls_credentials.h +7 -3
- data/src/core/lib/security/credentials/tls/tls_utils.cc +2 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +1 -1
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +20 -4
- data/src/core/lib/security/credentials/xds/xds_credentials.h +19 -5
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +22 -2
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +6 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +18 -2
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +9 -0
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +17 -2
- data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +5 -3
- data/src/core/lib/security/security_connector/{load_system_roots_linux.cc → load_system_roots_supported.cc} +27 -19
- data/src/core/lib/security/security_connector/{load_system_roots_linux.h → load_system_roots_supported.h} +5 -5
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +22 -3
- data/src/core/lib/security/security_connector/local/local_security_connector.h +6 -2
- data/src/core/lib/security/security_connector/security_connector.cc +20 -18
- data/src/core/lib/security/security_connector/security_connector.h +19 -7
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +19 -7
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -2
- data/src/core/lib/security/security_connector/ssl_utils.cc +12 -2
- data/src/core/lib/security/security_connector/ssl_utils.h +10 -7
- data/src/core/lib/security/security_connector/ssl_utils_config.h +1 -1
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +21 -13
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +23 -3
- data/src/core/lib/security/transport/auth_filters.h +7 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +24 -17
- data/src/core/lib/security/transport/secure_endpoint.cc +81 -20
- data/src/core/lib/security/transport/secure_endpoint.h +4 -3
- data/src/core/lib/security/transport/security_handshaker.cc +49 -16
- data/src/core/lib/security/transport/security_handshaker.h +5 -1
- data/src/core/lib/security/transport/server_auth_filter.cc +29 -6
- data/src/core/lib/security/util/json_util.cc +3 -2
- data/src/core/lib/security/util/json_util.h +0 -2
- data/src/core/lib/service_config/service_config.h +4 -8
- data/src/core/lib/service_config/service_config_call_data.h +6 -2
- data/src/core/lib/service_config/service_config_impl.cc +13 -6
- data/src/core/lib/service_config/service_config_impl.h +9 -4
- data/src/core/lib/service_config/service_config_parser.cc +8 -2
- 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 +79 -23
- data/src/core/lib/slice/slice_buffer.h +137 -0
- data/src/core/lib/slice/slice_buffer_api.cc +35 -0
- 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_string_helpers.cc +0 -16
- data/src/core/lib/slice/slice_string_helpers.h +1 -8
- 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 +90 -137
- data/src/core/lib/surface/call.h +21 -3
- 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 +179 -242
- data/src/core/lib/surface/channel.h +97 -58
- data/src/core/lib/surface/channel_init.h +2 -0
- 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 +29 -20
- data/src/core/lib/surface/completion_queue.h +7 -2
- 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 -46
- data/src/core/lib/surface/init.h +0 -8
- data/src/core/lib/surface/lame_client.cc +63 -109
- data/src/core/lib/surface/lame_client.h +41 -3
- data/src/core/lib/surface/metadata_array.cc +2 -0
- data/src/core/lib/surface/server.cc +83 -64
- data/src/core/lib/surface/server.h +42 -9
- data/src/core/lib/surface/validate_metadata.cc +3 -6
- 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/connectivity_state.cc +6 -4
- data/src/core/lib/transport/connectivity_state.h +2 -3
- data/src/core/lib/transport/error_utils.cc +16 -8
- data/src/core/lib/transport/error_utils.h +5 -1
- data/src/core/lib/{channel → transport}/handshaker.cc +12 -7
- 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 +28 -14
- 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 +133 -264
- 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 -20
- data/src/core/lib/transport/transport.h +48 -16
- data/src/core/lib/transport/transport_fwd.h +20 -0
- data/src/core/lib/transport/transport_impl.h +11 -0
- data/src/core/lib/transport/transport_op_string.cc +17 -18
- 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 +11 -0
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +9 -1
- data/src/core/tsi/fake_transport_security.cc +13 -1
- data/src/core/tsi/fake_transport_security.h +6 -0
- 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 +1 -1
- data/src/core/tsi/transport_security_grpc.cc +3 -2
- data/src/core/tsi/transport_security_grpc.h +5 -2
- data/src/ruby/ext/grpc/ext-export-truffleruby.clang +2 -0
- data/src/ruby/ext/grpc/ext-export-truffleruby.gcc +7 -0
- data/src/ruby/ext/grpc/ext-export.clang +1 -0
- data/src/ruby/ext/grpc/ext-export.gcc +1 -0
- data/src/ruby/ext/grpc/extconf.rb +50 -19
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
- data/src/ruby/lib/grpc/2.5/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/2.6/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/2.7/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/3.0/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/3.1/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/errors.rb +1 -1
- data/src/ruby/lib/grpc/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/generic/client_stub_spec.rb +23 -23
- data/third_party/abseil-cpp/absl/algorithm/container.h +1 -1
- data/third_party/abseil-cpp/absl/base/attributes.h +49 -22
- data/third_party/abseil-cpp/absl/base/casts.h +61 -68
- data/third_party/abseil-cpp/absl/base/config.h +182 -41
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +12 -42
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +67 -2
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +3 -3
- data/third_party/abseil-cpp/absl/base/internal/endian.h +17 -62
- data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +2 -0
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +54 -0
- data/third_party/abseil-cpp/absl/base/internal/prefetch.h +138 -0
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +29 -22
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +13 -12
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +3 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +8 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +2 -5
- data/third_party/abseil-cpp/absl/base/internal/strerror.cc +88 -0
- data/third_party/abseil-cpp/absl/base/internal/strerror.h +39 -0
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +0 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +2 -1
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +6 -7
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +12 -3
- data/third_party/abseil-cpp/absl/base/log_severity.cc +28 -0
- data/third_party/abseil-cpp/absl/base/log_severity.h +51 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +19 -11
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +2 -2
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +11 -4
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +510 -0
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +20 -9
- data/third_party/abseil-cpp/absl/container/internal/common.h +6 -5
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +10 -28
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +68 -20
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +29 -11
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +59 -38
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +4 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +515 -184
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +45 -88
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +4 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +3 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +2 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +20 -18
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +15 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +6 -1
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +46 -7
- data/third_party/abseil-cpp/absl/functional/bind_front.h +10 -1
- data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -1
- data/third_party/abseil-cpp/absl/hash/hash.h +82 -8
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +218 -23
- data/third_party/abseil-cpp/absl/numeric/bits.h +2 -1
- data/third_party/abseil-cpp/absl/numeric/int128.cc +4 -2
- data/third_party/abseil-cpp/absl/numeric/int128.h +2 -2
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +21 -6
- data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +4 -4
- data/third_party/abseil-cpp/absl/random/distributions.h +3 -3
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +3 -0
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +2 -1
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +2 -2
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +59 -48
- data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/randen.h +5 -11
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +6 -2
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +48 -23
- data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +24 -26
- data/third_party/abseil-cpp/absl/random/internal/traits.h +53 -5
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +5 -5
- data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +33 -48
- data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +9 -10
- data/third_party/abseil-cpp/absl/random/poisson_distribution.h +7 -4
- data/third_party/abseil-cpp/absl/random/seed_sequences.h +1 -0
- data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +2 -2
- data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/zipf_distribution.h +4 -3
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +17 -0
- data/third_party/abseil-cpp/absl/status/status.cc +174 -2
- data/third_party/abseil-cpp/absl/status/status.h +22 -12
- data/third_party/abseil-cpp/absl/status/statusor.h +9 -3
- data/third_party/abseil-cpp/absl/strings/ascii.h +4 -4
- data/third_party/abseil-cpp/absl/strings/cord.cc +194 -913
- data/third_party/abseil-cpp/absl/strings/cord.h +202 -81
- data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +188 -0
- data/third_party/abseil-cpp/absl/strings/cord_analysis.h +44 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.cc +30 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.h +572 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_data_edge.h +63 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +20 -32
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +123 -88
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +149 -49
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +44 -59
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +3 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +3 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +5 -4
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +7 -74
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +54 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +102 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +58 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +13 -11
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +11 -38
- data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +1 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +6 -5
- data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +38 -7
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +7 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +4 -5
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +5 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +2 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +9 -6
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +10 -2
- data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/numbers.cc +8 -8
- data/third_party/abseil-cpp/absl/strings/numbers.h +26 -23
- data/third_party/abseil-cpp/absl/strings/str_cat.h +20 -13
- data/third_party/abseil-cpp/absl/strings/str_join.h +9 -15
- data/third_party/abseil-cpp/absl/strings/str_split.h +1 -2
- data/third_party/abseil-cpp/absl/strings/string_view.cc +2 -13
- data/third_party/abseil-cpp/absl/strings/string_view.h +3 -2
- data/third_party/abseil-cpp/absl/strings/strip.h +8 -6
- data/third_party/abseil-cpp/absl/strings/substitute.h +10 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +9 -6
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +1 -6
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +0 -25
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +10 -4
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +75 -40
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +17 -9
- data/third_party/abseil-cpp/absl/synchronization/notification.h +3 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +5 -4
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +11 -7
- data/third_party/abseil-cpp/absl/time/time.h +16 -12
- data/third_party/abseil-cpp/absl/types/internal/optional.h +8 -0
- data/third_party/abseil-cpp/absl/types/internal/variant.h +3 -3
- data/third_party/abseil-cpp/absl/types/optional.h +17 -14
- data/third_party/abseil-cpp/absl/types/span.h +2 -1
- metadata +67 -36
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +0 -31
- 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/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/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/slice/slice_split.cc +0 -100
- data/src/core/lib/slice/slice_split.h +0 -40
- data/src/core/lib/transport/byte_stream.cc +0 -164
- data/src/core/lib/transport/byte_stream.h +0 -166
- data/third_party/abseil-cpp/absl/container/internal/have_sse.h +0 -50
data/include/grpc/compression.h
CHANGED
@@ -21,13 +21,13 @@
|
|
21
21
|
|
22
22
|
#include "absl/status/status.h"
|
23
23
|
#include "absl/status/statusor.h"
|
24
|
-
#include "absl/time/time.h"
|
25
24
|
|
26
25
|
#include <grpc/event_engine/endpoint_config.h>
|
27
26
|
#include <grpc/event_engine/memory_allocator.h>
|
28
27
|
#include <grpc/event_engine/port.h>
|
28
|
+
#include <grpc/event_engine/slice_buffer.h>
|
29
29
|
|
30
|
-
// TODO(
|
30
|
+
// TODO(vigneshbabu): Define the Endpoint::Write metrics collection system
|
31
31
|
namespace grpc_event_engine {
|
32
32
|
namespace experimental {
|
33
33
|
|
@@ -73,6 +73,11 @@ namespace experimental {
|
|
73
73
|
////////////////////////////////////////////////////////////////////////////////
|
74
74
|
class EventEngine {
|
75
75
|
public:
|
76
|
+
/// A duration between two events.
|
77
|
+
///
|
78
|
+
/// Throughout the EventEngine API durations are used to express how long
|
79
|
+
/// until an action should be performed.
|
80
|
+
using Duration = std::chrono::duration<int64_t, std::nano>;
|
76
81
|
/// A custom closure type for EventEngine task execution.
|
77
82
|
///
|
78
83
|
/// Throughout the EventEngine API, \a Closure ownership is retained by the
|
@@ -138,6 +143,18 @@ class EventEngine {
|
|
138
143
|
/// Shuts down all connections and invokes all pending read or write
|
139
144
|
/// callbacks with an error status.
|
140
145
|
virtual ~Endpoint() = default;
|
146
|
+
/// A struct representing optional arguments that may be provided to an
|
147
|
+
/// EventEngine Endpoint Read API call.
|
148
|
+
///
|
149
|
+
/// Passed as argument to an Endpoint \a Read
|
150
|
+
struct ReadArgs {
|
151
|
+
// A suggestion to the endpoint implementation to read at-least the
|
152
|
+
// specified number of bytes over the network connection before marking
|
153
|
+
// the endpoint read operation as complete. gRPC may use this argument
|
154
|
+
// to minimize the number of endpoint read API calls over the lifetime
|
155
|
+
// of a connection.
|
156
|
+
int64_t read_hint_bytes;
|
157
|
+
};
|
141
158
|
/// Reads data from the Endpoint.
|
142
159
|
///
|
143
160
|
/// When data is available on the connection, that data is moved into the
|
@@ -156,7 +173,21 @@ class EventEngine {
|
|
156
173
|
/// statuses to \a on_read. For example, callbacks might expect to receive
|
157
174
|
/// CANCELLED on endpoint shutdown.
|
158
175
|
virtual void Read(std::function<void(absl::Status)> on_read,
|
159
|
-
SliceBuffer* buffer) = 0;
|
176
|
+
SliceBuffer* buffer, const ReadArgs* args) = 0;
|
177
|
+
/// A struct representing optional arguments that may be provided to an
|
178
|
+
/// EventEngine Endpoint Write API call.
|
179
|
+
///
|
180
|
+
/// Passed as argument to an Endpoint \a Write
|
181
|
+
struct WriteArgs {
|
182
|
+
// Represents private information that may be passed by gRPC for
|
183
|
+
// select endpoints expected to be used only within google.
|
184
|
+
void* google_specific = nullptr;
|
185
|
+
// A suggestion to the endpoint implementation to group data to be written
|
186
|
+
// into frames of the specified max_frame_size. gRPC may use this
|
187
|
+
// argument to dynamically control the max sizes of frames sent to a
|
188
|
+
// receiver in response to high receiver memory pressure.
|
189
|
+
int64_t max_frame_size;
|
190
|
+
};
|
160
191
|
/// Writes data out on the connection.
|
161
192
|
///
|
162
193
|
/// \a on_writable is called when the connection is ready for more data. The
|
@@ -176,7 +207,7 @@ class EventEngine {
|
|
176
207
|
/// statuses to \a on_writable. For example, callbacks might expect to
|
177
208
|
/// receive CANCELLED on endpoint shutdown.
|
178
209
|
virtual void Write(std::function<void(absl::Status)> on_writable,
|
179
|
-
SliceBuffer* data) = 0;
|
210
|
+
SliceBuffer* data, const WriteArgs* args) = 0;
|
180
211
|
/// Returns an address in the format described in DNSResolver. The returned
|
181
212
|
/// values are expected to remain valid for the life of the Endpoint.
|
182
213
|
virtual const ResolvedAddress& GetPeerAddress() const = 0;
|
@@ -243,7 +274,7 @@ class EventEngine {
|
|
243
274
|
const ResolvedAddress& addr,
|
244
275
|
const EndpointConfig& args,
|
245
276
|
MemoryAllocator memory_allocator,
|
246
|
-
|
277
|
+
Duration timeout) = 0;
|
247
278
|
|
248
279
|
/// Request cancellation of a connection attempt.
|
249
280
|
///
|
@@ -259,7 +290,13 @@ class EventEngine {
|
|
259
290
|
public:
|
260
291
|
/// Task handle for DNS Resolution requests.
|
261
292
|
struct LookupTaskHandle {
|
262
|
-
intptr_t
|
293
|
+
intptr_t keys[2];
|
294
|
+
};
|
295
|
+
/// Optional configuration for DNSResolvers.
|
296
|
+
struct ResolverOptions {
|
297
|
+
/// If empty, default DNS servers will be used.
|
298
|
+
/// Must be in the "IP:port" format as described in naming.md.
|
299
|
+
std::string dns_server;
|
263
300
|
};
|
264
301
|
/// DNS SRV record type.
|
265
302
|
struct SRVRecord {
|
@@ -293,23 +330,23 @@ class EventEngine {
|
|
293
330
|
///
|
294
331
|
/// If cancelled, \a on_resolve will not be executed.
|
295
332
|
virtual LookupTaskHandle LookupHostname(LookupHostnameCallback on_resolve,
|
296
|
-
absl::string_view
|
333
|
+
absl::string_view name,
|
297
334
|
absl::string_view default_port,
|
298
|
-
|
335
|
+
Duration timeout) = 0;
|
299
336
|
/// Asynchronously perform an SRV record lookup.
|
300
337
|
///
|
301
338
|
/// \a on_resolve has the same meaning and expectations as \a
|
302
339
|
/// LookupHostname's \a on_resolve callback.
|
303
340
|
virtual LookupTaskHandle LookupSRV(LookupSRVCallback on_resolve,
|
304
341
|
absl::string_view name,
|
305
|
-
|
342
|
+
Duration timeout) = 0;
|
306
343
|
/// Asynchronously perform a TXT record lookup.
|
307
344
|
///
|
308
345
|
/// \a on_resolve has the same meaning and expectations as \a
|
309
346
|
/// LookupHostname's \a on_resolve callback.
|
310
347
|
virtual LookupTaskHandle LookupTXT(LookupTXTCallback on_resolve,
|
311
348
|
absl::string_view name,
|
312
|
-
|
349
|
+
Duration timeout) = 0;
|
313
350
|
/// Cancel an asynchronous lookup operation.
|
314
351
|
///
|
315
352
|
/// This shares the same semantics with \a EventEngine::Cancel: successfully
|
@@ -331,8 +368,10 @@ class EventEngine {
|
|
331
368
|
// de-experimentalize this API.
|
332
369
|
virtual bool IsWorkerThread() = 0;
|
333
370
|
|
334
|
-
/// Creates and returns an instance of a DNSResolver
|
335
|
-
|
371
|
+
/// Creates and returns an instance of a DNSResolver, optionally configured by
|
372
|
+
/// the \a options struct.
|
373
|
+
virtual std::unique_ptr<DNSResolver> GetDNSResolver(
|
374
|
+
const DNSResolver::ResolverOptions& options) = 0;
|
336
375
|
|
337
376
|
/// Asynchronously executes a task as soon as possible.
|
338
377
|
///
|
@@ -349,13 +388,13 @@ class EventEngine {
|
|
349
388
|
/// in some scenarios. This overload is useful in situations where performance
|
350
389
|
/// is not a critical concern.
|
351
390
|
virtual void Run(std::function<void()> closure) = 0;
|
352
|
-
/// Synonymous with scheduling an alarm to run
|
391
|
+
/// Synonymous with scheduling an alarm to run after duration \a when.
|
353
392
|
///
|
354
393
|
/// The \a closure will execute when time \a when arrives unless it has been
|
355
394
|
/// cancelled via the \a Cancel method. If cancelled, the closure will not be
|
356
395
|
/// run, nor will it be deleted. Ownership remains with the caller.
|
357
|
-
virtual TaskHandle
|
358
|
-
/// Synonymous with scheduling an alarm to run
|
396
|
+
virtual TaskHandle RunAfter(Duration when, Closure* closure) = 0;
|
397
|
+
/// Synonymous with scheduling an alarm to run after duration \a when.
|
359
398
|
///
|
360
399
|
/// The \a closure will execute when time \a when arrives unless it has been
|
361
400
|
/// cancelled via the \a Cancel method. If cancelled, the closure will not be
|
@@ -363,10 +402,10 @@ class EventEngine {
|
|
363
402
|
/// version's \a closure will be deleted by the EventEngine after the closure
|
364
403
|
/// has been run, or upon cancellation.
|
365
404
|
///
|
366
|
-
/// This version of \a
|
405
|
+
/// This version of \a RunAfter may be less performant than the \a Closure
|
367
406
|
/// version in some scenarios. This overload is useful in situations where
|
368
407
|
/// performance is not a critical concern.
|
369
|
-
virtual TaskHandle
|
408
|
+
virtual TaskHandle RunAfter(Duration when, std::function<void()> closure) = 0;
|
370
409
|
/// Request cancellation of a task.
|
371
410
|
///
|
372
411
|
/// If the associated closure has already been scheduled to run, it will not
|
@@ -375,6 +414,11 @@ class EventEngine {
|
|
375
414
|
/// If the associated callback has not been scheduled to run, it will be
|
376
415
|
/// cancelled, and the associated std::function or \a Closure* will not be
|
377
416
|
/// executed. In this case, Cancel will return true.
|
417
|
+
///
|
418
|
+
/// Implementation note: closures should be destroyed in a timely manner after
|
419
|
+
/// execution or cancelliation (milliseconds), since any state bound to the
|
420
|
+
/// closure may need to be destroyed for things to progress (e.g., if a
|
421
|
+
/// closure holds a ref to some ref-counted object).
|
378
422
|
virtual bool Cancel(TaskHandle handle) = 0;
|
379
423
|
};
|
380
424
|
|
@@ -388,7 +432,7 @@ class EventEngine {
|
|
388
432
|
/// created, applications must set a custom EventEngine factory method *before*
|
389
433
|
/// grpc is initialized.
|
390
434
|
void SetDefaultEventEngineFactory(
|
391
|
-
|
435
|
+
std::function<std::unique_ptr<EventEngine>()> factory);
|
392
436
|
|
393
437
|
/// Create an EventEngine using the default factory.
|
394
438
|
std::unique_ptr<EventEngine> CreateEventEngine();
|
@@ -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,118 @@
|
|
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_init(&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
|
+
SliceBuffer& operator=(const SliceBuffer&) = delete;
|
65
|
+
SliceBuffer& operator=(SliceBuffer&& other) noexcept {
|
66
|
+
grpc_slice_buffer_swap(&slice_buffer_, &other.slice_buffer_);
|
67
|
+
return *this;
|
68
|
+
}
|
69
|
+
|
70
|
+
/// Appends a new slice into the SliceBuffer and makes an attempt to merge
|
71
|
+
/// this slice with the last slice in the SliceBuffer.
|
72
|
+
void Append(Slice slice);
|
73
|
+
|
74
|
+
/// Adds a new slice into the SliceBuffer at the next available index.
|
75
|
+
/// Returns the index at which the new slice is added.
|
76
|
+
size_t AppendIndexed(Slice slice);
|
77
|
+
|
78
|
+
/// Returns the number of slices held by the SliceBuffer.
|
79
|
+
size_t Count() { return slice_buffer_.count; }
|
80
|
+
|
81
|
+
/// Removes/deletes the last n bytes in the SliceBuffer.
|
82
|
+
void RemoveLastNBytes(size_t n) {
|
83
|
+
grpc_slice_buffer_trim_end(&slice_buffer_, n, nullptr);
|
84
|
+
}
|
85
|
+
|
86
|
+
/// Move the first n bytes of the SliceBuffer into a memory pointed to by dst.
|
87
|
+
void MoveFirstNBytesIntoBuffer(size_t n, void* dst) {
|
88
|
+
grpc_slice_buffer_move_first_into_buffer(&slice_buffer_, n, dst);
|
89
|
+
}
|
90
|
+
|
91
|
+
/// Removes and unrefs all slices in the SliceBuffer.
|
92
|
+
void Clear() { grpc_slice_buffer_reset_and_unref(&slice_buffer_); }
|
93
|
+
|
94
|
+
/// Removes the first slice in the SliceBuffer and returns it.
|
95
|
+
Slice TakeFirst();
|
96
|
+
|
97
|
+
/// Prepends the slice to the the front of the SliceBuffer.
|
98
|
+
void Prepend(Slice slice);
|
99
|
+
|
100
|
+
/// Increased the ref-count of slice at the specified index and returns the
|
101
|
+
/// associated slice.
|
102
|
+
Slice RefSlice(size_t index);
|
103
|
+
|
104
|
+
/// The total number of bytes held by the SliceBuffer
|
105
|
+
size_t Length() { return slice_buffer_.length; }
|
106
|
+
|
107
|
+
/// Return a pointer to the back raw grpc_slice_buffer
|
108
|
+
grpc_slice_buffer* c_slice_buffer() { return &slice_buffer_; }
|
109
|
+
|
110
|
+
private:
|
111
|
+
/// The backing raw slice buffer.
|
112
|
+
grpc_slice_buffer slice_buffer_;
|
113
|
+
};
|
114
|
+
|
115
|
+
} // namespace experimental
|
116
|
+
} // namespace grpc_event_engine
|
117
|
+
|
118
|
+
#endif // GRPC_EVENT_ENGINE_SLICE_BUFFER_H
|
data/include/grpc/grpc.h
CHANGED
@@ -24,8 +24,8 @@
|
|
24
24
|
#include <stddef.h>
|
25
25
|
|
26
26
|
#include <grpc/byte_buffer.h>
|
27
|
-
#include <grpc/impl/codegen/connectivity_state.h>
|
28
|
-
#include <grpc/impl/codegen/grpc_types.h>
|
27
|
+
#include <grpc/impl/codegen/connectivity_state.h> // IWYU pragma: export
|
28
|
+
#include <grpc/impl/codegen/grpc_types.h> // IWYU pragma: export
|
29
29
|
#include <grpc/impl/codegen/propagation_bits.h>
|
30
30
|
#include <grpc/slice.h>
|
31
31
|
#include <grpc/status.h>
|
@@ -542,7 +542,7 @@ GRPCAPI void grpc_resource_quota_set_max_threads(
|
|
542
542
|
|
543
543
|
/** EXPERIMENTAL. Dumps xDS configs as a serialized ClientConfig proto.
|
544
544
|
The full name of the proto is envoy.service.status.v3.ClientConfig. */
|
545
|
-
GRPCAPI grpc_slice grpc_dump_xds_configs();
|
545
|
+
GRPCAPI grpc_slice grpc_dump_xds_configs(void);
|
546
546
|
|
547
547
|
/** Fetch a vtable for a grpc_channel_arg that points to a grpc_resource_quota
|
548
548
|
*/
|
@@ -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
|
*
|