grpc 1.47.0 → 1.48.0.pre1
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 +105 -47
- data/include/grpc/compression.h +1 -1
- data/include/grpc/event_engine/event_engine.h +20 -11
- data/include/grpc/event_engine/slice_buffer.h +8 -2
- data/include/grpc/grpc.h +3 -3
- data/include/grpc/impl/codegen/compression_types.h +2 -1
- data/include/grpc/impl/codegen/connectivity_state.h +2 -1
- data/include/grpc/impl/codegen/gpr_types.h +2 -1
- data/include/grpc/impl/codegen/grpc_types.h +2 -1
- data/include/grpc/impl/codegen/port_platform.h +6 -3
- data/src/core/ext/filters/census/grpc_context.cc +3 -0
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +17 -5
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +16 -0
- data/src/core/ext/filters/channel_idle/idle_filter_state.h +2 -0
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -1
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +2 -2
- data/src/core/ext/filters/client_channel/client_channel.cc +51 -65
- data/src/core/ext/filters/client_channel/client_channel.h +19 -4
- data/src/core/ext/filters/client_channel/config_selector.h +1 -1
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +6 -4
- data/src/core/ext/filters/client_channel/dynamic_filters.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +73 -43
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +0 -1
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +33 -35
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +106 -112
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +91 -42
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +177 -138
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +4 -1
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +47 -44
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +118 -103
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +83 -78
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +57 -67
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +5 -7
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +13 -17
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +3 -3
- data/src/core/ext/filters/client_channel/lb_policy.h +0 -7
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +3 -5
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +0 -1
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +3 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +6 -6
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +10 -5
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +12 -3
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +3 -4
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -0
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +24 -15
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +3 -1
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +7 -7
- data/src/core/ext/filters/client_channel/retry_filter.cc +35 -36
- data/src/core/ext/filters/client_channel/retry_filter.h +1 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +4 -4
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +2 -1
- data/src/core/ext/filters/client_channel/subchannel.cc +53 -50
- data/src/core/ext/filters/client_channel/subchannel.h +6 -22
- data/src/core/ext/filters/client_channel/subchannel_interface.h +10 -18
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +12 -97
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +5 -9
- data/src/core/ext/filters/deadline/deadline_filter.cc +12 -7
- data/src/core/ext/filters/deadline/deadline_filter.h +8 -1
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +21 -2
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +8 -3
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +7 -4
- data/src/core/ext/filters/fault_injection/service_config_parser.h +17 -3
- data/src/core/ext/filters/http/client/http_client_filter.cc +16 -5
- data/src/core/ext/filters/http/client/http_client_filter.h +8 -1
- data/src/core/ext/filters/http/client_authority_filter.cc +11 -10
- data/src/core/ext/filters/http/client_authority_filter.h +5 -2
- data/src/core/ext/filters/http/http_filters_plugin.cc +9 -1
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +64 -187
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +1 -2
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +42 -106
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +1 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +16 -9
- data/src/core/ext/filters/http/server/http_server_filter.h +6 -1
- data/src/core/ext/filters/message_size/message_size_filter.cc +25 -15
- data/src/core/ext/filters/message_size/message_size_filter.h +13 -0
- data/src/core/ext/filters/rbac/rbac_filter.cc +14 -3
- data/src/core/ext/filters/rbac/rbac_filter.h +8 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +13 -2
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +14 -2
- data/src/core/ext/filters/server_config_selector/server_config_selector.cc +1 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +9 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +22 -2
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +1 -0
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +4 -4
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +15 -15
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +196 -476
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +141 -261
- data/src/core/ext/transport/chttp2/transport/flow_control.h +176 -289
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +57 -215
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -36
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +0 -41
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +7 -12
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +7 -6
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +0 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +9 -111
- data/src/core/ext/transport/chttp2/transport/parsing.cc +51 -38
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +0 -4
- data/src/core/ext/transport/chttp2/transport/writing.cc +18 -21
- data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -1
- data/src/core/ext/transport/inproc/inproc_transport.cc +85 -81
- data/src/core/ext/transport/inproc/inproc_transport.h +3 -1
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +52 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +164 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +94 -0
- data/src/core/ext/xds/certificate_provider_factory.h +6 -1
- data/src/core/ext/xds/certificate_provider_registry.cc +8 -8
- data/src/core/ext/xds/certificate_provider_registry.h +3 -1
- data/src/core/ext/xds/certificate_provider_store.cc +2 -0
- data/src/core/ext/xds/certificate_provider_store.h +9 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +9 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +8 -0
- data/src/core/ext/xds/upb_utils.h +1 -2
- data/src/core/ext/xds/xds_api.cc +16 -18
- data/src/core/ext/xds/xds_api.h +12 -5
- data/src/core/ext/xds/xds_bootstrap.cc +37 -24
- data/src/core/ext/xds/xds_bootstrap.h +9 -11
- data/src/core/ext/xds/xds_certificate_provider.cc +12 -3
- data/src/core/ext/xds/xds_certificate_provider.h +16 -1
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +9 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.h +5 -1
- data/src/core/ext/xds/xds_client.cc +71 -22
- data/src/core/ext/xds/xds_client.h +17 -3
- data/src/core/ext/xds/xds_client_stats.cc +3 -4
- data/src/core/ext/xds/xds_client_stats.h +4 -3
- data/src/core/ext/xds/xds_cluster.cc +21 -10
- data/src/core/ext/xds/xds_cluster.h +9 -1
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +16 -7
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +1 -8
- data/src/core/ext/xds/xds_common_types.cc +36 -22
- data/src/core/ext/xds/xds_common_types.h +12 -4
- data/src/core/ext/xds/xds_endpoint.cc +25 -15
- data/src/core/ext/xds/xds_endpoint.h +13 -5
- data/src/core/ext/xds/xds_http_fault_filter.cc +7 -5
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -1
- data/src/core/ext/xds/xds_http_filters.cc +7 -0
- data/src/core/ext/xds/xds_http_filters.h +3 -3
- data/src/core/ext/xds/xds_http_rbac_filter.cc +16 -0
- data/src/core/ext/xds/xds_http_rbac_filter.h +7 -0
- data/src/core/ext/xds/xds_lb_policy_registry.cc +291 -0
- data/src/core/ext/xds/xds_lb_policy_registry.h +72 -0
- data/src/core/ext/xds/xds_listener.cc +51 -33
- data/src/core/ext/xds/xds_listener.h +10 -1
- data/src/core/ext/xds/xds_resource_type.h +3 -3
- data/src/core/ext/xds/xds_resource_type_impl.h +7 -3
- data/src/core/ext/xds/xds_route_config.cc +56 -28
- data/src/core/ext/xds/xds_route_config.h +11 -2
- data/src/core/ext/xds/xds_routing.cc +16 -0
- data/src/core/ext/xds/xds_routing.h +7 -2
- data/src/core/ext/xds/xds_server_config_fetcher.cc +54 -6
- data/src/core/lib/address_utils/parse_address.cc +5 -8
- data/src/core/lib/address_utils/parse_address.h +3 -2
- data/src/core/lib/address_utils/sockaddr_utils.cc +8 -7
- data/src/core/lib/address_utils/sockaddr_utils.h +2 -0
- data/src/core/lib/avl/avl.h +3 -3
- data/src/core/lib/backoff/backoff.cc +1 -1
- data/src/core/lib/backoff/backoff.h +1 -1
- data/src/core/lib/channel/call_tracer.h +3 -3
- data/src/core/lib/channel/channel_args.h +1 -0
- data/src/core/lib/channel/channel_args_preconditioning.cc +1 -0
- data/src/core/lib/channel/channel_fwd.h +26 -0
- data/src/core/lib/channel/channel_stack.cc +4 -4
- data/src/core/lib/channel/channel_stack.h +1 -11
- data/src/core/lib/channel/channel_stack_builder.h +2 -5
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
- data/src/core/lib/channel/channel_stack_builder_impl.h +1 -0
- data/src/core/lib/channel/channelz.cc +2 -1
- data/src/core/lib/channel/channelz.h +2 -3
- data/src/core/lib/channel/channelz_registry.cc +4 -5
- data/src/core/lib/channel/connected_channel.cc +1 -0
- data/src/core/lib/channel/connected_channel.h +1 -0
- data/src/core/lib/channel/promise_based_filter.cc +11 -5
- data/src/core/lib/channel/promise_based_filter.h +2 -0
- data/src/core/lib/compression/compression.cc +6 -1
- data/src/core/lib/compression/compression_internal.cc +3 -6
- data/src/core/lib/compression/compression_internal.h +3 -2
- data/src/core/lib/compression/message_compress.cc +3 -1
- data/src/core/lib/compression/message_compress.h +2 -3
- data/src/core/lib/debug/stats.cc +9 -9
- data/src/core/lib/debug/stats.h +2 -1
- data/src/core/lib/debug/stats_data.cc +2 -1
- data/src/core/lib/debug/stats_data.h +0 -4
- data/src/core/lib/debug/trace.h +13 -12
- data/src/core/lib/event_engine/default_event_engine_factory.cc +1 -1
- data/src/core/lib/event_engine/event_engine.cc +24 -19
- data/src/core/lib/event_engine/event_engine_factory.h +2 -2
- data/src/core/lib/event_engine/{iomgr_engine.cc → iomgr_engine/iomgr_engine.cc} +44 -91
- data/src/core/lib/event_engine/{iomgr_engine.h → iomgr_engine/iomgr_engine.h} +20 -16
- data/src/core/lib/event_engine/iomgr_engine/thread_pool.cc +123 -0
- data/src/core/lib/event_engine/iomgr_engine/thread_pool.h +70 -0
- data/src/core/lib/event_engine/iomgr_engine/time_averaged_stats.cc +62 -0
- data/src/core/lib/event_engine/iomgr_engine/time_averaged_stats.h +81 -0
- data/src/core/lib/event_engine/iomgr_engine/timer.cc +312 -0
- data/src/core/lib/event_engine/iomgr_engine/timer.h +193 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_heap.cc +107 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_heap.h +56 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_manager.cc +254 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_manager.h +111 -0
- data/src/core/lib/event_engine/promise.h +69 -0
- data/src/core/lib/gpr/time_posix.cc +6 -9
- data/src/core/lib/gpr/time_windows.cc +10 -7
- data/src/core/lib/gprpp/manual_constructor.h +0 -67
- data/src/core/lib/gprpp/status_helper.cc +44 -30
- data/src/core/lib/gprpp/time.cc +8 -0
- data/src/core/lib/gprpp/time.h +4 -0
- data/src/core/lib/http/format_request.cc +5 -4
- data/src/core/lib/http/format_request.h +1 -1
- data/src/core/lib/http/httpcli.cc +18 -12
- data/src/core/lib/http/httpcli.h +19 -3
- data/src/core/lib/http/httpcli_security_connector.cc +16 -4
- data/src/core/lib/http/httpcli_ssl_credentials.h +3 -1
- data/src/core/lib/http/parser.cc +6 -7
- data/src/core/lib/http/parser.h +3 -0
- data/src/core/lib/iomgr/call_combiner.cc +2 -2
- data/src/core/lib/iomgr/endpoint.h +1 -1
- data/src/core/lib/iomgr/endpoint_cfstream.cc +2 -2
- data/src/core/lib/iomgr/error.cc +11 -9
- data/src/core/lib/iomgr/error.h +9 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +57 -18
- data/src/core/lib/iomgr/ev_epoll1_linux.h +1 -1
- data/src/core/lib/iomgr/ev_poll_posix.cc +77 -52
- data/src/core/lib/iomgr/ev_poll_posix.h +2 -2
- data/src/core/lib/iomgr/ev_posix.cc +54 -92
- data/src/core/lib/iomgr/ev_posix.h +5 -3
- data/src/core/lib/iomgr/fork_posix.cc +1 -1
- data/src/core/lib/iomgr/iomgr.cc +7 -0
- data/src/core/lib/iomgr/iomgr_posix.cc +1 -0
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +1 -0
- data/src/core/lib/iomgr/load_file.cc +1 -1
- data/src/core/lib/iomgr/resolve_address_posix.cc +1 -1
- data/src/core/lib/iomgr/resolve_address_windows.cc +1 -1
- data/src/core/lib/iomgr/tcp_client.cc +12 -7
- data/src/core/lib/iomgr/tcp_client.h +24 -13
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +15 -9
- data/src/core/lib/iomgr/tcp_client_posix.cc +143 -25
- data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_client_windows.cc +14 -10
- data/src/core/lib/iomgr/tcp_posix.cc +91 -29
- data/src/core/lib/iomgr/tcp_server_posix.cc +7 -7
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +12 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +2 -2
- data/src/core/lib/iomgr/tcp_server_windows.cc +7 -7
- data/src/core/lib/iomgr/tcp_windows.cc +5 -5
- data/src/core/lib/iomgr/unix_sockets_posix.cc +2 -2
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -2
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +15 -12
- data/src/core/lib/iomgr/wakeup_fd_posix.h +0 -2
- data/src/core/lib/iomgr/work_serializer.h +2 -3
- data/src/core/lib/matchers/matchers.cc +6 -3
- data/src/core/lib/matchers/matchers.h +2 -0
- data/src/core/lib/promise/activity.cc +0 -1
- data/src/core/lib/promise/activity.h +7 -13
- data/src/core/lib/promise/loop.h +1 -0
- data/src/core/lib/promise/promise.h +1 -0
- data/src/core/lib/promise/sleep.cc +36 -31
- data/src/core/lib/promise/sleep.h +25 -25
- data/src/core/lib/resolver/resolver.cc +5 -0
- data/src/core/lib/resolver/resolver.h +3 -0
- data/src/core/lib/resolver/resolver_factory.h +5 -2
- data/src/core/lib/resolver/resolver_registry.cc +2 -9
- data/src/core/lib/resolver/resolver_registry.h +12 -1
- data/src/core/lib/resolver/server_address.cc +8 -0
- data/src/core/lib/resolver/server_address.h +9 -2
- data/src/core/lib/resource_quota/memory_quota.cc +18 -60
- data/src/core/lib/resource_quota/memory_quota.h +11 -25
- data/src/core/lib/security/authorization/authorization_policy_provider.h +7 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +4 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +9 -3
- data/src/core/lib/security/authorization/evaluate_args.h +6 -3
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +6 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +7 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +12 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +12 -1
- data/src/core/lib/security/authorization/matchers.cc +9 -1
- data/src/core/lib/security/authorization/matchers.h +7 -0
- data/src/core/lib/security/authorization/rbac_policy.cc +5 -0
- data/src/core/lib/security/authorization/rbac_policy.h +7 -0
- data/src/core/lib/security/context/security_context.cc +5 -2
- data/src/core/lib/security/context/security_context.h +14 -2
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +4 -2
- data/src/core/lib/security/credentials/alts/alts_credentials.h +6 -1
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +1 -3
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +1 -4
- data/src/core/lib/security/credentials/call_creds_util.cc +8 -0
- data/src/core/lib/security/credentials/call_creds_util.h +1 -0
- data/src/core/lib/security/credentials/channel_creds_registry.h +6 -1
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +10 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +16 -2
- data/src/core/lib/security/credentials/credentials.cc +4 -8
- data/src/core/lib/security/credentials/credentials.h +10 -8
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +28 -10
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +10 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +9 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +24 -9
- data/src/core/lib/security/credentials/external/external_account_credentials.h +11 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +12 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +6 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +20 -4
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +10 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +8 -6
- data/src/core/lib/security/credentials/fake/fake_credentials.h +13 -1
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +1 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +27 -10
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +10 -1
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +9 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.h +10 -0
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +4 -0
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +5 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +5 -2
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +11 -5
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +14 -0
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +28 -3
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +4 -2
- data/src/core/lib/security/credentials/local/local_credentials.cc +4 -3
- data/src/core/lib/security/credentials/local/local_credentials.h +7 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +26 -13
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +20 -0
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +8 -7
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +24 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +5 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +13 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +6 -6
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +29 -10
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +9 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +9 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +6 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -5
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +7 -2
- data/src/core/lib/security/credentials/tls/tls_credentials.h +5 -1
- data/src/core/lib/security/credentials/tls/tls_utils.cc +2 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +1 -1
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +8 -1
- data/src/core/lib/security/credentials/xds/xds_credentials.h +14 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +22 -2
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +6 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +17 -1
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +9 -0
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +17 -2
- data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +5 -3
- data/src/core/lib/security/security_connector/{load_system_roots_linux.cc → load_system_roots_supported.cc} +27 -19
- data/src/core/lib/security/security_connector/{load_system_roots_linux.h → load_system_roots_supported.h} +5 -5
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +22 -3
- data/src/core/lib/security/security_connector/local/local_security_connector.h +6 -2
- data/src/core/lib/security/security_connector/security_connector.cc +20 -18
- data/src/core/lib/security/security_connector/security_connector.h +18 -6
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +18 -6
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -2
- data/src/core/lib/security/security_connector/ssl_utils.cc +12 -2
- data/src/core/lib/security/security_connector/ssl_utils.h +10 -7
- data/src/core/lib/security/security_connector/ssl_utils_config.h +1 -1
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +21 -13
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +23 -3
- data/src/core/lib/security/transport/auth_filters.h +7 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +18 -9
- data/src/core/lib/security/transport/secure_endpoint.cc +63 -13
- data/src/core/lib/security/transport/secure_endpoint.h +4 -3
- data/src/core/lib/security/transport/security_handshaker.cc +44 -11
- data/src/core/lib/security/transport/security_handshaker.h +4 -0
- data/src/core/lib/security/transport/server_auth_filter.cc +26 -4
- data/src/core/lib/security/util/json_util.cc +3 -2
- data/src/core/lib/security/util/json_util.h +0 -2
- data/src/core/lib/service_config/service_config_call_data.h +2 -1
- data/src/core/lib/service_config/service_config_impl.cc +6 -6
- data/src/core/lib/service_config/service_config_impl.h +1 -3
- data/src/core/lib/service_config/service_config_parser.cc +2 -4
- data/src/core/lib/slice/slice_buffer.cc +30 -1
- data/src/core/lib/slice/slice_buffer.h +37 -6
- data/src/core/lib/slice/slice_string_helpers.cc +0 -20
- data/src/core/lib/slice/slice_string_helpers.h +0 -4
- data/src/core/lib/surface/call.cc +53 -115
- data/src/core/lib/surface/call.h +5 -1
- data/src/core/lib/surface/channel.h +2 -0
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +15 -14
- data/src/core/lib/surface/completion_queue.h +2 -1
- data/src/core/lib/surface/init.cc +0 -1
- data/src/core/lib/surface/lame_client.cc +1 -1
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +14 -8
- data/src/core/lib/surface/server.h +4 -1
- data/src/core/lib/surface/validate_metadata.cc +1 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/error_utils.cc +13 -7
- data/src/core/lib/transport/handshaker.cc +3 -3
- data/src/core/lib/transport/http_connect_handshaker.cc +4 -4
- data/src/core/lib/transport/tcp_connect_handshaker.cc +2 -2
- data/src/core/lib/transport/transport.cc +0 -3
- data/src/core/lib/transport/transport.h +20 -14
- data/src/core/lib/transport/transport_fwd.h +20 -0
- data/src/core/lib/transport/transport_impl.h +1 -0
- data/src/core/lib/transport/transport_op_string.cc +9 -9
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +9 -1
- data/src/core/tsi/fake_transport_security.cc +13 -1
- data/src/core/tsi/fake_transport_security.h +6 -0
- data/src/core/tsi/ssl_transport_security.cc +1 -1
- data/src/core/tsi/transport_security_grpc.cc +3 -2
- data/src/core/tsi/transport_security_grpc.h +5 -2
- data/src/ruby/ext/grpc/ext-export-truffleruby.clang +2 -0
- data/src/ruby/ext/grpc/ext-export-truffleruby.gcc +7 -0
- data/src/ruby/ext/grpc/ext-export.clang +1 -0
- data/src/ruby/ext/grpc/ext-export.gcc +1 -0
- data/src/ruby/ext/grpc/extconf.rb +49 -18
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
- data/src/ruby/lib/grpc/errors.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/generic/client_stub_spec.rb +23 -23
- data/third_party/abseil-cpp/absl/algorithm/container.h +1 -1
- data/third_party/abseil-cpp/absl/base/attributes.h +49 -22
- data/third_party/abseil-cpp/absl/base/casts.h +61 -68
- data/third_party/abseil-cpp/absl/base/config.h +182 -41
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +12 -42
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +67 -2
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +3 -3
- data/third_party/abseil-cpp/absl/base/internal/endian.h +17 -62
- data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +2 -0
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +54 -0
- data/third_party/abseil-cpp/absl/base/internal/prefetch.h +138 -0
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +29 -22
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +13 -12
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +3 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +8 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +2 -5
- data/third_party/abseil-cpp/absl/base/internal/strerror.cc +88 -0
- data/third_party/abseil-cpp/absl/base/internal/strerror.h +39 -0
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +0 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +2 -1
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +6 -7
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +12 -3
- data/third_party/abseil-cpp/absl/base/log_severity.cc +28 -0
- data/third_party/abseil-cpp/absl/base/log_severity.h +51 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +19 -11
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +2 -2
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +11 -4
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +15 -9
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +20 -9
- data/third_party/abseil-cpp/absl/container/internal/common.h +6 -5
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +10 -28
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +68 -20
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +29 -11
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +59 -38
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +4 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +515 -184
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +45 -88
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +4 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +3 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +2 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +20 -18
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +15 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +6 -1
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +46 -7
- data/third_party/abseil-cpp/absl/functional/bind_front.h +10 -1
- data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -1
- data/third_party/abseil-cpp/absl/hash/hash.h +82 -8
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +218 -23
- data/third_party/abseil-cpp/absl/numeric/bits.h +2 -1
- data/third_party/abseil-cpp/absl/numeric/int128.cc +4 -2
- data/third_party/abseil-cpp/absl/numeric/int128.h +2 -2
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +21 -6
- data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +4 -4
- data/third_party/abseil-cpp/absl/random/distributions.h +3 -3
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +3 -0
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +2 -1
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +2 -2
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +59 -48
- data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/randen.h +5 -11
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +6 -2
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +48 -23
- data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +24 -26
- data/third_party/abseil-cpp/absl/random/internal/traits.h +53 -5
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +5 -5
- data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +33 -48
- data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +9 -10
- data/third_party/abseil-cpp/absl/random/poisson_distribution.h +7 -4
- data/third_party/abseil-cpp/absl/random/seed_sequences.h +1 -0
- data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +2 -2
- data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/zipf_distribution.h +4 -3
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +17 -0
- data/third_party/abseil-cpp/absl/status/status.cc +174 -2
- data/third_party/abseil-cpp/absl/status/status.h +22 -12
- data/third_party/abseil-cpp/absl/status/statusor.h +9 -3
- data/third_party/abseil-cpp/absl/strings/ascii.h +4 -4
- data/third_party/abseil-cpp/absl/strings/cord.cc +194 -913
- data/third_party/abseil-cpp/absl/strings/cord.h +202 -81
- data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +188 -0
- data/third_party/abseil-cpp/absl/strings/cord_analysis.h +44 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.cc +30 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.h +572 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_data_edge.h +63 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +20 -32
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +123 -88
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +149 -49
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +44 -59
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +3 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +3 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +5 -4
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +7 -74
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +54 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +102 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +58 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +13 -11
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +11 -38
- data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +1 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +6 -5
- data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +38 -7
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +7 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +4 -5
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +5 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +2 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +9 -6
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +10 -2
- data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/numbers.cc +8 -8
- data/third_party/abseil-cpp/absl/strings/numbers.h +26 -23
- data/third_party/abseil-cpp/absl/strings/str_cat.h +20 -13
- data/third_party/abseil-cpp/absl/strings/str_join.h +9 -15
- data/third_party/abseil-cpp/absl/strings/str_split.h +1 -2
- data/third_party/abseil-cpp/absl/strings/string_view.cc +2 -13
- data/third_party/abseil-cpp/absl/strings/string_view.h +3 -2
- data/third_party/abseil-cpp/absl/strings/strip.h +8 -6
- data/third_party/abseil-cpp/absl/strings/substitute.h +10 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +9 -6
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +1 -6
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +0 -25
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +10 -4
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +75 -40
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +17 -9
- data/third_party/abseil-cpp/absl/synchronization/notification.h +3 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +5 -4
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +11 -7
- data/third_party/abseil-cpp/absl/time/time.h +16 -12
- data/third_party/abseil-cpp/absl/types/internal/optional.h +8 -0
- data/third_party/abseil-cpp/absl/types/internal/variant.h +3 -3
- data/third_party/abseil-cpp/absl/types/optional.h +17 -14
- data/third_party/abseil-cpp/absl/types/span.h +2 -1
- metadata +39 -15
- data/src/core/lib/slice/slice_split.cc +0 -103
- data/src/core/lib/slice/slice_split.h +0 -36
- data/src/core/lib/transport/byte_stream.cc +0 -165
- data/src/core/lib/transport/byte_stream.h +0 -170
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +0 -140
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +0 -100
- data/third_party/abseil-cpp/absl/container/internal/have_sse.h +0 -50
@@ -16,6 +16,8 @@
|
|
16
16
|
|
17
17
|
#include <ostream>
|
18
18
|
|
19
|
+
#include "absl/base/attributes.h"
|
20
|
+
|
19
21
|
namespace absl {
|
20
22
|
ABSL_NAMESPACE_BEGIN
|
21
23
|
|
@@ -23,5 +25,31 @@ std::ostream& operator<<(std::ostream& os, absl::LogSeverity s) {
|
|
23
25
|
if (s == absl::NormalizeLogSeverity(s)) return os << absl::LogSeverityName(s);
|
24
26
|
return os << "absl::LogSeverity(" << static_cast<int>(s) << ")";
|
25
27
|
}
|
28
|
+
|
29
|
+
std::ostream& operator<<(std::ostream& os, absl::LogSeverityAtLeast s) {
|
30
|
+
switch (s) {
|
31
|
+
case absl::LogSeverityAtLeast::kInfo:
|
32
|
+
case absl::LogSeverityAtLeast::kWarning:
|
33
|
+
case absl::LogSeverityAtLeast::kError:
|
34
|
+
case absl::LogSeverityAtLeast::kFatal:
|
35
|
+
return os << ">=" << static_cast<absl::LogSeverity>(s);
|
36
|
+
case absl::LogSeverityAtLeast::kInfinity:
|
37
|
+
return os << "INFINITY";
|
38
|
+
}
|
39
|
+
return os;
|
40
|
+
}
|
41
|
+
|
42
|
+
std::ostream& operator<<(std::ostream& os, absl::LogSeverityAtMost s) {
|
43
|
+
switch (s) {
|
44
|
+
case absl::LogSeverityAtMost::kInfo:
|
45
|
+
case absl::LogSeverityAtMost::kWarning:
|
46
|
+
case absl::LogSeverityAtMost::kError:
|
47
|
+
case absl::LogSeverityAtMost::kFatal:
|
48
|
+
return os << "<=" << static_cast<absl::LogSeverity>(s);
|
49
|
+
case absl::LogSeverityAtMost::kNegativeInfinity:
|
50
|
+
return os << "NEGATIVE_INFINITY";
|
51
|
+
}
|
52
|
+
return os;
|
53
|
+
}
|
26
54
|
ABSL_NAMESPACE_END
|
27
55
|
} // namespace absl
|
@@ -115,6 +115,57 @@ constexpr absl::LogSeverity NormalizeLogSeverity(int s) {
|
|
115
115
|
// unspecified; do not rely on it.
|
116
116
|
std::ostream& operator<<(std::ostream& os, absl::LogSeverity s);
|
117
117
|
|
118
|
+
// Enums representing a lower bound for LogSeverity. APIs that only operate on
|
119
|
+
// messages of at least a certain level (for example, `SetMinLogLevel()`) use
|
120
|
+
// this type to specify that level. absl::LogSeverityAtLeast::kInfinity is
|
121
|
+
// a level above all threshold levels and therefore no log message will
|
122
|
+
// ever meet this threshold.
|
123
|
+
enum class LogSeverityAtLeast : int {
|
124
|
+
kInfo = static_cast<int>(absl::LogSeverity::kInfo),
|
125
|
+
kWarning = static_cast<int>(absl::LogSeverity::kWarning),
|
126
|
+
kError = static_cast<int>(absl::LogSeverity::kError),
|
127
|
+
kFatal = static_cast<int>(absl::LogSeverity::kFatal),
|
128
|
+
kInfinity = 1000,
|
129
|
+
};
|
130
|
+
|
131
|
+
std::ostream& operator<<(std::ostream& os, absl::LogSeverityAtLeast s);
|
132
|
+
|
133
|
+
// Enums representing an upper bound for LogSeverity. APIs that only operate on
|
134
|
+
// messages of at most a certain level (for example, buffer all messages at or
|
135
|
+
// below a certain level) use this type to specify that level.
|
136
|
+
// absl::LogSeverityAtMost::kNegativeInfinity is a level below all threshold
|
137
|
+
// levels and therefore will exclude all log messages.
|
138
|
+
enum class LogSeverityAtMost : int {
|
139
|
+
kNegativeInfinity = -1000,
|
140
|
+
kInfo = static_cast<int>(absl::LogSeverity::kInfo),
|
141
|
+
kWarning = static_cast<int>(absl::LogSeverity::kWarning),
|
142
|
+
kError = static_cast<int>(absl::LogSeverity::kError),
|
143
|
+
kFatal = static_cast<int>(absl::LogSeverity::kFatal),
|
144
|
+
};
|
145
|
+
|
146
|
+
std::ostream& operator<<(std::ostream& os, absl::LogSeverityAtMost s);
|
147
|
+
|
148
|
+
#define COMPOP(op1, op2, T) \
|
149
|
+
constexpr bool operator op1(absl::T lhs, absl::LogSeverity rhs) { \
|
150
|
+
return static_cast<absl::LogSeverity>(lhs) op1 rhs; \
|
151
|
+
} \
|
152
|
+
constexpr bool operator op2(absl::LogSeverity lhs, absl::T rhs) { \
|
153
|
+
return lhs op2 static_cast<absl::LogSeverity>(rhs); \
|
154
|
+
}
|
155
|
+
|
156
|
+
// Comparisons between `LogSeverity` and `LogSeverityAtLeast`/
|
157
|
+
// `LogSeverityAtMost` are only supported in one direction.
|
158
|
+
// Valid checks are:
|
159
|
+
// LogSeverity >= LogSeverityAtLeast
|
160
|
+
// LogSeverity < LogSeverityAtLeast
|
161
|
+
// LogSeverity <= LogSeverityAtMost
|
162
|
+
// LogSeverity > LogSeverityAtMost
|
163
|
+
COMPOP(>, <, LogSeverityAtLeast)
|
164
|
+
COMPOP(<=, >=, LogSeverityAtLeast)
|
165
|
+
COMPOP(<, >, LogSeverityAtMost)
|
166
|
+
COMPOP(>=, <=, LogSeverityAtMost)
|
167
|
+
#undef COMPOP
|
168
|
+
|
118
169
|
ABSL_NAMESPACE_END
|
119
170
|
} // namespace absl
|
120
171
|
|
@@ -181,35 +181,43 @@
|
|
181
181
|
#define ABSL_PREDICT_TRUE(x) (x)
|
182
182
|
#endif
|
183
183
|
|
184
|
-
//
|
184
|
+
// ABSL_ASSUME(cond)
|
185
|
+
//
|
185
186
|
// Informs the compiler that a condition is always true and that it can assume
|
186
|
-
// it to be true for optimization purposes.
|
187
|
-
//
|
187
|
+
// it to be true for optimization purposes.
|
188
|
+
//
|
189
|
+
// WARNING: If the condition is false, the program can produce undefined and
|
190
|
+
// potentially dangerous behavior.
|
191
|
+
//
|
188
192
|
// In !NDEBUG mode, the condition is checked with an assert().
|
189
|
-
//
|
190
|
-
//
|
193
|
+
//
|
194
|
+
// NOTE: The expression must not have side effects, as it may only be evaluated
|
195
|
+
// in some compilation modes and not others. Some compilers may issue a warning
|
196
|
+
// if the compiler cannot prove the expression has no side effects. For example,
|
197
|
+
// the expression should not use a function call since the compiler cannot prove
|
198
|
+
// that a function call does not have side effects.
|
191
199
|
//
|
192
200
|
// Example:
|
193
201
|
//
|
194
202
|
// int x = ...;
|
195
|
-
//
|
203
|
+
// ABSL_ASSUME(x >= 0);
|
196
204
|
// // The compiler can optimize the division to a simple right shift using the
|
197
205
|
// // assumption specified above.
|
198
206
|
// int y = x / 16;
|
199
207
|
//
|
200
208
|
#if !defined(NDEBUG)
|
201
|
-
#define
|
209
|
+
#define ABSL_ASSUME(cond) assert(cond)
|
202
210
|
#elif ABSL_HAVE_BUILTIN(__builtin_assume)
|
203
|
-
#define
|
211
|
+
#define ABSL_ASSUME(cond) __builtin_assume(cond)
|
204
212
|
#elif defined(__GNUC__) || ABSL_HAVE_BUILTIN(__builtin_unreachable)
|
205
|
-
#define
|
213
|
+
#define ABSL_ASSUME(cond) \
|
206
214
|
do { \
|
207
215
|
if (!(cond)) __builtin_unreachable(); \
|
208
216
|
} while (0)
|
209
217
|
#elif defined(_MSC_VER)
|
210
|
-
#define
|
218
|
+
#define ABSL_ASSUME(cond) __assume(cond)
|
211
219
|
#else
|
212
|
-
#define
|
220
|
+
#define ABSL_ASSUME(cond) \
|
213
221
|
do { \
|
214
222
|
static_cast<void>(false && (cond)); \
|
215
223
|
} while (0)
|
@@ -154,8 +154,8 @@
|
|
154
154
|
|
155
155
|
// ABSL_LOCKS_EXCLUDED()
|
156
156
|
//
|
157
|
-
// Documents the locks
|
158
|
-
//
|
157
|
+
// Documents the locks that cannot be held by callers of this function, as they
|
158
|
+
// might be acquired by this function (Abseil's `Mutex` locks are
|
159
159
|
// non-reentrant).
|
160
160
|
#if ABSL_HAVE_ATTRIBUTE(locks_excluded)
|
161
161
|
#define ABSL_LOCKS_EXCLUDED(...) __attribute__((locks_excluded(__VA_ARGS__)))
|
@@ -489,12 +489,14 @@ class FixedArray {
|
|
489
489
|
Storage storage_;
|
490
490
|
};
|
491
491
|
|
492
|
+
#ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
|
492
493
|
template <typename T, size_t N, typename A>
|
493
494
|
constexpr size_t FixedArray<T, N, A>::kInlineBytesDefault;
|
494
495
|
|
495
496
|
template <typename T, size_t N, typename A>
|
496
497
|
constexpr typename FixedArray<T, N, A>::size_type
|
497
498
|
FixedArray<T, N, A>::inline_elements;
|
499
|
+
#endif
|
498
500
|
|
499
501
|
template <typename T, size_t N, typename A>
|
500
502
|
void FixedArray<T, N, A>::NonEmptyInlinedStorage::AnnotateConstruct(
|
@@ -36,6 +36,7 @@
|
|
36
36
|
#include <utility>
|
37
37
|
|
38
38
|
#include "absl/algorithm/container.h"
|
39
|
+
#include "absl/base/macros.h"
|
39
40
|
#include "absl/container/internal/container_memory.h"
|
40
41
|
#include "absl/container/internal/hash_function_defaults.h" // IWYU pragma: export
|
41
42
|
#include "absl/container/internal/raw_hash_map.h" // IWYU pragma: export
|
@@ -75,6 +76,10 @@ struct FlatHashMapPolicy;
|
|
75
76
|
// absl/hash/hash.h for information on extending Abseil hashing to user-defined
|
76
77
|
// types.
|
77
78
|
//
|
79
|
+
// Using `absl::flat_hash_map` at interface boundaries in dynamically loaded
|
80
|
+
// libraries (e.g. .dll, .so) is unsupported due to way `absl::Hash` values may
|
81
|
+
// be randomized across dynamically loaded libraries.
|
82
|
+
//
|
78
83
|
// NOTE: A `flat_hash_map` stores its value types directly inside its
|
79
84
|
// implementation array to avoid memory indirection. Because a `flat_hash_map`
|
80
85
|
// is designed to move data when rehashed, map values will not retain pointer
|
@@ -356,8 +361,8 @@ class flat_hash_map : public absl::container_internal::raw_hash_map<
|
|
356
361
|
// `flat_hash_map`.
|
357
362
|
//
|
358
363
|
// iterator try_emplace(const_iterator hint,
|
359
|
-
// const
|
360
|
-
// iterator try_emplace(const_iterator hint,
|
364
|
+
// const key_type& k, Args&&... args):
|
365
|
+
// iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args):
|
361
366
|
//
|
362
367
|
// Inserts (via copy or move) the element of the specified key into the
|
363
368
|
// `flat_hash_map` using the position of `hint` as a non-binding suggestion
|
@@ -541,10 +546,12 @@ class flat_hash_map : public absl::container_internal::raw_hash_map<
|
|
541
546
|
// erase_if(flat_hash_map<>, Pred)
|
542
547
|
//
|
543
548
|
// Erases all elements that satisfy the predicate `pred` from the container `c`.
|
549
|
+
// Returns the number of erased elements.
|
544
550
|
template <typename K, typename V, typename H, typename E, typename A,
|
545
551
|
typename Predicate>
|
546
|
-
|
547
|
-
|
552
|
+
typename flat_hash_map<K, V, H, E, A>::size_type erase_if(
|
553
|
+
flat_hash_map<K, V, H, E, A>& c, Predicate pred) {
|
554
|
+
return container_internal::EraseIf(pred, &c);
|
548
555
|
}
|
549
556
|
|
550
557
|
namespace container_internal {
|
@@ -67,11 +67,15 @@ struct FlatHashSetPolicy;
|
|
67
67
|
//
|
68
68
|
// By default, `flat_hash_set` uses the `absl::Hash` hashing framework. All
|
69
69
|
// fundamental and Abseil types that support the `absl::Hash` framework have a
|
70
|
-
// compatible equality operator for comparing insertions into `
|
70
|
+
// compatible equality operator for comparing insertions into `flat_hash_set`.
|
71
71
|
// If your type is not yet supported by the `absl::Hash` framework, see
|
72
72
|
// absl/hash/hash.h for information on extending Abseil hashing to user-defined
|
73
73
|
// types.
|
74
74
|
//
|
75
|
+
// Using `absl::flat_hash_set` at interface boundaries in dynamically loaded
|
76
|
+
// libraries (e.g. .dll, .so) is unsupported due to way `absl::Hash` values may
|
77
|
+
// be randomized across dynamically loaded libraries.
|
78
|
+
//
|
75
79
|
// NOTE: A `flat_hash_set` stores its keys directly inside its implementation
|
76
80
|
// array to avoid memory indirection. Because a `flat_hash_set` is designed to
|
77
81
|
// move data when rehashed, set keys will not retain pointer stability. If you
|
@@ -106,7 +110,7 @@ class flat_hash_set
|
|
106
110
|
public:
|
107
111
|
// Constructors and Assignment Operators
|
108
112
|
//
|
109
|
-
// A flat_hash_set supports the same overload set as `std::
|
113
|
+
// A flat_hash_set supports the same overload set as `std::unordered_set`
|
110
114
|
// for construction and assignment:
|
111
115
|
//
|
112
116
|
// * Default constructor
|
@@ -173,7 +177,7 @@ class flat_hash_set
|
|
173
177
|
// available within the `flat_hash_set`.
|
174
178
|
//
|
175
179
|
// NOTE: this member function is particular to `absl::flat_hash_set` and is
|
176
|
-
// not provided in the `std::
|
180
|
+
// not provided in the `std::unordered_set` API.
|
177
181
|
using Base::capacity;
|
178
182
|
|
179
183
|
// flat_hash_set::empty()
|
@@ -332,7 +336,7 @@ class flat_hash_set
|
|
332
336
|
// flat_hash_set::swap(flat_hash_set& other)
|
333
337
|
//
|
334
338
|
// Exchanges the contents of this `flat_hash_set` with those of the `other`
|
335
|
-
// flat hash
|
339
|
+
// flat hash set, avoiding invocation of any move, copy, or swap operations on
|
336
340
|
// individual elements.
|
337
341
|
//
|
338
342
|
// All iterators and references on the `flat_hash_set` remain valid, excepting
|
@@ -340,7 +344,7 @@ class flat_hash_set
|
|
340
344
|
//
|
341
345
|
// `swap()` requires that the flat hash set's hashing and key equivalence
|
342
346
|
// functions be Swappable, and are exchaged using unqualified calls to
|
343
|
-
// non-member `swap()`. If the
|
347
|
+
// non-member `swap()`. If the set's allocator has
|
344
348
|
// `std::allocator_traits<allocator_type>::propagate_on_container_swap::value`
|
345
349
|
// set to `true`, the allocators are also exchanged using an unqualified call
|
346
350
|
// to non-member `swap()`; otherwise, the allocators are not swapped.
|
@@ -395,14 +399,14 @@ class flat_hash_set
|
|
395
399
|
// flat_hash_set::bucket_count()
|
396
400
|
//
|
397
401
|
// Returns the number of "buckets" within the `flat_hash_set`. Note that
|
398
|
-
// because a flat hash
|
402
|
+
// because a flat hash set contains all elements within its internal storage,
|
399
403
|
// this value simply equals the current capacity of the `flat_hash_set`.
|
400
404
|
using Base::bucket_count;
|
401
405
|
|
402
406
|
// flat_hash_set::load_factor()
|
403
407
|
//
|
404
408
|
// Returns the current load factor of the `flat_hash_set` (the average number
|
405
|
-
// of slots occupied with a value within the hash
|
409
|
+
// of slots occupied with a value within the hash set).
|
406
410
|
using Base::load_factor;
|
407
411
|
|
408
412
|
// flat_hash_set::max_load_factor()
|
@@ -443,9 +447,11 @@ class flat_hash_set
|
|
443
447
|
// erase_if(flat_hash_set<>, Pred)
|
444
448
|
//
|
445
449
|
// Erases all elements that satisfy the predicate `pred` from the container `c`.
|
450
|
+
// Returns the number of erased elements.
|
446
451
|
template <typename T, typename H, typename E, typename A, typename Predicate>
|
447
|
-
|
448
|
-
|
452
|
+
typename flat_hash_set<T, H, E, A>::size_type erase_if(
|
453
|
+
flat_hash_set<T, H, E, A>& c, Predicate pred) {
|
454
|
+
return container_internal::EraseIf(pred, &c);
|
449
455
|
}
|
450
456
|
|
451
457
|
namespace container_internal {
|
@@ -36,7 +36,6 @@
|
|
36
36
|
#define ABSL_CONTAINER_INLINED_VECTOR_H_
|
37
37
|
|
38
38
|
#include <algorithm>
|
39
|
-
#include <cassert>
|
40
39
|
#include <cstddef>
|
41
40
|
#include <cstdlib>
|
42
41
|
#include <cstring>
|
@@ -152,7 +151,7 @@ class InlinedVector {
|
|
152
151
|
const allocator_type& allocator = allocator_type())
|
153
152
|
: storage_(allocator) {
|
154
153
|
storage_.Initialize(IteratorValueAdapter<A, ForwardIterator>(first),
|
155
|
-
std::distance(first, last));
|
154
|
+
static_cast<size_t>(std::distance(first, last)));
|
156
155
|
}
|
157
156
|
|
158
157
|
// Creates an inlined vector with elements constructed from the provided input
|
@@ -233,8 +232,8 @@ class InlinedVector {
|
|
233
232
|
// specified allocator is also `noexcept`.
|
234
233
|
InlinedVector(
|
235
234
|
InlinedVector&& other,
|
236
|
-
const allocator_type&
|
237
|
-
|
235
|
+
const allocator_type&
|
236
|
+
allocator) noexcept(absl::allocator_is_nothrow<allocator_type>::value)
|
238
237
|
: storage_(allocator) {
|
239
238
|
if (IsMemcpyOk<A>::value) {
|
240
239
|
storage_.MemcpyFrom(other.storage_);
|
@@ -486,8 +485,8 @@ class InlinedVector {
|
|
486
485
|
InlinedVector& operator=(InlinedVector&& other) {
|
487
486
|
if (ABSL_PREDICT_TRUE(this != std::addressof(other))) {
|
488
487
|
if (IsMemcpyOk<A>::value || other.storage_.GetIsAllocated()) {
|
489
|
-
inlined_vector_internal::
|
490
|
-
|
488
|
+
inlined_vector_internal::DestroyAdapter<A>::DestroyElements(
|
489
|
+
storage_.GetAllocator(), data(), size());
|
491
490
|
storage_.DeallocateIfAllocated();
|
492
491
|
storage_.MemcpyFrom(other.storage_);
|
493
492
|
|
@@ -523,7 +522,7 @@ class InlinedVector {
|
|
523
522
|
EnableIfAtLeastForwardIterator<ForwardIterator> = 0>
|
524
523
|
void assign(ForwardIterator first, ForwardIterator last) {
|
525
524
|
storage_.Assign(IteratorValueAdapter<A, ForwardIterator>(first),
|
526
|
-
std::distance(first, last));
|
525
|
+
static_cast<size_t>(std::distance(first, last)));
|
527
526
|
}
|
528
527
|
|
529
528
|
// Overload of `InlinedVector::assign(...)` to replace the contents of the
|
@@ -586,8 +585,20 @@ class InlinedVector {
|
|
586
585
|
|
587
586
|
if (ABSL_PREDICT_TRUE(n != 0)) {
|
588
587
|
value_type dealias = v;
|
588
|
+
// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102329#c2
|
589
|
+
// It appears that GCC thinks that since `pos` is a const pointer and may
|
590
|
+
// point to uninitialized memory at this point, a warning should be
|
591
|
+
// issued. But `pos` is actually only used to compute an array index to
|
592
|
+
// write to.
|
593
|
+
#if !defined(__clang__) && defined(__GNUC__)
|
594
|
+
#pragma GCC diagnostic push
|
595
|
+
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
|
596
|
+
#endif
|
589
597
|
return storage_.Insert(pos, CopyValueAdapter<A>(std::addressof(dealias)),
|
590
598
|
n);
|
599
|
+
#if !defined(__clang__) && defined(__GNUC__)
|
600
|
+
#pragma GCC diagnostic pop
|
601
|
+
#endif
|
591
602
|
} else {
|
592
603
|
return const_cast<iterator>(pos);
|
593
604
|
}
|
@@ -721,8 +732,8 @@ class InlinedVector {
|
|
721
732
|
// Destroys all elements in the inlined vector, setting the size to `0` and
|
722
733
|
// deallocating any held memory.
|
723
734
|
void clear() noexcept {
|
724
|
-
inlined_vector_internal::
|
725
|
-
|
735
|
+
inlined_vector_internal::DestroyAdapter<A>::DestroyElements(
|
736
|
+
storage_.GetAllocator(), data(), size());
|
726
737
|
storage_.DeallocateIfAllocated();
|
727
738
|
|
728
739
|
storage_.SetInlinedSize(0);
|
@@ -84,10 +84,11 @@ class node_handle_base {
|
|
84
84
|
PolicyTraits::transfer(alloc(), slot(), s);
|
85
85
|
}
|
86
86
|
|
87
|
-
struct
|
88
|
-
|
87
|
+
struct construct_tag_t {};
|
88
|
+
template <typename... Args>
|
89
|
+
node_handle_base(construct_tag_t, const allocator_type& a, Args&&... args)
|
89
90
|
: alloc_(a) {
|
90
|
-
PolicyTraits::construct(alloc(), slot(),
|
91
|
+
PolicyTraits::construct(alloc(), slot(), std::forward<Args>(args)...);
|
91
92
|
}
|
92
93
|
|
93
94
|
void destroy() {
|
@@ -186,8 +187,8 @@ struct CommonAccess {
|
|
186
187
|
}
|
187
188
|
|
188
189
|
template <typename T, typename... Args>
|
189
|
-
static T
|
190
|
-
return T(typename T::
|
190
|
+
static T Construct(Args&&... args) {
|
191
|
+
return T(typename T::construct_tag_t{}, std::forward<Args>(args)...);
|
191
192
|
}
|
192
193
|
};
|
193
194
|
|
@@ -174,7 +174,7 @@ decltype(std::declval<F>()(std::declval<T>())) WithConstructed(
|
|
174
174
|
//
|
175
175
|
// 2. auto a = PairArgs(args...);
|
176
176
|
// std::pair<F, S> p(std::piecewise_construct,
|
177
|
-
// std::move(
|
177
|
+
// std::move(a.first), std::move(a.second));
|
178
178
|
inline std::pair<std::tuple<>, std::tuple<>> PairArgs() { return {}; }
|
179
179
|
template <class F, class S>
|
180
180
|
std::pair<std::tuple<F&&>, std::tuple<S&&>> PairArgs(F&& f, S&& s) {
|
@@ -402,6 +402,15 @@ struct map_slot_policy {
|
|
402
402
|
}
|
403
403
|
}
|
404
404
|
|
405
|
+
// Construct this slot by copying from another slot.
|
406
|
+
template <class Allocator>
|
407
|
+
static void construct(Allocator* alloc, slot_type* slot,
|
408
|
+
const slot_type* other) {
|
409
|
+
emplace(slot);
|
410
|
+
absl::allocator_traits<Allocator>::construct(*alloc, &slot->value,
|
411
|
+
other->value);
|
412
|
+
}
|
413
|
+
|
405
414
|
template <class Allocator>
|
406
415
|
static void destroy(Allocator* alloc, slot_type* slot) {
|
407
416
|
if (kMutableKeys::value) {
|
@@ -424,33 +433,6 @@ struct map_slot_policy {
|
|
424
433
|
}
|
425
434
|
destroy(alloc, old_slot);
|
426
435
|
}
|
427
|
-
|
428
|
-
template <class Allocator>
|
429
|
-
static void swap(Allocator* alloc, slot_type* a, slot_type* b) {
|
430
|
-
if (kMutableKeys::value) {
|
431
|
-
using std::swap;
|
432
|
-
swap(a->mutable_value, b->mutable_value);
|
433
|
-
} else {
|
434
|
-
value_type tmp = std::move(a->value);
|
435
|
-
absl::allocator_traits<Allocator>::destroy(*alloc, &a->value);
|
436
|
-
absl::allocator_traits<Allocator>::construct(*alloc, &a->value,
|
437
|
-
std::move(b->value));
|
438
|
-
absl::allocator_traits<Allocator>::destroy(*alloc, &b->value);
|
439
|
-
absl::allocator_traits<Allocator>::construct(*alloc, &b->value,
|
440
|
-
std::move(tmp));
|
441
|
-
}
|
442
|
-
}
|
443
|
-
|
444
|
-
template <class Allocator>
|
445
|
-
static void move(Allocator* alloc, slot_type* src, slot_type* dest) {
|
446
|
-
if (kMutableKeys::value) {
|
447
|
-
dest->mutable_value = std::move(src->mutable_value);
|
448
|
-
} else {
|
449
|
-
absl::allocator_traits<Allocator>::destroy(*alloc, &dest->value);
|
450
|
-
absl::allocator_traits<Allocator>::construct(*alloc, &dest->value,
|
451
|
-
std::move(src->value));
|
452
|
-
}
|
453
|
-
}
|
454
436
|
};
|
455
437
|
|
456
438
|
} // namespace container_internal
|