grpc 1.73.0 → 1.74.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +38 -17
- data/include/grpc/create_channel_from_endpoint.h +54 -0
- data/include/grpc/credentials.h +11 -5
- data/include/grpc/event_engine/event_engine.h +74 -17
- data/include/grpc/grpc_posix.h +20 -1
- data/include/grpc/impl/channel_arg_names.h +2 -4
- data/include/grpc/module.modulemap +1 -0
- data/include/grpc/support/json.h +24 -0
- data/src/core/call/interception_chain.h +7 -11
- data/src/core/channelz/channel_trace.cc +213 -115
- data/src/core/channelz/channel_trace.h +380 -86
- data/src/core/channelz/channelz.cc +270 -181
- data/src/core/channelz/channelz.h +168 -55
- data/src/core/channelz/channelz_registry.cc +2 -1
- data/src/core/channelz/channelz_registry.h +24 -0
- data/src/core/channelz/property_list.cc +357 -0
- data/src/core/channelz/property_list.h +202 -0
- data/src/core/channelz/ztrace_collector.h +3 -2
- data/src/core/client_channel/backup_poller.cc +17 -2
- data/src/core/client_channel/client_channel.cc +17 -28
- data/src/core/client_channel/client_channel_filter.cc +19 -29
- data/src/core/client_channel/config_selector.h +8 -2
- data/src/core/client_channel/dynamic_filters.cc +5 -6
- data/src/core/client_channel/dynamic_filters.h +1 -1
- data/src/core/client_channel/global_subchannel_pool.cc +4 -1
- data/src/core/client_channel/retry_filter.cc +21 -27
- data/src/core/client_channel/retry_filter.h +10 -7
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +5 -5
- data/src/core/client_channel/retry_filter_legacy_call_data.h +1 -1
- data/src/core/client_channel/retry_interceptor.cc +30 -44
- data/src/core/client_channel/retry_interceptor.h +18 -17
- data/src/core/client_channel/retry_throttle.cc +46 -61
- data/src/core/client_channel/retry_throttle.h +17 -39
- data/src/core/client_channel/subchannel.cc +43 -19
- data/src/core/client_channel/subchannel.h +8 -0
- data/src/core/config/config_vars.cc +2 -0
- data/src/core/config/core_configuration.cc +1 -0
- data/src/core/config/core_configuration.h +11 -0
- data/src/core/credentials/call/call_creds_registry.h +125 -0
- data/src/core/credentials/call/call_creds_registry_init.cc +91 -0
- data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +6 -48
- data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc +86 -0
- data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.h +74 -0
- data/src/core/credentials/call/jwt_util.cc +70 -0
- data/src/core/credentials/call/jwt_util.h +32 -0
- data/src/core/credentials/transport/channel_creds_registry_init.cc +1 -1
- data/src/core/credentials/transport/google_default/google_default_credentials.cc +72 -4
- data/src/core/credentials/transport/ssl/ssl_credentials.cc +0 -1
- data/src/core/credentials/transport/tls/load_system_roots_supported.cc +1 -0
- data/src/core/credentials/transport/xds/xds_credentials.cc +0 -3
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +8 -8
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +16 -16
- data/src/core/ext/filters/http/client_authority_filter.cc +2 -4
- data/src/core/ext/filters/http/message_compress/compression_filter.h +25 -22
- data/src/core/ext/filters/http/server/http_server_filter.h +12 -11
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +120 -35
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +162 -115
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +0 -3
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +1239 -3514
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +1008 -1486
- data/src/core/ext/transport/chttp2/transport/flow_control.h +22 -17
- data/src/core/ext/transport/chttp2/transport/frame.cc +10 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +2 -2
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/header_assembler.h +299 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +11 -5
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +12 -1
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +1017 -0
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +593 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +19 -22
- data/{third_party/abseil-cpp/absl/strings/cord_buffer.cc → src/core/ext/transport/chttp2/transport/http2_stats_collector.cc} +14 -14
- data/src/core/ext/transport/chttp2/transport/http2_stats_collector.h +33 -0
- data/src/core/ext/transport/chttp2/transport/http2_status.h +6 -1
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +43 -0
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +65 -0
- data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +0 -29
- data/src/core/ext/transport/chttp2/transport/internal.h +18 -8
- data/src/core/ext/transport/chttp2/transport/keepalive.cc +105 -0
- data/src/core/ext/transport/chttp2/transport/keepalive.h +138 -0
- data/src/core/ext/transport/chttp2/transport/message_assembler.h +185 -0
- data/src/core/ext/transport/chttp2/transport/parsing.cc +2 -4
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +19 -0
- data/src/core/ext/transport/chttp2/transport/ping_promise.cc +151 -0
- data/src/core/ext/transport/chttp2/transport/ping_promise.h +180 -0
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +5 -9
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +11 -0
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +39 -1
- data/src/core/ext/transport/chttp2/transport/transport_common.cc +19 -0
- data/src/core/ext/transport/chttp2/transport/transport_common.h +27 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +37 -11
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h +571 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +120 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h +36 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +1272 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +312 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +50 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +984 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +226 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +44 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.c +175 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.h +82 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.c +135 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.h +67 -0
- data/src/core/filter/auth/auth_filters.h +0 -25
- data/src/core/filter/auth/client_auth_filter.cc +0 -118
- data/src/core/filter/filter_args.h +9 -23
- data/src/core/handshaker/handshaker.cc +23 -14
- data/src/core/handshaker/handshaker.h +3 -0
- data/src/core/handshaker/http_connect/http_connect_handshaker.cc +3 -1
- data/src/core/handshaker/security/legacy_secure_endpoint.cc +6 -5
- data/src/core/handshaker/security/secure_endpoint.cc +70 -25
- data/src/core/handshaker/security/security_handshaker.cc +4 -1
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +7 -1
- data/src/core/lib/channel/channel_args.cc +15 -0
- data/src/core/lib/channel/channel_args.h +3 -0
- data/src/core/lib/channel/channel_stack.cc +22 -23
- data/src/core/lib/channel/channel_stack.h +9 -7
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
- data/src/core/lib/channel/channel_stack_builder_impl.h +2 -7
- data/src/core/lib/channel/promise_based_filter.h +5 -5
- data/src/core/lib/debug/trace_impl.h +0 -1
- data/src/core/lib/event_engine/ares_resolver.cc +165 -46
- data/src/core/lib/event_engine/ares_resolver.h +48 -2
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +3 -1
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +1 -4
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +2 -6
- data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.cc +40 -0
- data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.h +60 -0
- data/src/core/lib/event_engine/event_engine.cc +7 -0
- data/src/core/lib/event_engine/extensions/channelz.h +10 -6
- data/src/core/lib/event_engine/grpc_polled_fd.h +5 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +130 -162
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +11 -15
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +75 -117
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +7 -9
- data/src/core/lib/event_engine/posix_engine/event_poller.h +18 -15
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +0 -18
- data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +124 -0
- data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.h +243 -0
- data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +29 -19
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +6 -2
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +6 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +145 -92
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +9 -19
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +333 -116
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +61 -18
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +45 -37
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +6 -4
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +32 -142
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +6 -5
- data/src/core/lib/event_engine/posix_engine/posix_interface.h +211 -0
- data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +1083 -0
- data/src/core/lib/event_engine/posix_engine/posix_interface_windows.cc +281 -0
- data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.cc +154 -0
- data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +174 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +3 -719
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +10 -170
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +33 -22
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +13 -11
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +117 -151
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +26 -94
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +26 -25
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +6 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +36 -62
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +6 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +7 -6
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +12 -6
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +3 -1
- data/src/core/lib/event_engine/shim.cc +9 -0
- data/src/core/lib/event_engine/shim.h +3 -0
- data/src/core/lib/event_engine/thread_pool/thread_pool.h +7 -3
- data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +0 -17
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +4 -2
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -2
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +4 -0
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +4 -0
- data/src/core/lib/event_engine/windows/windows_endpoint.h +2 -6
- data/src/core/lib/event_engine/windows/windows_engine.cc +0 -1
- data/src/core/lib/event_engine/windows/windows_engine.h +1 -3
- data/src/core/lib/event_engine/windows/windows_listener.cc +14 -2
- data/src/core/lib/experiments/experiments.cc +45 -93
- data/src/core/lib/experiments/experiments.h +21 -51
- data/src/core/lib/iomgr/endpoint.cc +4 -3
- data/src/core/lib/iomgr/endpoint.h +7 -4
- data/src/core/lib/iomgr/endpoint_cfstream.cc +3 -2
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +7 -2
- data/src/core/lib/iomgr/ev_poll_posix.cc +7 -2
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +4 -6
- data/src/core/lib/iomgr/tcp_posix.cc +12 -6
- data/src/core/lib/iomgr/tcp_windows.cc +3 -2
- data/src/core/lib/promise/activity.h +1 -0
- data/src/core/lib/promise/arena_promise.h +23 -7
- data/src/core/lib/promise/detail/promise_factory.h +10 -0
- data/src/core/lib/promise/detail/promise_like.h +118 -11
- data/src/core/lib/promise/detail/promise_variant.h +50 -0
- data/src/core/lib/promise/detail/seq_state.h +687 -548
- data/src/core/lib/promise/if.h +20 -0
- data/src/core/lib/promise/inter_activity_latch.h +147 -0
- data/src/core/lib/promise/inter_activity_mutex.h +547 -0
- data/src/core/lib/promise/loop.h +65 -3
- data/src/core/lib/promise/map.h +24 -0
- data/src/core/lib/promise/match_promise.h +103 -0
- data/src/core/lib/promise/mpsc.cc +425 -0
- data/src/core/lib/promise/mpsc.h +490 -0
- data/src/core/lib/promise/party.cc +50 -1
- data/src/core/lib/promise/party.h +66 -1
- data/src/core/lib/promise/race.h +31 -0
- data/src/core/lib/promise/seq.h +4 -1
- data/src/core/lib/promise/status_flag.h +7 -0
- data/src/core/lib/promise/try_seq.h +4 -1
- data/src/core/lib/promise/wait_set.cc +28 -0
- data/src/core/lib/promise/wait_set.h +86 -0
- data/src/core/lib/resource_quota/arena.h +19 -0
- data/src/core/lib/slice/slice.h +5 -0
- data/src/core/lib/surface/channel_create.cc +88 -13
- data/src/core/lib/surface/channel_create.h +4 -0
- data/src/core/lib/surface/channel_init.cc +164 -47
- data/src/core/lib/surface/channel_init.h +64 -1
- data/src/core/lib/surface/filter_stack_call.cc +18 -9
- data/src/core/lib/surface/init.cc +6 -15
- data/src/core/lib/surface/legacy_channel.cc +3 -5
- data/src/core/lib/surface/legacy_channel.h +3 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/promise_endpoint.cc +110 -0
- data/src/core/lib/transport/promise_endpoint.h +307 -0
- data/src/core/load_balancing/child_policy_handler.cc +2 -4
- data/src/core/load_balancing/delegating_helper.h +2 -3
- data/src/core/load_balancing/health_check_client.cc +1 -5
- data/src/core/load_balancing/lb_policy.h +1 -3
- data/src/core/load_balancing/oob_backend_metric.cc +1 -5
- data/src/core/load_balancing/pick_first/pick_first.cc +3 -0
- data/src/core/load_balancing/xds/cds.cc +10 -1
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
- data/src/core/resolver/xds/xds_config.cc +6 -3
- data/src/core/resolver/xds/xds_config.h +9 -4
- data/src/core/resolver/xds/xds_dependency_manager.cc +21 -6
- data/src/core/resolver/xds/xds_dependency_manager.h +2 -1
- data/src/core/resolver/xds/xds_resolver.cc +31 -11
- data/src/core/server/server.cc +83 -12
- data/src/core/server/server.h +21 -2
- data/src/core/server/xds_server_config_fetcher.cc +63 -25
- data/src/core/service_config/service_config.h +1 -1
- data/src/core/service_config/service_config_impl.h +1 -1
- data/src/core/telemetry/context_list_entry.cc +38 -0
- data/src/core/telemetry/context_list_entry.h +42 -12
- data/src/core/telemetry/stats_data.cc +233 -207
- data/src/core/telemetry/stats_data.h +250 -153
- data/src/core/telemetry/tcp_tracer.h +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +11 -3
- data/src/core/tsi/fake_transport_security.cc +17 -0
- data/src/core/tsi/ssl_transport_security.cc +2 -0
- data/src/core/tsi/transport_security_grpc.cc +8 -0
- data/src/core/tsi/transport_security_grpc.h +15 -0
- data/src/core/util/backoff.cc +1 -5
- data/src/core/util/backoff.h +1 -0
- data/src/core/util/down_cast.h +1 -1
- data/src/core/util/function_signature.h +15 -1
- data/src/core/util/http_client/httpcli.cc +12 -5
- data/src/core/util/http_client/httpcli.h +4 -1
- data/src/core/util/latent_see.h +8 -5
- data/src/core/util/log.cc +4 -0
- data/src/core/util/memory_usage.h +268 -0
- data/src/core/util/per_cpu.cc +2 -0
- data/src/core/util/per_cpu.h +7 -0
- data/src/core/util/shared_bit_gen.h +20 -0
- data/src/core/util/single_set_ptr.h +2 -2
- data/src/core/util/upb_utils.h +42 -0
- data/src/core/util/uri.cc +3 -2
- data/src/core/util/useful.h +53 -2
- data/src/core/util/wait_for_single_owner.cc +31 -0
- data/src/core/util/wait_for_single_owner.h +24 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +2 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +5 -0
- data/src/core/xds/grpc/xds_client_grpc.cc +6 -2
- data/src/core/xds/grpc/xds_common_types_parser.cc +138 -50
- data/src/core/xds/grpc/xds_common_types_parser.h +12 -0
- data/src/core/xds/grpc/xds_http_filter.h +7 -0
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +22 -0
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +3 -0
- data/src/core/xds/grpc/xds_route_config_parser.cc +15 -38
- data/src/core/xds/grpc/xds_server_grpc.cc +63 -13
- data/src/core/xds/grpc/xds_server_grpc.h +10 -2
- data/src/core/xds/grpc/xds_server_grpc_interface.h +4 -0
- data/src/core/xds/grpc/xds_transport_grpc.cc +18 -0
- data/src/core/xds/xds_client/xds_bootstrap.h +2 -0
- data/src/core/xds/xds_client/xds_client.cc +26 -5
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_call.c +1 -8
- data/src/ruby/ext/grpc/rb_channel.c +72 -568
- data/src/ruby/ext/grpc/rb_channel.h +0 -3
- data/src/ruby/ext/grpc/rb_completion_queue.c +26 -14
- data/src/ruby/ext/grpc/rb_completion_queue.h +1 -7
- data/src/ruby/ext/grpc/rb_grpc.c +9 -5
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
- data/src/ruby/ext/grpc/rb_loader.c +0 -4
- data/src/ruby/ext/grpc/rb_server.c +31 -50
- data/src/ruby/lib/grpc/generic/client_stub.rb +4 -4
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/core_spec.rb +22 -0
- data/src/ruby/spec/generic/active_call_spec.rb +1 -1
- data/third_party/abseil-cpp/absl/algorithm/container.h +2 -19
- data/third_party/abseil-cpp/absl/base/attributes.h +76 -7
- data/third_party/abseil-cpp/absl/base/call_once.h +11 -12
- data/third_party/abseil-cpp/absl/base/config.h +20 -129
- data/third_party/abseil-cpp/absl/base/{internal/fast_type_id.h → fast_type_id.h} +11 -16
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +0 -5
- data/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +7 -7
- data/third_party/abseil-cpp/absl/base/internal/endian.h +34 -38
- data/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +71 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +6 -5
- data/third_party/abseil-cpp/absl/base/internal/{nullability_impl.h → nullability_deprecated.h} +45 -8
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +0 -9
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -13
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +6 -6
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +8 -3
- data/third_party/abseil-cpp/absl/base/no_destructor.h +11 -32
- data/third_party/abseil-cpp/absl/base/nullability.h +84 -72
- data/third_party/abseil-cpp/absl/base/options.h +3 -80
- data/third_party/abseil-cpp/absl/base/policy_checks.h +7 -7
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +1 -3
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -4
- data/third_party/abseil-cpp/absl/container/btree_map.h +4 -2
- data/third_party/abseil-cpp/absl/container/btree_set.h +4 -2
- data/third_party/abseil-cpp/absl/container/fixed_array.h +7 -14
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +5 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +6 -1
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +8 -5
- data/third_party/abseil-cpp/absl/container/internal/btree.h +132 -29
- data/third_party/abseil-cpp/absl/container/internal/btree_container.h +175 -71
- data/third_party/abseil-cpp/absl/container/internal/common.h +43 -0
- data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -2
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +9 -10
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +1 -8
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +0 -4
- data/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +527 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +20 -4
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +31 -12
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +2 -7
- data/third_party/abseil-cpp/absl/container/internal/layout.h +26 -42
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +199 -68
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +1354 -183
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +881 -1424
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +80 -0
- data/third_party/abseil-cpp/absl/crc/crc32c.cc +0 -4
- data/third_party/abseil-cpp/absl/crc/crc32c.h +7 -5
- data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -22
- data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +45 -74
- data/third_party/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
- data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +5 -5
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +8 -35
- data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc +16 -16
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +40 -37
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +16 -7
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +14 -5
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +10 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +27 -16
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +13 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +4 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +15 -28
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +19 -9
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +144 -27
- data/third_party/abseil-cpp/absl/debugging/stacktrace.h +73 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +19 -9
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +25 -6
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +2 -2
- data/third_party/abseil-cpp/absl/flags/flag.h +4 -3
- data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +2 -2
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +2 -1
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +7 -6
- data/third_party/abseil-cpp/absl/flags/internal/registry.h +4 -3
- data/third_party/abseil-cpp/absl/flags/reflection.cc +2 -3
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +8 -10
- data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -9
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +110 -226
- data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +10 -12
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -5
- data/third_party/abseil-cpp/absl/hash/hash.h +18 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +1 -5
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -61
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +25 -68
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +2 -6
- data/third_party/abseil-cpp/absl/hash/internal/weakly_mixed_integer.h +38 -0
- data/third_party/abseil-cpp/absl/log/check.h +2 -1
- data/third_party/abseil-cpp/absl/log/globals.h +4 -5
- data/third_party/abseil-cpp/absl/log/internal/append_truncated.h +28 -0
- data/third_party/abseil-cpp/absl/log/internal/check_op.cc +22 -22
- data/third_party/abseil-cpp/absl/log/internal/check_op.h +65 -62
- data/third_party/abseil-cpp/absl/log/internal/conditions.cc +5 -3
- data/third_party/abseil-cpp/absl/log/internal/conditions.h +7 -2
- data/third_party/abseil-cpp/absl/log/internal/log_message.cc +85 -43
- data/third_party/abseil-cpp/absl/log/internal/log_message.h +84 -59
- data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -0
- data/third_party/abseil-cpp/absl/log/internal/proto.cc +3 -2
- data/third_party/abseil-cpp/absl/log/internal/proto.h +3 -3
- data/third_party/abseil-cpp/absl/log/internal/strip.h +4 -12
- data/third_party/abseil-cpp/absl/log/internal/vlog_config.h +8 -6
- data/third_party/abseil-cpp/absl/log/internal/voidify.h +10 -4
- data/third_party/abseil-cpp/absl/log/log.h +48 -35
- data/third_party/abseil-cpp/absl/log/log_sink_registry.h +2 -2
- data/third_party/abseil-cpp/absl/meta/type_traits.h +46 -175
- data/third_party/abseil-cpp/absl/numeric/bits.h +68 -2
- data/third_party/abseil-cpp/absl/numeric/int128.cc +0 -52
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +7 -3
- data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc +1 -1
- data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +10 -11
- data/third_party/abseil-cpp/absl/random/distributions.h +6 -8
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +5 -6
- data/third_party/abseil-cpp/absl/random/internal/{pool_urbg.cc → entropy_pool.cc} +22 -90
- data/third_party/abseil-cpp/absl/random/internal/entropy_pool.h +35 -0
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +5 -6
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +1 -1
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +20 -12
- data/third_party/abseil-cpp/absl/random/internal/seed_material.h +5 -5
- data/third_party/abseil-cpp/absl/random/random.h +88 -53
- data/third_party/abseil-cpp/absl/random/seed_sequences.cc +6 -2
- data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +3 -4
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +3 -4
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -3
- data/third_party/abseil-cpp/absl/status/status.cc +4 -8
- data/third_party/abseil-cpp/absl/status/status.h +8 -8
- data/third_party/abseil-cpp/absl/status/status_payload_printer.h +2 -2
- data/third_party/abseil-cpp/absl/status/statusor.cc +2 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +6 -6
- data/third_party/abseil-cpp/absl/strings/ascii.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/ascii.h +18 -18
- data/third_party/abseil-cpp/absl/strings/charconv.cc +21 -22
- data/third_party/abseil-cpp/absl/strings/charconv.h +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +54 -58
- data/third_party/abseil-cpp/absl/strings/cord.h +94 -83
- data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +11 -11
- data/third_party/abseil-cpp/absl/strings/cord_analysis.h +3 -3
- data/third_party/abseil-cpp/absl/strings/escaping.cc +130 -149
- data/third_party/abseil-cpp/absl/strings/escaping.h +9 -10
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +6 -8
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -4
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +0 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +7 -63
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -11
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -22
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +5 -3
- 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 +3 -3
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +0 -5
- data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +96 -1
- data/third_party/abseil-cpp/absl/strings/internal/utf8.h +15 -1
- data/third_party/abseil-cpp/absl/strings/numbers.cc +53 -32
- data/third_party/abseil-cpp/absl/strings/numbers.h +87 -58
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +6 -7
- data/third_party/abseil-cpp/absl/strings/str_cat.h +32 -32
- data/third_party/abseil-cpp/absl/strings/str_format.h +18 -18
- data/third_party/abseil-cpp/absl/strings/str_replace.cc +3 -3
- data/third_party/abseil-cpp/absl/strings/str_replace.h +6 -6
- data/third_party/abseil-cpp/absl/strings/string_view.cc +4 -9
- data/third_party/abseil-cpp/absl/strings/string_view.h +27 -32
- data/third_party/abseil-cpp/absl/strings/strip.h +4 -4
- data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -4
- data/third_party/abseil-cpp/absl/strings/substitute.h +66 -64
- data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -5
- data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +1 -1
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +97 -69
- data/third_party/abseil-cpp/absl/synchronization/notification.h +1 -1
- data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -0
- data/third_party/abseil-cpp/absl/time/duration.cc +12 -7
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +90 -111
- data/third_party/abseil-cpp/absl/time/time.h +20 -15
- data/third_party/abseil-cpp/absl/types/optional.h +7 -747
- data/third_party/abseil-cpp/absl/types/span.h +13 -11
- data/third_party/abseil-cpp/absl/types/variant.h +5 -784
- data/third_party/abseil-cpp/absl/utility/utility.h +10 -185
- metadata +72 -20
- data/src/core/lib/event_engine/forkable.cc +0 -105
- data/src/core/lib/event_engine/forkable.h +0 -67
- data/src/core/lib/iomgr/python_util.h +0 -46
- data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +0 -108
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +0 -241
- data/third_party/abseil-cpp/absl/log/log_entry.cc +0 -41
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
- data/third_party/abseil-cpp/absl/types/bad_optional_access.cc +0 -66
- data/third_party/abseil-cpp/absl/types/bad_optional_access.h +0 -78
- data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +0 -82
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +0 -82
- data/third_party/abseil-cpp/absl/types/internal/optional.h +0 -352
- data/third_party/abseil-cpp/absl/types/internal/variant.h +0 -1622
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a37331dfeb3e6d6816dae6c9ce4fb96ac360ebbd1b26e6cd106808aacf2e6a7a
|
4
|
+
data.tar.gz: cc70d4c68c87151e4e91858a8a6b5790dae8cbfc0504c0c0914b417d7276f332
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ddf0bff5a722a7c266748efc8cf61d93719de2ec889164b2b736a108b2ab35bebdbcc9e2c53be124c43644c5473d49ba1366bc5e363279dcb0ef383b22d2c1fd
|
7
|
+
data.tar.gz: 485b677863777ad8c11f606c7ee080a7cd8555771bb5d19889f89b982c1ad6097d86fd7c5861db63ba1b5bde4661519be44f38a848654645527c107eac10d2e3
|
data/Makefile
CHANGED
@@ -77,7 +77,7 @@ CC_asan = clang
|
|
77
77
|
CXX_asan = clang++
|
78
78
|
LD_asan = clang++
|
79
79
|
LDXX_asan = clang++
|
80
|
-
CPPFLAGS_asan = -O0 -fsanitize-coverage=edge,trace-pc-guard -fsanitize=address -fno-omit-frame-pointer -Wno-unused-command-line-argument
|
80
|
+
CPPFLAGS_asan = -O0 -fsanitize-coverage=edge,trace-pc-guard -fsanitize=address -fno-omit-frame-pointer -Wno-unused-command-line-argument
|
81
81
|
LDFLAGS_asan = -fsanitize=address
|
82
82
|
|
83
83
|
VALID_CONFIG_asan-noleaks = 1
|
@@ -86,7 +86,7 @@ CC_asan-noleaks = clang
|
|
86
86
|
CXX_asan-noleaks = clang++
|
87
87
|
LD_asan-noleaks = clang++
|
88
88
|
LDXX_asan-noleaks = clang++
|
89
|
-
CPPFLAGS_asan-noleaks = -O0 -fsanitize-coverage=edge,trace-pc-guard -fsanitize=address -fno-omit-frame-pointer -Wno-unused-command-line-argument
|
89
|
+
CPPFLAGS_asan-noleaks = -O0 -fsanitize-coverage=edge,trace-pc-guard -fsanitize=address -fno-omit-frame-pointer -Wno-unused-command-line-argument
|
90
90
|
LDFLAGS_asan-noleaks = fsanitize=address
|
91
91
|
|
92
92
|
VALID_CONFIG_asan-trace-cmp = 1
|
@@ -95,7 +95,7 @@ CC_asan-trace-cmp = clang
|
|
95
95
|
CXX_asan-trace-cmp = clang++
|
96
96
|
LD_asan-trace-cmp = clang++
|
97
97
|
LDXX_asan-trace-cmp = clang++
|
98
|
-
CPPFLAGS_asan-trace-cmp = -O0 -fsanitize-coverage=edge,trace-pc-guard -fsanitize-coverage=trace-cmp -fsanitize=address -fno-omit-frame-pointer -Wno-unused-command-line-argument
|
98
|
+
CPPFLAGS_asan-trace-cmp = -O0 -fsanitize-coverage=edge,trace-pc-guard -fsanitize-coverage=trace-cmp -fsanitize=address -fno-omit-frame-pointer -Wno-unused-command-line-argument
|
99
99
|
LDFLAGS_asan-trace-cmp = -fsanitize=address
|
100
100
|
|
101
101
|
VALID_CONFIG_c++-compat = 1
|
@@ -156,7 +156,7 @@ CC_msan = clang
|
|
156
156
|
CXX_msan = clang++
|
157
157
|
LD_msan = clang++
|
158
158
|
LDXX_msan = clang++
|
159
|
-
CPPFLAGS_msan = -O0 -stdlib=libc++ -fsanitize-coverage=edge,trace-pc-guard -fsanitize=memory -fsanitize-memory-track-origins -fsanitize-memory-use-after-dtor -fno-omit-frame-pointer -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-command-line-argument -fPIE -pie
|
159
|
+
CPPFLAGS_msan = -O0 -stdlib=libc++ -fsanitize-coverage=edge,trace-pc-guard -fsanitize=memory -fsanitize-memory-track-origins -fsanitize-memory-use-after-dtor -fno-omit-frame-pointer -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-command-line-argument -fPIE -pie
|
160
160
|
LDFLAGS_msan = -stdlib=libc++ -fsanitize=memory -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -fPIE -pie $(if $(JENKINS_BUILD),-Wl$(comma)-Ttext-segment=0x7e0000000000,)
|
161
161
|
DEFINES_msan = NDEBUG
|
162
162
|
|
@@ -183,7 +183,7 @@ CC_tsan = clang
|
|
183
183
|
CXX_tsan = clang++
|
184
184
|
LD_tsan = clang++
|
185
185
|
LDXX_tsan = clang++
|
186
|
-
CPPFLAGS_tsan = -O0 -fsanitize=thread -fno-omit-frame-pointer -Wno-unused-command-line-argument
|
186
|
+
CPPFLAGS_tsan = -O0 -fsanitize=thread -fno-omit-frame-pointer -Wno-unused-command-line-argument
|
187
187
|
LDFLAGS_tsan = -fsanitize=thread
|
188
188
|
DEFINES_tsan = GRPC_TSAN
|
189
189
|
|
@@ -194,7 +194,7 @@ CXX_ubsan = clang++
|
|
194
194
|
LD_ubsan = clang++
|
195
195
|
LDXX_ubsan = clang++
|
196
196
|
CPPFLAGS_ubsan = -O0 -stdlib=libc++ -fsanitize-coverage=edge,trace-pc-guard -fsanitize=undefined -fno-omit-frame-pointer -Wno-unused-command-line-argument -Wvarargs
|
197
|
-
LDFLAGS_ubsan = -stdlib=libc++ -fsanitize=undefined
|
197
|
+
LDFLAGS_ubsan = -stdlib=libc++ -fsanitize=undefined
|
198
198
|
DEFINES_ubsan = NDEBUG GRPC_UBSAN
|
199
199
|
|
200
200
|
|
@@ -367,8 +367,8 @@ E = @echo
|
|
367
367
|
Q = @
|
368
368
|
endif
|
369
369
|
|
370
|
-
CORE_VERSION =
|
371
|
-
CPP_VERSION = 1.
|
370
|
+
CORE_VERSION = 49.0.0
|
371
|
+
CPP_VERSION = 1.74.0
|
372
372
|
|
373
373
|
CPPFLAGS_NO_ARCH += $(addprefix -I, $(INCLUDES)) $(addprefix -D, $(DEFINES))
|
374
374
|
CPPFLAGS += $(CPPFLAGS_NO_ARCH) $(ARCH_FLAGS)
|
@@ -404,7 +404,7 @@ SHARED_EXT_CORE = dll
|
|
404
404
|
SHARED_EXT_CPP = dll
|
405
405
|
|
406
406
|
SHARED_PREFIX =
|
407
|
-
SHARED_VERSION_CORE = -
|
407
|
+
SHARED_VERSION_CORE = -49
|
408
408
|
SHARED_VERSION_CPP = -1
|
409
409
|
else ifeq ($(SYSTEM),Darwin)
|
410
410
|
EXECUTABLE_SUFFIX =
|
@@ -684,6 +684,7 @@ LIBGRPC_SRC = \
|
|
684
684
|
src/core/channelz/channel_trace.cc \
|
685
685
|
src/core/channelz/channelz.cc \
|
686
686
|
src/core/channelz/channelz_registry.cc \
|
687
|
+
src/core/channelz/property_list.cc \
|
687
688
|
src/core/client_channel/backup_poller.cc \
|
688
689
|
src/core/client_channel/client_channel.cc \
|
689
690
|
src/core/client_channel/client_channel_factory.cc \
|
@@ -708,6 +709,7 @@ LIBGRPC_SRC = \
|
|
708
709
|
src/core/config/config_vars_non_generated.cc \
|
709
710
|
src/core/config/core_configuration.cc \
|
710
711
|
src/core/config/load_config.cc \
|
712
|
+
src/core/credentials/call/call_creds_registry_init.cc \
|
711
713
|
src/core/credentials/call/call_creds_util.cc \
|
712
714
|
src/core/credentials/call/composite/composite_call_credentials.cc \
|
713
715
|
src/core/credentials/call/external/aws_external_account_credentials.cc \
|
@@ -721,6 +723,8 @@ LIBGRPC_SRC = \
|
|
721
723
|
src/core/credentials/call/jwt/json_token.cc \
|
722
724
|
src/core/credentials/call/jwt/jwt_credentials.cc \
|
723
725
|
src/core/credentials/call/jwt/jwt_verifier.cc \
|
726
|
+
src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc \
|
727
|
+
src/core/credentials/call/jwt_util.cc \
|
724
728
|
src/core/credentials/call/oauth2/oauth2_credentials.cc \
|
725
729
|
src/core/credentials/call/plugin/plugin_credentials.cc \
|
726
730
|
src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc \
|
@@ -803,13 +807,19 @@ LIBGRPC_SRC = \
|
|
803
807
|
src/core/ext/transport/chttp2/transport/hpack_parse_result.cc \
|
804
808
|
src/core/ext/transport/chttp2/transport/hpack_parser.cc \
|
805
809
|
src/core/ext/transport/chttp2/transport/hpack_parser_table.cc \
|
810
|
+
src/core/ext/transport/chttp2/transport/http2_client_transport.cc \
|
806
811
|
src/core/ext/transport/chttp2/transport/http2_settings.cc \
|
812
|
+
src/core/ext/transport/chttp2/transport/http2_stats_collector.cc \
|
813
|
+
src/core/ext/transport/chttp2/transport/http2_transport.cc \
|
807
814
|
src/core/ext/transport/chttp2/transport/huffsyms.cc \
|
815
|
+
src/core/ext/transport/chttp2/transport/keepalive.cc \
|
808
816
|
src/core/ext/transport/chttp2/transport/parsing.cc \
|
809
817
|
src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc \
|
810
818
|
src/core/ext/transport/chttp2/transport/ping_callbacks.cc \
|
819
|
+
src/core/ext/transport/chttp2/transport/ping_promise.cc \
|
811
820
|
src/core/ext/transport/chttp2/transport/ping_rate_policy.cc \
|
812
821
|
src/core/ext/transport/chttp2/transport/stream_lists.cc \
|
822
|
+
src/core/ext/transport/chttp2/transport/transport_common.cc \
|
813
823
|
src/core/ext/transport/chttp2/transport/varint.cc \
|
814
824
|
src/core/ext/transport/chttp2/transport/write_size_policy.cc \
|
815
825
|
src/core/ext/transport/chttp2/transport/writing.cc \
|
@@ -943,6 +953,9 @@ LIBGRPC_SRC = \
|
|
943
953
|
src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c \
|
944
954
|
src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c \
|
945
955
|
src/core/ext/upb-gen/google/rpc/status.upb_minitable.c \
|
956
|
+
src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c \
|
957
|
+
src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c \
|
958
|
+
src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c \
|
946
959
|
src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c \
|
947
960
|
src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c \
|
948
961
|
src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c \
|
@@ -1105,6 +1118,8 @@ LIBGRPC_SRC = \
|
|
1105
1118
|
src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.c \
|
1106
1119
|
src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.c \
|
1107
1120
|
src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.c \
|
1121
|
+
src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.c \
|
1122
|
+
src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.c \
|
1108
1123
|
src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c \
|
1109
1124
|
src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c \
|
1110
1125
|
src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c \
|
@@ -1171,11 +1186,12 @@ LIBGRPC_SRC = \
|
|
1171
1186
|
src/core/lib/event_engine/channel_args_endpoint_config.cc \
|
1172
1187
|
src/core/lib/event_engine/default_event_engine.cc \
|
1173
1188
|
src/core/lib/event_engine/default_event_engine_factory.cc \
|
1189
|
+
src/core/lib/event_engine/endpoint_channel_arg_wrapper.cc \
|
1174
1190
|
src/core/lib/event_engine/event_engine.cc \
|
1175
|
-
src/core/lib/event_engine/forkable.cc \
|
1176
1191
|
src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc \
|
1177
1192
|
src/core/lib/event_engine/posix_engine/ev_poll_posix.cc \
|
1178
1193
|
src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc \
|
1194
|
+
src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc \
|
1179
1195
|
src/core/lib/event_engine/posix_engine/internal_errqueue.cc \
|
1180
1196
|
src/core/lib/event_engine/posix_engine/lockfree_event.cc \
|
1181
1197
|
src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc \
|
@@ -1183,6 +1199,9 @@ LIBGRPC_SRC = \
|
|
1183
1199
|
src/core/lib/event_engine/posix_engine/posix_engine.cc \
|
1184
1200
|
src/core/lib/event_engine/posix_engine/posix_engine_listener.cc \
|
1185
1201
|
src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc \
|
1202
|
+
src/core/lib/event_engine/posix_engine/posix_interface_posix.cc \
|
1203
|
+
src/core/lib/event_engine/posix_engine/posix_interface_windows.cc \
|
1204
|
+
src/core/lib/event_engine/posix_engine/posix_write_event_sink.cc \
|
1186
1205
|
src/core/lib/event_engine/posix_engine/set_socket_dualstack.cc \
|
1187
1206
|
src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc \
|
1188
1207
|
src/core/lib/event_engine/posix_engine/timer.cc \
|
@@ -1285,8 +1304,10 @@ LIBGRPC_SRC = \
|
|
1285
1304
|
src/core/lib/iomgr/wakeup_fd_pipe.cc \
|
1286
1305
|
src/core/lib/iomgr/wakeup_fd_posix.cc \
|
1287
1306
|
src/core/lib/promise/activity.cc \
|
1307
|
+
src/core/lib/promise/mpsc.cc \
|
1288
1308
|
src/core/lib/promise/party.cc \
|
1289
1309
|
src/core/lib/promise/sleep.cc \
|
1310
|
+
src/core/lib/promise/wait_set.cc \
|
1290
1311
|
src/core/lib/resource_quota/api.cc \
|
1291
1312
|
src/core/lib/resource_quota/arena.cc \
|
1292
1313
|
src/core/lib/resource_quota/connection_quota.cc \
|
@@ -1332,6 +1353,7 @@ LIBGRPC_SRC = \
|
|
1332
1353
|
src/core/lib/transport/call_final_info.cc \
|
1333
1354
|
src/core/lib/transport/connectivity_state.cc \
|
1334
1355
|
src/core/lib/transport/error_utils.cc \
|
1356
|
+
src/core/lib/transport/promise_endpoint.cc \
|
1335
1357
|
src/core/lib/transport/status_conversion.cc \
|
1336
1358
|
src/core/lib/transport/timeout_encoding.cc \
|
1337
1359
|
src/core/lib/transport/transport.cc \
|
@@ -1395,6 +1417,7 @@ LIBGRPC_SRC = \
|
|
1395
1417
|
src/core/service_config/service_config_impl.cc \
|
1396
1418
|
src/core/service_config/service_config_parser.cc \
|
1397
1419
|
src/core/telemetry/call_tracer.cc \
|
1420
|
+
src/core/telemetry/context_list_entry.cc \
|
1398
1421
|
src/core/telemetry/default_tcp_tracer.cc \
|
1399
1422
|
src/core/telemetry/histogram_view.cc \
|
1400
1423
|
src/core/telemetry/metrics.cc \
|
@@ -1491,6 +1514,7 @@ LIBGRPC_SRC = \
|
|
1491
1514
|
src/core/util/uri.cc \
|
1492
1515
|
src/core/util/uuid_v4.cc \
|
1493
1516
|
src/core/util/validation_errors.cc \
|
1517
|
+
src/core/util/wait_for_single_owner.cc \
|
1494
1518
|
src/core/util/windows/cpu.cc \
|
1495
1519
|
src/core/util/windows/directory_reader.cc \
|
1496
1520
|
src/core/util/windows/env.cc \
|
@@ -1593,13 +1617,12 @@ LIBGRPC_SRC = \
|
|
1593
1617
|
third_party/abseil-cpp/absl/log/internal/proto.cc \
|
1594
1618
|
third_party/abseil-cpp/absl/log/internal/structured_proto.cc \
|
1595
1619
|
third_party/abseil-cpp/absl/log/internal/vlog_config.cc \
|
1596
|
-
third_party/abseil-cpp/absl/log/log_entry.cc \
|
1597
1620
|
third_party/abseil-cpp/absl/log/log_sink.cc \
|
1598
1621
|
third_party/abseil-cpp/absl/numeric/int128.cc \
|
1599
1622
|
third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc \
|
1600
1623
|
third_party/abseil-cpp/absl/random/discrete_distribution.cc \
|
1601
1624
|
third_party/abseil-cpp/absl/random/gaussian_distribution.cc \
|
1602
|
-
third_party/abseil-cpp/absl/random/internal/
|
1625
|
+
third_party/abseil-cpp/absl/random/internal/entropy_pool.cc \
|
1603
1626
|
third_party/abseil-cpp/absl/random/internal/randen.cc \
|
1604
1627
|
third_party/abseil-cpp/absl/random/internal/randen_detect.cc \
|
1605
1628
|
third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc \
|
@@ -1616,7 +1639,6 @@ LIBGRPC_SRC = \
|
|
1616
1639
|
third_party/abseil-cpp/absl/strings/charconv.cc \
|
1617
1640
|
third_party/abseil-cpp/absl/strings/cord.cc \
|
1618
1641
|
third_party/abseil-cpp/absl/strings/cord_analysis.cc \
|
1619
|
-
third_party/abseil-cpp/absl/strings/cord_buffer.cc \
|
1620
1642
|
third_party/abseil-cpp/absl/strings/escaping.cc \
|
1621
1643
|
third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc \
|
1622
1644
|
third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc \
|
@@ -1677,8 +1699,6 @@ LIBGRPC_SRC = \
|
|
1677
1699
|
third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc \
|
1678
1700
|
third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc \
|
1679
1701
|
third_party/abseil-cpp/absl/time/time.cc \
|
1680
|
-
third_party/abseil-cpp/absl/types/bad_optional_access.cc \
|
1681
|
-
third_party/abseil-cpp/absl/types/bad_variant_access.cc \
|
1682
1702
|
third_party/address_sorting/address_sorting.c \
|
1683
1703
|
third_party/address_sorting/address_sorting_posix.c \
|
1684
1704
|
third_party/address_sorting/address_sorting_windows.c \
|
@@ -1764,6 +1784,7 @@ PUBLIC_HEADERS_C += \
|
|
1764
1784
|
include/grpc/byte_buffer_reader.h \
|
1765
1785
|
include/grpc/census.h \
|
1766
1786
|
include/grpc/compression.h \
|
1787
|
+
include/grpc/create_channel_from_endpoint.h \
|
1767
1788
|
include/grpc/credentials.h \
|
1768
1789
|
include/grpc/event_engine/endpoint_config.h \
|
1769
1790
|
include/grpc/event_engine/event_engine.h \
|
@@ -1840,8 +1861,8 @@ $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGRPC_
|
|
1840
1861
|
ifeq ($(SYSTEM),Darwin)
|
1841
1862
|
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libcares.a $(OPENSSL_MERGE_LIBS) $(ZLIB_MERGE_LIBS) $(LDLIBS_SECURE) $(LDLIBS)
|
1842
1863
|
else
|
1843
|
-
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc.so.
|
1844
|
-
$(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).so.
|
1864
|
+
$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc.so.49 -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libcares.a $(OPENSSL_MERGE_LIBS) $(ZLIB_MERGE_LIBS) $(LDLIBS_SECURE) $(LDLIBS)
|
1865
|
+
$(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).so.49
|
1845
1866
|
$(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).so
|
1846
1867
|
endif
|
1847
1868
|
endif
|
@@ -0,0 +1,54 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2025 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
|
+
#ifndef GRPC_CREATE_CHANNEL_FROM_ENDPOINT_H
|
20
|
+
#define GRPC_CREATE_CHANNEL_FROM_ENDPOINT_H
|
21
|
+
|
22
|
+
#include <grpc/grpc.h>
|
23
|
+
#include <grpc/impl/grpc_types.h>
|
24
|
+
#include <grpc/support/port_platform.h>
|
25
|
+
#include <stddef.h>
|
26
|
+
|
27
|
+
#ifdef __cplusplus
|
28
|
+
#include <grpc/event_engine/event_engine.h>
|
29
|
+
|
30
|
+
#include <memory>
|
31
|
+
namespace grpc_core::experimental {
|
32
|
+
|
33
|
+
/**
|
34
|
+
* EXPERIMENTAL API - Subject to change
|
35
|
+
*
|
36
|
+
* This function creates a gRPC channel using a pre-established
|
37
|
+
* endpoint from the EventEngine. This API supports both secure and insecure
|
38
|
+
* channel credentials.
|
39
|
+
*
|
40
|
+
* \param endpoint A unique pointer to an EventEngine endpoint representing
|
41
|
+
* an established connection.
|
42
|
+
* \param creds The channel credentials used to secure the connection.
|
43
|
+
* \param args Optional channel arguments to configure the channel behavior.
|
44
|
+
*/
|
45
|
+
grpc_channel* CreateChannelFromEndpoint(
|
46
|
+
std::unique_ptr<grpc_event_engine::experimental::EventEngine::Endpoint>
|
47
|
+
endpoint,
|
48
|
+
grpc_channel_credentials* creds, const grpc_channel_args* args);
|
49
|
+
|
50
|
+
} // namespace grpc_core::experimental
|
51
|
+
|
52
|
+
#endif // __cplusplus
|
53
|
+
|
54
|
+
#endif /* GRPC_CREATE_CHANNEL_FROM_ENDPOINT_H */
|
data/include/grpc/credentials.h
CHANGED
@@ -206,21 +206,27 @@ GRPCAPI void grpc_call_credentials_release(grpc_call_credentials* creds);
|
|
206
206
|
this could result in an oauth2 token leak. The security level of the
|
207
207
|
resulting connection is GRPC_PRIVACY_AND_INTEGRITY.
|
208
208
|
|
209
|
-
If specified, the supplied call credentials
|
210
|
-
returned channel credentials object. The call_credentials
|
209
|
+
If specified, the supplied call credentials objects will be attached to the
|
210
|
+
returned channel credentials object. The call_credentials objects must remain
|
211
211
|
valid throughout the lifetime of the returned grpc_channel_credentials
|
212
|
-
object. It is expected that
|
212
|
+
object. It is expected that each call credentials object was generated
|
213
213
|
according to the Application Default Credentials mechanism and asserts the
|
214
214
|
identity of the default service account of the machine. Supplying any other
|
215
215
|
sort of call credential will result in undefined behavior, up to and
|
216
216
|
including the sudden and unexpected failure of RPCs.
|
217
217
|
|
218
218
|
If nullptr is supplied, the returned channel credentials object will use a
|
219
|
-
call credentials object based on the Application Default Credentials
|
219
|
+
default call credentials object based on the Application Default Credentials
|
220
220
|
mechanism.
|
221
|
+
|
222
|
+
The caller may choose to create the default credential with a secondary alts
|
223
|
+
credentials object to attach to the channel for ALTS connections. If an alts
|
224
|
+
credentials object is specified, it will be used if the underlying channel
|
225
|
+
type is ALTS.
|
221
226
|
*/
|
222
227
|
GRPCAPI grpc_channel_credentials* grpc_google_default_credentials_create(
|
223
|
-
grpc_call_credentials*
|
228
|
+
grpc_call_credentials* call_creds_for_tls,
|
229
|
+
grpc_call_credentials* call_creds_for_alts);
|
224
230
|
|
225
231
|
/** Server certificate config object holds the server's public certificates and
|
226
232
|
associated private keys, as well as any CA certificates needed for client
|
@@ -23,12 +23,17 @@
|
|
23
23
|
#include <grpc/support/port_platform.h>
|
24
24
|
|
25
25
|
#include <bitset>
|
26
|
+
#include <cstddef>
|
26
27
|
#include <initializer_list>
|
28
|
+
#include <memory>
|
29
|
+
#include <optional>
|
30
|
+
#include <utility>
|
27
31
|
#include <vector>
|
28
32
|
|
29
33
|
#include "absl/functional/any_invocable.h"
|
30
34
|
#include "absl/status/status.h"
|
31
35
|
#include "absl/status/statusor.h"
|
36
|
+
#include "absl/types/span.h"
|
32
37
|
|
33
38
|
// TODO(vigneshbabu): Define the Endpoint::Write metrics collection system
|
34
39
|
// TODO(hork): remove all references to the factory methods.
|
@@ -240,28 +245,40 @@ class EventEngine : public std::enable_shared_from_this<EventEngine>,
|
|
240
245
|
size_t key;
|
241
246
|
int64_t value;
|
242
247
|
};
|
248
|
+
// It is the responsibility of the caller of WriteEventCallback to make sure
|
249
|
+
// that the corresponding endpoint is still valid. HINT: Do NOT offload
|
250
|
+
// callbacks onto the EventEngine or other threads.
|
243
251
|
using WriteEventCallback = absl::AnyInvocable<void(
|
244
252
|
WriteEvent, absl::Time, std::vector<WriteMetric>) const>;
|
245
253
|
// A bitmask of the events that the caller is interested in.
|
246
254
|
// Each bit corresponds to an entry in WriteEvent.
|
247
255
|
using WriteEventSet = std::bitset<static_cast<int>(WriteEvent::kCount)>;
|
256
|
+
|
257
|
+
// A set of metrics that the caller is interested in.
|
258
|
+
class MetricsSet {
|
259
|
+
public:
|
260
|
+
virtual ~MetricsSet() = default;
|
261
|
+
|
262
|
+
virtual bool IsSet(size_t key) const = 0;
|
263
|
+
};
|
264
|
+
|
248
265
|
// A sink to receive write events.
|
249
266
|
// The requested metrics are the keys of the metrics that the caller is
|
250
267
|
// interested in. The on_event callback will be called on each event
|
251
268
|
// requested.
|
252
269
|
class WriteEventSink final {
|
253
270
|
public:
|
254
|
-
WriteEventSink(
|
271
|
+
WriteEventSink(std::shared_ptr<MetricsSet> requested_metrics,
|
255
272
|
std::initializer_list<WriteEvent> requested_events,
|
256
273
|
WriteEventCallback on_event)
|
257
|
-
: requested_metrics_(requested_metrics),
|
274
|
+
: requested_metrics_(std::move(requested_metrics)),
|
258
275
|
on_event_(std::move(on_event)) {
|
259
276
|
for (auto event : requested_events) {
|
260
277
|
requested_events_mask_.set(static_cast<int>(event));
|
261
278
|
}
|
262
279
|
}
|
263
280
|
|
264
|
-
|
281
|
+
const std::shared_ptr<MetricsSet>& requested_metrics() const {
|
265
282
|
return requested_metrics_;
|
266
283
|
}
|
267
284
|
|
@@ -273,10 +290,12 @@ class EventEngine : public std::enable_shared_from_this<EventEngine>,
|
|
273
290
|
return requested_events_mask_;
|
274
291
|
}
|
275
292
|
|
293
|
+
/// Takes the callback. Ownership is transferred. It is illegal to destroy
|
294
|
+
/// the endpoint before this callback is invoked.
|
276
295
|
WriteEventCallback TakeEventCallback() { return std::move(on_event_); }
|
277
296
|
|
278
297
|
private:
|
279
|
-
|
298
|
+
std::shared_ptr<MetricsSet> requested_metrics_;
|
280
299
|
WriteEventSet requested_events_mask_;
|
281
300
|
// The callback to be called on each event.
|
282
301
|
WriteEventCallback on_event_;
|
@@ -288,10 +307,28 @@ class EventEngine : public std::enable_shared_from_this<EventEngine>,
|
|
288
307
|
class WriteArgs final {
|
289
308
|
public:
|
290
309
|
WriteArgs() = default;
|
310
|
+
|
311
|
+
~WriteArgs();
|
312
|
+
|
291
313
|
WriteArgs(const WriteArgs&) = delete;
|
292
314
|
WriteArgs& operator=(const WriteArgs&) = delete;
|
293
|
-
|
294
|
-
WriteArgs
|
315
|
+
|
316
|
+
WriteArgs(WriteArgs&& other) noexcept
|
317
|
+
: metrics_sink_(std::move(other.metrics_sink_)),
|
318
|
+
google_specific_(other.google_specific_),
|
319
|
+
max_frame_size_(other.max_frame_size_) {
|
320
|
+
other.google_specific_ = nullptr;
|
321
|
+
}
|
322
|
+
|
323
|
+
WriteArgs& operator=(WriteArgs&& other) noexcept {
|
324
|
+
if (this != &other) {
|
325
|
+
metrics_sink_ = std::move(other.metrics_sink_);
|
326
|
+
google_specific_ = other.google_specific_;
|
327
|
+
other.google_specific_ = nullptr; // Nullify source
|
328
|
+
max_frame_size_ = other.max_frame_size_;
|
329
|
+
}
|
330
|
+
return *this;
|
331
|
+
}
|
295
332
|
|
296
333
|
// A sink to receive write events.
|
297
334
|
std::optional<WriteEventSink> TakeMetricsSink() {
|
@@ -314,6 +351,10 @@ class EventEngine : public std::enable_shared_from_this<EventEngine>,
|
|
314
351
|
return google_specific_;
|
315
352
|
}
|
316
353
|
|
354
|
+
void* TakeDeprecatedAndDiscouragedGoogleSpecificPointer() {
|
355
|
+
return std::exchange(google_specific_, nullptr);
|
356
|
+
}
|
357
|
+
|
317
358
|
void SetDeprecatedAndDiscouragedGoogleSpecificPointer(void* pointer) {
|
318
359
|
google_specific_ = pointer;
|
319
360
|
}
|
@@ -333,6 +374,31 @@ class EventEngine : public std::enable_shared_from_this<EventEngine>,
|
|
333
374
|
void* google_specific_ = nullptr;
|
334
375
|
int64_t max_frame_size_ = 1024 * 1024;
|
335
376
|
};
|
377
|
+
|
378
|
+
class TelemetryInfo {
|
379
|
+
public:
|
380
|
+
virtual ~TelemetryInfo() = default;
|
381
|
+
|
382
|
+
/// Returns the list of write metrics that the endpoint supports.
|
383
|
+
/// The keys are used to identify the metrics in the GetMetricName and
|
384
|
+
/// GetMetricKey APIs. The current value of the metric can be queried by
|
385
|
+
/// adding a WriteEventSink to the WriteArgs of a Write call.
|
386
|
+
virtual std::vector<size_t> AllWriteMetrics() const = 0;
|
387
|
+
/// Returns the name of the write metric with the given key.
|
388
|
+
/// If the key is not found, returns std::nullopt.
|
389
|
+
virtual std::optional<absl::string_view> GetMetricName(
|
390
|
+
size_t key) const = 0;
|
391
|
+
/// Returns the key of the write metric with the given name.
|
392
|
+
/// If the name is not found, returns std::nullopt.
|
393
|
+
virtual std::optional<size_t> GetMetricKey(
|
394
|
+
absl::string_view name) const = 0;
|
395
|
+
/// Returns a MetricsSet with all the keys from \a keys set.
|
396
|
+
virtual std::shared_ptr<MetricsSet> GetMetricsSet(
|
397
|
+
absl::Span<const size_t> keys) const = 0;
|
398
|
+
/// Returns a MetricsSet with all supported keys set.
|
399
|
+
virtual std::shared_ptr<MetricsSet> GetFullMetricsSet() const = 0;
|
400
|
+
};
|
401
|
+
|
336
402
|
/// Writes data out on the connection.
|
337
403
|
///
|
338
404
|
/// If the write succeeds immediately, it returns true and the
|
@@ -359,17 +425,8 @@ class EventEngine : public std::enable_shared_from_this<EventEngine>,
|
|
359
425
|
/// values are expected to remain valid for the life of the Endpoint.
|
360
426
|
virtual const ResolvedAddress& GetPeerAddress() const = 0;
|
361
427
|
virtual const ResolvedAddress& GetLocalAddress() const = 0;
|
362
|
-
|
363
|
-
|
364
|
-
/// GetMetricKey APIs. The current value of the metric can be queried by
|
365
|
-
/// adding a WriteEventSink to the WriteArgs of a Write call.
|
366
|
-
virtual std::vector<size_t> AllWriteMetrics() = 0;
|
367
|
-
/// Returns the name of the write metric with the given key.
|
368
|
-
/// If the key is not found, returns std::nullopt.
|
369
|
-
virtual std::optional<absl::string_view> GetMetricName(size_t key) = 0;
|
370
|
-
/// Returns the key of the write metric with the given name.
|
371
|
-
/// If the name is not found, returns std::nullopt.
|
372
|
-
virtual std::optional<size_t> GetMetricKey(absl::string_view name) = 0;
|
428
|
+
|
429
|
+
virtual std::shared_ptr<TelemetryInfo> GetTelemetryInfo() const = 0;
|
373
430
|
};
|
374
431
|
|
375
432
|
/// Called when a new connection is established.
|
data/include/grpc/grpc_posix.h
CHANGED
@@ -56,6 +56,25 @@ GRPCAPI void grpc_server_add_channel_from_fd(grpc_server* server, int fd,
|
|
56
56
|
|
57
57
|
#ifdef __cplusplus
|
58
58
|
}
|
59
|
-
|
59
|
+
|
60
|
+
namespace grpc_core::experimental {
|
61
|
+
|
62
|
+
/**
|
63
|
+
* EXPERIMENTAL API - Subject to change
|
64
|
+
*
|
65
|
+
* This function creates a gRPC channel using a raw file descriptor
|
66
|
+
* that represents an open socket. This API supports both secure and insecure
|
67
|
+
* channel credentials.
|
68
|
+
*
|
69
|
+
* \param fd The file descriptor representing the connection.
|
70
|
+
* \param creds The channel credentials used to secure the connection.
|
71
|
+
* \param args Optional channel arguments to configure the channel behavior.
|
72
|
+
*/
|
73
|
+
grpc_channel* CreateChannelFromFd(int fd, grpc_channel_credentials* creds,
|
74
|
+
const grpc_channel_args* args);
|
75
|
+
|
76
|
+
} // namespace grpc_core::experimental
|
77
|
+
|
78
|
+
#endif // __cplusplus
|
60
79
|
|
61
80
|
#endif /* GRPC_GRPC_POSIX_H */
|
@@ -123,10 +123,8 @@
|
|
123
123
|
/** Channel arg to override the http2 :scheme header. String valued. */
|
124
124
|
#define GRPC_ARG_HTTP2_SCHEME "grpc.http2_scheme"
|
125
125
|
/** How many pings can the client send before needing to send a data/header
|
126
|
-
frame? (0 indicates that an infinite number of pings
|
127
|
-
|
128
|
-
If experiment "max_pings_wo_data_throttle" is enabled, instead of pings being
|
129
|
-
completely blocked, they are throttled.
|
126
|
+
frame, without being throttled? (0 indicates that an infinite number of pings
|
127
|
+
can be sent without sending a data frame or header frame).
|
130
128
|
* Integer valued. Defaults to 2. */
|
131
129
|
#define GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA \
|
132
130
|
"grpc.http2.max_pings_without_data"
|
data/include/grpc/support/json.h
CHANGED
@@ -47,6 +47,30 @@ class Json {
|
|
47
47
|
kArray, // Use array() for payload.
|
48
48
|
};
|
49
49
|
|
50
|
+
template <typename Sink>
|
51
|
+
friend void AbslStringify(Sink& sink, Type type) {
|
52
|
+
switch (type) {
|
53
|
+
case Type::kNull:
|
54
|
+
sink.Append("null");
|
55
|
+
break;
|
56
|
+
case Type::kBoolean:
|
57
|
+
sink.Append("boolean");
|
58
|
+
break;
|
59
|
+
case Type::kNumber:
|
60
|
+
sink.Append("number");
|
61
|
+
break;
|
62
|
+
case Type::kString:
|
63
|
+
sink.Append("string");
|
64
|
+
break;
|
65
|
+
case Type::kObject:
|
66
|
+
sink.Append("object");
|
67
|
+
break;
|
68
|
+
case Type::kArray:
|
69
|
+
sink.Append("array");
|
70
|
+
break;
|
71
|
+
}
|
72
|
+
}
|
73
|
+
|
50
74
|
using Object = std::map<std::string, Json>;
|
51
75
|
using Array = std::vector<Json>;
|
52
76
|
|
@@ -163,11 +163,8 @@ class InterceptionChainBuilder final {
|
|
163
163
|
RefCountedPtr<CallDestination>>;
|
164
164
|
|
165
165
|
explicit InterceptionChainBuilder(ChannelArgs args,
|
166
|
-
const Blackboard*
|
167
|
-
|
168
|
-
: args_(std::move(args)),
|
169
|
-
old_blackboard_(old_blackboard),
|
170
|
-
new_blackboard_(new_blackboard) {}
|
166
|
+
const Blackboard* blackboard = nullptr)
|
167
|
+
: args_(std::move(args)), blackboard_(blackboard) {}
|
171
168
|
|
172
169
|
// Add a filter with a `Call` class as an inner member.
|
173
170
|
// Call class must be one compatible with the filters described in
|
@@ -176,8 +173,8 @@ class InterceptionChainBuilder final {
|
|
176
173
|
absl::enable_if_t<sizeof(typename T::Call) != 0, InterceptionChainBuilder&>
|
177
174
|
Add() {
|
178
175
|
if (!status_.ok()) return *this;
|
179
|
-
auto filter =
|
180
|
-
|
176
|
+
auto filter =
|
177
|
+
T::Create(args_, {FilterInstanceId(FilterTypeId<T>()), blackboard_});
|
181
178
|
if (!filter.ok()) {
|
182
179
|
status_ = filter.status();
|
183
180
|
return *this;
|
@@ -193,8 +190,8 @@ class InterceptionChainBuilder final {
|
|
193
190
|
absl::enable_if_t<std::is_base_of<Interceptor, T>::value,
|
194
191
|
InterceptionChainBuilder&>
|
195
192
|
Add() {
|
196
|
-
AddInterceptor(
|
197
|
-
|
193
|
+
AddInterceptor(
|
194
|
+
T::Create(args_, {FilterInstanceId(FilterTypeId<T>()), blackboard_}));
|
198
195
|
return *this;
|
199
196
|
};
|
200
197
|
|
@@ -273,8 +270,7 @@ class InterceptionChainBuilder final {
|
|
273
270
|
absl::Status status_;
|
274
271
|
std::map<size_t, size_t> filter_type_counts_;
|
275
272
|
static std::atomic<size_t> next_filter_id_;
|
276
|
-
const Blackboard*
|
277
|
-
Blackboard* new_blackboard_ = nullptr;
|
273
|
+
const Blackboard* blackboard_ = nullptr;
|
278
274
|
};
|
279
275
|
|
280
276
|
} // namespace grpc_core
|