grpc 1.46.3-x86_64-linux → 1.47.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 +49 -97
- 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/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 +18 -30
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +4 -1
- 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 +60 -17
- data/src/core/ext/filters/client_channel/client_channel.h +26 -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 +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 +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 +102 -60
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +157 -96
- 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 +45 -10
- 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 +30 -5
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +99 -23
- 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 +23 -3
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +75 -11
- 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 +134 -43
- 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 +30 -7
- 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 +13 -1
- 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 +15 -11
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +89 -33
- 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 +42 -2
- 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 +156 -160
- 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 +16 -2
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +12 -0
- data/src/core/ext/filters/deadline/deadline_filter.cc +6 -2
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -4
- data/src/core/ext/filters/http/client/http_client_filter.cc +14 -5
- data/src/core/ext/filters/http/client/http_client_filter.h +7 -1
- data/src/core/ext/filters/http/client_authority_filter.cc +5 -10
- data/src/core/ext/filters/http/http_filters_plugin.cc +7 -8
- 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 -247
- 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/transport/chttp2/client/chttp2_connector.cc +101 -135
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +9 -7
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -15
- 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 +69 -20
- 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 +12 -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 +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 +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 +24 -3
- data/src/core/ext/transport/chttp2/transport/parsing.cc +27 -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 +38 -2
- data/src/core/ext/transport/inproc/inproc_transport.cc +8 -5
- 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_store.cc +4 -2
- data/src/core/ext/xds/certificate_provider_store.h +1 -1
- data/src/core/ext/xds/xds_certificate_provider.cc +4 -1
- data/src/core/ext/xds/xds_certificate_provider.h +1 -1
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +5 -5
- data/src/core/ext/xds/xds_client.cc +46 -22
- 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_http_fault_filter.cc +3 -3
- data/src/core/ext/xds/xds_listener.cc +19 -9
- data/src/core/ext/xds/xds_server_config_fetcher.cc +2 -1
- 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 +3 -1
- data/src/core/lib/channel/call_finalization.h +4 -0
- data/src/core/lib/channel/call_tracer.h +8 -2
- data/src/core/lib/channel/channel_args.cc +41 -22
- data/src/core/lib/channel/channel_args.h +33 -3
- data/src/core/lib/channel/channel_args_preconditioning.cc +3 -3
- data/src/core/lib/channel/channel_args_preconditioning.h +3 -2
- data/src/core/lib/channel/channel_stack.cc +41 -3
- data/src/core/lib/channel/channel_stack.h +49 -3
- data/src/core/lib/channel/channel_stack_builder.cc +9 -19
- data/src/core/lib/channel/channel_stack_builder.h +15 -27
- data/src/core/lib/channel/channel_stack_builder_impl.cc +36 -41
- data/src/core/lib/channel/channel_stack_builder_impl.h +3 -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 +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 +1 -0
- data/src/core/lib/channel/promise_based_filter.cc +444 -189
- data/src/core/lib/channel/promise_based_filter.h +160 -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_internal.cc +45 -10
- 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/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/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/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 -1
- 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 +8 -4
- 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 +8 -0
- data/src/core/lib/gprpp/time.h +6 -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 +29 -0
- 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 +3 -4
- 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 +1 -4
- data/src/core/lib/iomgr/exec_ctx.h +1 -2
- 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/{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/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 +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 +12 -5
- data/src/core/lib/iomgr/tcp_client_windows.cc +13 -6
- data/src/core/lib/iomgr/tcp_posix.cc +9 -27
- data/src/core/lib/iomgr/tcp_server_posix.cc +26 -12
- 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 +10 -1
- 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 +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 +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 +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 +47 -5
- data/src/core/lib/resource_quota/memory_quota.h +24 -5
- 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/grpc_server_authz_filter.cc +3 -0
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +8 -2
- data/src/core/lib/security/credentials/alts/alts_credentials.h +2 -2
- data/src/core/lib/security/credentials/call_creds_util.cc +2 -0
- data/src/core/lib/security/credentials/channel_creds_registry.h +1 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +7 -3
- data/src/core/lib/security/credentials/composite/composite_credentials.h +5 -4
- data/src/core/lib/security/credentials/credentials.h +17 -10
- 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 +13 -3
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +25 -15
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +4 -1
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +8 -2
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +4 -4
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
- data/src/core/lib/security/credentials/local/local_credentials.cc +8 -2
- data/src/core/lib/security/credentials/local/local_credentials.h +2 -2
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +10 -6
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +4 -4
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +4 -1
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +1 -1
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +8 -2
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +4 -4
- 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 +5 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +26 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +28 -4
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +10 -0
- data/src/core/lib/security/credentials/tls/tls_credentials.h +2 -2
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +12 -3
- data/src/core/lib/security/credentials/xds/xds_credentials.h +5 -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/security_connector.cc +1 -1
- data/src/core/lib/security/security_connector/security_connector.h +1 -1
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +1 -1
- data/src/core/lib/security/transport/client_auth_filter.cc +6 -8
- data/src/core/lib/security/transport/secure_endpoint.cc +23 -12
- data/src/core/lib/security/transport/security_handshaker.cc +5 -5
- 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/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_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 +41 -26
- data/src/core/lib/surface/call.h +16 -2
- 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 +94 -57
- 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 +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 +69 -56
- data/src/core/lib/surface/server.h +39 -9
- 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 +4 -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 +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 -17
- data/src/core/lib/transport/transport.h +28 -2
- data/src/core/lib/transport/transport_impl.h +10 -0
- 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 +11 -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/ruby/ext/grpc/extconf.rb +2 -2
- 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/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- 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
- metadata +36 -29
- 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/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
@@ -19,13 +19,20 @@
|
|
19
19
|
|
20
20
|
#include <grpc/support/port_platform.h>
|
21
21
|
|
22
|
+
#include <stddef.h>
|
23
|
+
|
24
|
+
#include <memory>
|
25
|
+
#include <string>
|
22
26
|
#include <unordered_map>
|
23
27
|
#include <vector>
|
24
28
|
|
29
|
+
#include "absl/container/inlined_vector.h"
|
30
|
+
#include "absl/strings/string_view.h"
|
31
|
+
|
25
32
|
#include <grpc/impl/codegen/grpc_types.h>
|
26
|
-
#include <grpc/
|
33
|
+
#include <grpc/slice.h>
|
34
|
+
#include <grpc/support/log.h>
|
27
35
|
|
28
|
-
#include "src/core/lib/gprpp/ref_counted.h"
|
29
36
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
30
37
|
#include "src/core/lib/iomgr/error.h"
|
31
38
|
#include "src/core/lib/json/json.h"
|
@@ -18,8 +18,16 @@
|
|
18
18
|
|
19
19
|
#include "src/core/lib/service_config/service_config_parser.h"
|
20
20
|
|
21
|
+
#include <stdlib.h>
|
22
|
+
|
23
|
+
#include <string>
|
24
|
+
|
25
|
+
#include "absl/strings/str_cat.h"
|
26
|
+
|
21
27
|
#include <grpc/support/log.h>
|
22
28
|
|
29
|
+
// IWYU pragma: no_include <ext/alloc_traits.h>
|
30
|
+
|
23
31
|
namespace grpc_core {
|
24
32
|
|
25
33
|
ServiceConfigParser ServiceConfigParser::Builder::Build() {
|
@@ -19,10 +19,17 @@
|
|
19
19
|
|
20
20
|
#include <grpc/support/port_platform.h>
|
21
21
|
|
22
|
+
#include <stddef.h>
|
23
|
+
|
24
|
+
#include <algorithm>
|
22
25
|
#include <memory>
|
26
|
+
#include <utility>
|
23
27
|
#include <vector>
|
24
28
|
|
29
|
+
#include "absl/strings/string_view.h"
|
30
|
+
|
25
31
|
#include <grpc/impl/codegen/grpc_types.h>
|
32
|
+
#include <grpc/support/log.h>
|
26
33
|
|
27
34
|
#include "src/core/lib/iomgr/error.h"
|
28
35
|
#include "src/core/lib/json/json.h"
|
data/src/core/lib/slice/b64.cc
CHANGED
data/src/core/lib/slice/b64.h
CHANGED
@@ -20,12 +20,15 @@
|
|
20
20
|
|
21
21
|
#include "src/core/lib/slice/percent_encoding.h"
|
22
22
|
|
23
|
+
#include <stdlib.h>
|
24
|
+
|
23
25
|
#include <cstdint>
|
26
|
+
#include <type_traits>
|
27
|
+
#include <utility>
|
24
28
|
|
25
29
|
#include <grpc/support/log.h>
|
26
30
|
|
27
31
|
#include "src/core/lib/gprpp/bitset.h"
|
28
|
-
#include "src/core/lib/slice/slice_internal.h"
|
29
32
|
|
30
33
|
#if __cplusplus > 201103l
|
31
34
|
#define GRPC_PCTENCODE_CONSTEXPR_FN constexpr
|
data/src/core/lib/slice/slice.cc
CHANGED
@@ -22,12 +22,13 @@
|
|
22
22
|
|
23
23
|
#include <string.h>
|
24
24
|
|
25
|
+
#include <new>
|
26
|
+
|
25
27
|
#include <grpc/slice.h>
|
26
28
|
#include <grpc/support/alloc.h>
|
27
29
|
#include <grpc/support/log.h>
|
28
30
|
|
29
31
|
#include "src/core/lib/gprpp/memory.h"
|
30
|
-
#include "src/core/lib/gprpp/ref_counted.h"
|
31
32
|
#include "src/core/lib/slice/slice_internal.h"
|
32
33
|
#include "src/core/lib/slice/slice_refcount_base.h"
|
33
34
|
|
data/src/core/lib/slice/slice.h
CHANGED
@@ -17,11 +17,16 @@
|
|
17
17
|
|
18
18
|
#include <grpc/support/port_platform.h>
|
19
19
|
|
20
|
+
#include <string.h>
|
21
|
+
|
20
22
|
#include <cstdint>
|
23
|
+
#include <string>
|
24
|
+
#include <utility>
|
21
25
|
|
22
26
|
#include "absl/strings/string_view.h"
|
23
27
|
|
24
28
|
#include <grpc/slice.h>
|
29
|
+
#include <grpc/support/log.h>
|
25
30
|
|
26
31
|
#include "src/core/lib/gpr/string.h"
|
27
32
|
#include "src/core/lib/slice/slice_internal.h"
|
@@ -41,12 +46,12 @@
|
|
41
46
|
// MutableSlice - provides a guarantee of unique ownership, meaning the
|
42
47
|
// underlying data can be mutated safely.
|
43
48
|
|
44
|
-
|
49
|
+
// This slice implementation is an extension of the event engine Slice
|
50
|
+
// implementation defined in <grpc/event_engine/slice.h>. Changes to this
|
51
|
+
// implementation might warrant changes to the public event engine Slice
|
52
|
+
// type as well.
|
45
53
|
|
46
|
-
|
47
|
-
class Slice;
|
48
|
-
class StaticSlice;
|
49
|
-
class MutableSlice;
|
54
|
+
namespace grpc_core {
|
50
55
|
|
51
56
|
namespace slice_detail {
|
52
57
|
|
@@ -18,15 +18,44 @@
|
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
|
+
#include "src/core/lib/slice/slice_buffer.h"
|
22
|
+
|
21
23
|
#include <string.h>
|
22
24
|
|
25
|
+
#include <cstdint>
|
26
|
+
#include <utility>
|
27
|
+
|
28
|
+
#include <grpc/slice.h>
|
23
29
|
#include <grpc/slice_buffer.h>
|
24
30
|
#include <grpc/support/alloc.h>
|
25
31
|
#include <grpc/support/log.h>
|
26
32
|
|
27
|
-
#include "src/core/lib/gpr/useful.h"
|
28
|
-
#include "src/core/lib/iomgr/exec_ctx.h"
|
29
33
|
#include "src/core/lib/slice/slice_internal.h"
|
34
|
+
#include "src/core/lib/slice/slice_refcount.h"
|
35
|
+
|
36
|
+
namespace grpc_core {
|
37
|
+
|
38
|
+
void SliceBuffer::Append(Slice slice) {
|
39
|
+
grpc_slice_buffer_add(&slice_buffer_, slice.TakeCSlice());
|
40
|
+
}
|
41
|
+
|
42
|
+
size_t SliceBuffer::AppendIndexed(Slice slice) {
|
43
|
+
return grpc_slice_buffer_add_indexed(&slice_buffer_, slice.TakeCSlice());
|
44
|
+
}
|
45
|
+
|
46
|
+
Slice SliceBuffer::TakeFirst() {
|
47
|
+
return Slice(grpc_slice_buffer_take_first(&slice_buffer_));
|
48
|
+
}
|
49
|
+
|
50
|
+
void SliceBuffer::Prepend(Slice slice) {
|
51
|
+
grpc_slice_buffer_undo_take_first(&slice_buffer_, slice.TakeCSlice());
|
52
|
+
}
|
53
|
+
|
54
|
+
Slice SliceBuffer::RefSlice(size_t index) {
|
55
|
+
return Slice(grpc_slice_ref_internal(slice_buffer_.slices[index]));
|
56
|
+
}
|
57
|
+
|
58
|
+
} // namespace grpc_core
|
30
59
|
|
31
60
|
/* grow a buffer; requires GRPC_SLICE_BUFFER_INLINE_ELEMENTS > 1 */
|
32
61
|
#define GROW(x) (3 * (x) / 2)
|
@@ -91,15 +120,6 @@ void grpc_slice_buffer_destroy_internal(grpc_slice_buffer* sb) {
|
|
91
120
|
}
|
92
121
|
}
|
93
122
|
|
94
|
-
void grpc_slice_buffer_destroy(grpc_slice_buffer* sb) {
|
95
|
-
if (grpc_core::ExecCtx::Get() == nullptr) {
|
96
|
-
grpc_core::ExecCtx exec_ctx;
|
97
|
-
grpc_slice_buffer_destroy_internal(sb);
|
98
|
-
} else {
|
99
|
-
grpc_slice_buffer_destroy_internal(sb);
|
100
|
-
}
|
101
|
-
}
|
102
|
-
|
103
123
|
uint8_t* grpc_slice_buffer_tiny_add(grpc_slice_buffer* sb, size_t n) {
|
104
124
|
grpc_slice* back;
|
105
125
|
uint8_t* out;
|
@@ -138,13 +158,29 @@ size_t grpc_slice_buffer_add_indexed(grpc_slice_buffer* sb, grpc_slice s) {
|
|
138
158
|
|
139
159
|
void grpc_slice_buffer_add(grpc_slice_buffer* sb, grpc_slice s) {
|
140
160
|
size_t n = sb->count;
|
141
|
-
|
161
|
+
grpc_slice* back = nullptr;
|
162
|
+
if (n != 0) {
|
163
|
+
back = &sb->slices[n - 1];
|
164
|
+
}
|
165
|
+
if (s.refcount != nullptr && back != nullptr &&
|
166
|
+
s.refcount == back->refcount &&
|
167
|
+
GRPC_SLICE_START_PTR(s) == GRPC_SLICE_END_PTR(*back)) {
|
168
|
+
// Merge the two slices into one because they are contiguous and share the
|
169
|
+
// same refcount object.
|
170
|
+
back->data.refcounted.length += GRPC_SLICE_LENGTH(s);
|
171
|
+
sb->length += GRPC_SLICE_LENGTH(s);
|
172
|
+
// Unref the merged slice.
|
173
|
+
grpc_slice_unref_internal(s);
|
174
|
+
// early out
|
175
|
+
return;
|
176
|
+
}
|
177
|
+
|
178
|
+
if (!s.refcount && n) {
|
179
|
+
/* if both the last slice in the slice buffer and the slice being added
|
142
180
|
are inlined (that is, that they carry their data inside the slice data
|
143
181
|
structure), and the back slice is not full, then concatenate directly
|
144
182
|
into the back slice, preventing many small slices being passed into
|
145
183
|
writes */
|
146
|
-
if (!s.refcount && n) {
|
147
|
-
grpc_slice* back = &sb->slices[n - 1];
|
148
184
|
if (!back->refcount &&
|
149
185
|
back->data.inlined.length < GRPC_SLICE_INLINED_SIZE) {
|
150
186
|
if (s.data.inlined.length + back->data.inlined.length <=
|
@@ -199,15 +235,6 @@ void grpc_slice_buffer_reset_and_unref_internal(grpc_slice_buffer* sb) {
|
|
199
235
|
sb->slices = sb->base_slices;
|
200
236
|
}
|
201
237
|
|
202
|
-
void grpc_slice_buffer_reset_and_unref(grpc_slice_buffer* sb) {
|
203
|
-
if (grpc_core::ExecCtx::Get() == nullptr) {
|
204
|
-
grpc_core::ExecCtx exec_ctx;
|
205
|
-
grpc_slice_buffer_reset_and_unref_internal(sb);
|
206
|
-
} else {
|
207
|
-
grpc_slice_buffer_reset_and_unref_internal(sb);
|
208
|
-
}
|
209
|
-
}
|
210
|
-
|
211
238
|
void grpc_slice_buffer_swap(grpc_slice_buffer* a, grpc_slice_buffer* b) {
|
212
239
|
size_t a_offset = static_cast<size_t>(a->slices - a->base_slices);
|
213
240
|
size_t b_offset = static_cast<size_t>(b->slices - b->base_slices);
|
@@ -0,0 +1,106 @@
|
|
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_CORE_LIB_SLICE_SLICE_BUFFER_Habc_SLICE_BUFFER_H
|
16
|
+
#define GRPC_CORE_LIB_SLICE_SLICE_BUFFER_Habc_SLICE_BUFFER_H
|
17
|
+
|
18
|
+
#include <grpc/support/port_platform.h>
|
19
|
+
|
20
|
+
#include <string.h>
|
21
|
+
|
22
|
+
#include <grpc/slice.h>
|
23
|
+
#include <grpc/slice_buffer.h>
|
24
|
+
|
25
|
+
#include "src/core/lib/slice/slice.h"
|
26
|
+
|
27
|
+
namespace grpc_core {
|
28
|
+
|
29
|
+
/// A slice buffer holds the memory for a collection of slices.
|
30
|
+
/// The SliceBuffer object itself is meant to only hide the C-style API,
|
31
|
+
/// and won't hold the data itself. In terms of lifespan, the
|
32
|
+
/// grpc_slice_buffer ought to be kept somewhere inside the caller's objects,
|
33
|
+
/// like a transport or an endpoint.
|
34
|
+
///
|
35
|
+
/// This lifespan rule is likely to change in the future, as we may
|
36
|
+
/// collapse the grpc_slice_buffer structure straight into this class.
|
37
|
+
///
|
38
|
+
/// The SliceBuffer API is basically a replica of the grpc_slice_buffer's,
|
39
|
+
/// and its documentation will move here once we remove the C structure,
|
40
|
+
/// which should happen before the Event Engine's API is no longer
|
41
|
+
/// an experimental API.
|
42
|
+
class SliceBuffer {
|
43
|
+
public:
|
44
|
+
explicit SliceBuffer() { grpc_slice_buffer_init(&slice_buffer_); }
|
45
|
+
SliceBuffer(const SliceBuffer& other) = delete;
|
46
|
+
SliceBuffer(SliceBuffer&& other) noexcept {
|
47
|
+
grpc_slice_buffer_init(&slice_buffer_);
|
48
|
+
grpc_slice_buffer_move_into(&slice_buffer_, &other.slice_buffer_);
|
49
|
+
}
|
50
|
+
/// Upon destruction, the underlying raw slice buffer is cleaned out and all
|
51
|
+
/// slices are unreffed.
|
52
|
+
~SliceBuffer() { grpc_slice_buffer_destroy(&slice_buffer_); }
|
53
|
+
|
54
|
+
SliceBuffer& operator=(SliceBuffer&& other) noexcept {
|
55
|
+
grpc_slice_buffer_move_into(&slice_buffer_, &other.slice_buffer_);
|
56
|
+
return *this;
|
57
|
+
}
|
58
|
+
|
59
|
+
/// Appends a new slice into the SliceBuffer and makes an attempt to merge
|
60
|
+
/// this slice with the last slice in the SliceBuffer.
|
61
|
+
void Append(Slice slice);
|
62
|
+
|
63
|
+
/// Adds a new slice into the SliceBuffer at the next available index.
|
64
|
+
/// Returns the index at which the new slice is added.
|
65
|
+
size_t AppendIndexed(Slice slice);
|
66
|
+
|
67
|
+
/// Returns the number of slices held by the SliceBuffer.
|
68
|
+
size_t Count() { return slice_buffer_.count; }
|
69
|
+
|
70
|
+
/// Removes/deletes the last n bytes in the SliceBuffer.
|
71
|
+
void RemoveLastNBytes(size_t n) {
|
72
|
+
grpc_slice_buffer_trim_end(&slice_buffer_, n, nullptr);
|
73
|
+
}
|
74
|
+
|
75
|
+
/// Move the first n bytes of the SliceBuffer into a memory pointed to by dst.
|
76
|
+
void MoveFirstNBytesIntoBuffer(size_t n, void* dst) {
|
77
|
+
grpc_slice_buffer_move_first_into_buffer(&slice_buffer_, n, dst);
|
78
|
+
}
|
79
|
+
|
80
|
+
/// Removes and unrefs all slices in the SliceBuffer.
|
81
|
+
void Clear() { grpc_slice_buffer_reset_and_unref(&slice_buffer_); }
|
82
|
+
|
83
|
+
/// Removes the first slice in the SliceBuffer and returns it.
|
84
|
+
Slice TakeFirst();
|
85
|
+
|
86
|
+
/// Prepends the slice to the the front of the SliceBuffer.
|
87
|
+
void Prepend(Slice slice);
|
88
|
+
|
89
|
+
/// Increased the ref-count of slice at the specified index and returns the
|
90
|
+
/// associated slice.
|
91
|
+
Slice RefSlice(size_t index);
|
92
|
+
|
93
|
+
/// The total number of bytes held by the SliceBuffer
|
94
|
+
size_t Length() { return slice_buffer_.length; }
|
95
|
+
|
96
|
+
/// Return a pointer to the back raw grpc_slice_buffer
|
97
|
+
grpc_slice_buffer* RawSliceBuffer() { return &slice_buffer_; }
|
98
|
+
|
99
|
+
private:
|
100
|
+
/// The backing raw slice buffer.
|
101
|
+
grpc_slice_buffer slice_buffer_;
|
102
|
+
};
|
103
|
+
|
104
|
+
} // namespace grpc_core
|
105
|
+
|
106
|
+
#endif // GRPC_CORE_LIB_SLICE_SLICE_BUFFER_H
|
@@ -0,0 +1,35 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2015 gRPC authors.
|
4
|
+
*
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
* you may not use this file except in compliance with the License.
|
7
|
+
* You may obtain a copy of the License at
|
8
|
+
*
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
*
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
* See the License for the specific language governing permissions and
|
15
|
+
* limitations under the License.
|
16
|
+
*
|
17
|
+
*/
|
18
|
+
|
19
|
+
#include <grpc/support/port_platform.h>
|
20
|
+
|
21
|
+
#include <grpc/slice.h>
|
22
|
+
#include <grpc/slice_buffer.h>
|
23
|
+
|
24
|
+
#include "src/core/lib/iomgr/exec_ctx.h"
|
25
|
+
#include "src/core/lib/slice/slice_internal.h"
|
26
|
+
|
27
|
+
void grpc_slice_buffer_destroy(grpc_slice_buffer* sb) {
|
28
|
+
grpc_core::ExecCtx exec_ctx;
|
29
|
+
grpc_slice_buffer_destroy_internal(sb);
|
30
|
+
}
|
31
|
+
|
32
|
+
void grpc_slice_buffer_reset_and_unref(grpc_slice_buffer* sb) {
|
33
|
+
grpc_core::ExecCtx exec_ctx;
|
34
|
+
grpc_slice_buffer_reset_and_unref_internal(sb);
|
35
|
+
}
|
@@ -21,17 +21,18 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
-
#include <
|
24
|
+
#include <stdint.h>
|
25
|
+
|
26
|
+
#include <cstddef>
|
27
|
+
#include <string>
|
25
28
|
|
26
29
|
#include "absl/strings/string_view.h"
|
27
30
|
|
28
31
|
#include <grpc/slice.h>
|
29
|
-
#include <grpc/slice_buffer.h>
|
30
32
|
#include <grpc/support/log.h>
|
31
33
|
|
32
34
|
#include "src/core/lib/gpr/murmur_hash.h"
|
33
35
|
#include "src/core/lib/gprpp/memory.h"
|
34
|
-
#include "src/core/lib/gprpp/ref_counted.h"
|
35
36
|
#include "src/core/lib/slice/slice_refcount.h"
|
36
37
|
|
37
38
|
void grpc_slice_buffer_reset_and_unref_internal(grpc_slice_buffer* sb);
|
@@ -17,11 +17,10 @@
|
|
17
17
|
|
18
18
|
#include <grpc/support/port_platform.h>
|
19
19
|
|
20
|
-
#include <
|
20
|
+
#include <stdint.h>
|
21
21
|
|
22
|
-
#include <grpc/
|
22
|
+
#include <grpc/slice.h>
|
23
23
|
|
24
|
-
#include "src/core/lib/gpr/murmur_hash.h"
|
25
24
|
#include "src/core/lib/slice/slice_refcount_base.h"
|
26
25
|
|
27
26
|
namespace grpc_core {
|
@@ -17,10 +17,9 @@
|
|
17
17
|
|
18
18
|
#include <grpc/support/port_platform.h>
|
19
19
|
|
20
|
-
#include <
|
20
|
+
#include <stddef.h>
|
21
21
|
|
22
|
-
#include <
|
23
|
-
#include <grpc/support/log.h>
|
22
|
+
#include <atomic>
|
24
23
|
|
25
24
|
// grpc_slice_refcount : A reference count for grpc_slice.
|
26
25
|
struct grpc_slice_refcount {
|
@@ -16,8 +16,11 @@
|
|
16
16
|
|
17
17
|
#include "src/core/lib/slice/slice_split.h"
|
18
18
|
|
19
|
+
#include <stddef.h>
|
20
|
+
#include <stdint.h>
|
19
21
|
#include <string.h>
|
20
22
|
|
23
|
+
#include <grpc/slice_buffer.h>
|
21
24
|
#include <grpc/support/log.h>
|
22
25
|
|
23
26
|
/** Finds the initial (\a begin) and final (\a end) offsets of the next
|
@@ -21,11 +21,7 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
-
#include <stdbool.h>
|
25
|
-
#include <stddef.h>
|
26
|
-
|
27
24
|
#include <grpc/slice.h>
|
28
|
-
#include <grpc/slice_buffer.h>
|
29
25
|
|
30
26
|
/** Split \a str by the separator \a sep. Results are stored in \a dst, which
|
31
27
|
* should be a properly initialized instance. */
|
@@ -21,13 +21,10 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
-
#include <
|
25
|
-
#include <stddef.h>
|
24
|
+
#include <stdint.h>
|
26
25
|
|
27
26
|
#include <grpc/slice.h>
|
28
27
|
|
29
|
-
#include "src/core/lib/gpr/string.h"
|
30
|
-
|
31
28
|
/* Calls gpr_dump on a slice. */
|
32
29
|
char* grpc_dump_slice(const grpc_slice& slice, uint32_t flags);
|
33
30
|
/* Calls gpr_dump on a slice and returns the result as a slice. */
|
@@ -16,8 +16,13 @@
|
|
16
16
|
|
17
17
|
#include "src/core/lib/surface/builtins.h"
|
18
18
|
|
19
|
+
#include <limits.h>
|
20
|
+
|
21
|
+
#include "src/core/lib/channel/channel_stack_builder.h"
|
19
22
|
#include "src/core/lib/channel/connected_channel.h"
|
20
23
|
#include "src/core/lib/config/core_configuration.h"
|
24
|
+
#include "src/core/lib/surface/channel_init.h"
|
25
|
+
#include "src/core/lib/surface/channel_stack_type.h"
|
21
26
|
#include "src/core/lib/surface/lame_client.h"
|
22
27
|
#include "src/core/lib/surface/server.h"
|
23
28
|
|
@@ -36,12 +41,12 @@ void RegisterBuiltins(CoreConfiguration::Builder* builder) {
|
|
36
41
|
builder->channel_init()->RegisterStage(
|
37
42
|
GRPC_CLIENT_LAME_CHANNEL, GRPC_CHANNEL_INIT_BUILTIN_PRIORITY,
|
38
43
|
[](ChannelStackBuilder* builder) {
|
39
|
-
builder->AppendFilter(&
|
44
|
+
builder->AppendFilter(&LameClientFilter::kFilter);
|
40
45
|
return true;
|
41
46
|
});
|
42
47
|
builder->channel_init()->RegisterStage(
|
43
48
|
GRPC_SERVER_CHANNEL, INT_MAX, [](ChannelStackBuilder* builder) {
|
44
|
-
builder->PrependFilter(&Server::kServerTopFilter
|
49
|
+
builder->PrependFilter(&Server::kServerTopFilter);
|
45
50
|
return true;
|
46
51
|
});
|
47
52
|
}
|
@@ -18,12 +18,18 @@
|
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
|
+
#include <stddef.h>
|
22
|
+
|
21
23
|
#include <grpc/byte_buffer.h>
|
24
|
+
#include <grpc/impl/codegen/compression_types.h>
|
25
|
+
#include <grpc/impl/codegen/grpc_types.h>
|
26
|
+
#include <grpc/slice.h>
|
27
|
+
#include <grpc/slice_buffer.h>
|
22
28
|
#include <grpc/support/alloc.h>
|
23
|
-
#include <grpc/support/log.h>
|
24
29
|
|
25
30
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
26
31
|
#include "src/core/lib/slice/slice_internal.h"
|
32
|
+
#include "src/core/lib/slice/slice_refcount.h"
|
27
33
|
|
28
34
|
grpc_byte_buffer* grpc_raw_byte_buffer_create(grpc_slice* slices,
|
29
35
|
size_t nslices) {
|
@@ -18,17 +18,17 @@
|
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
|
+
#include <stdint.h>
|
21
22
|
#include <string.h>
|
22
23
|
|
23
24
|
#include <grpc/byte_buffer.h>
|
24
25
|
#include <grpc/byte_buffer_reader.h>
|
25
|
-
#include <grpc/
|
26
|
-
#include <grpc/
|
27
|
-
#include <grpc/support/alloc.h>
|
26
|
+
#include <grpc/impl/codegen/grpc_types.h>
|
27
|
+
#include <grpc/slice.h>
|
28
28
|
#include <grpc/support/log.h>
|
29
29
|
|
30
30
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
31
|
-
#include "src/core/lib/slice/
|
31
|
+
#include "src/core/lib/slice/slice_refcount.h"
|
32
32
|
|
33
33
|
int grpc_byte_buffer_reader_init(grpc_byte_buffer_reader* reader,
|
34
34
|
grpc_byte_buffer* buffer) {
|