grpc 1.43.1 → 1.44.0.pre2
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 +84 -64
- data/include/grpc/grpc_security.h +10 -0
- data/include/grpc/impl/codegen/compression_types.h +0 -2
- data/include/grpc/impl/codegen/grpc_types.h +6 -0
- data/src/core/ext/filters/client_channel/backend_metric.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel.cc +62 -68
- data/src/core/ext/filters/client_channel/client_channel.h +8 -8
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
- data/src/core/ext/filters/client_channel/config_selector.h +4 -4
- data/src/core/ext/filters/client_channel/dynamic_filters.h +1 -1
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +16 -14
- data/src/core/ext/filters/client_channel/health/health_check_client.h +3 -3
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +4 -3
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +6 -5
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +3 -7
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +31 -32
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -7
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +43 -29
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +6 -2
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +120 -68
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +60 -48
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +62 -61
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +16 -11
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +11 -5
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +19 -15
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +3 -2
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +50 -105
- data/src/core/ext/filters/client_channel/lb_policy.cc +15 -14
- data/src/core/ext/filters/client_channel/lb_policy.h +19 -3
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +207 -81
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +22 -12
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +19 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +23 -38
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +118 -207
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +25 -32
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +82 -73
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +10 -10
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +2 -1
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +2 -5
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +157 -67
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +2 -2
- data/src/core/ext/filters/client_channel/retry_filter.cc +37 -64
- data/src/core/ext/filters/client_channel/retry_service_config.cc +1 -1
- data/src/core/ext/filters/client_channel/retry_service_config.h +1 -1
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +1 -1
- data/src/core/ext/filters/client_channel/subchannel.cc +12 -16
- data/src/core/ext/filters/client_channel/subchannel.h +2 -3
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +37 -48
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +6 -8
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +51 -122
- data/src/core/ext/filters/http/client_authority_filter.cc +8 -24
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +42 -140
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +5 -25
- data/src/core/ext/filters/http/server/http_server_filter.cc +50 -135
- data/src/core/ext/filters/message_size/message_size_filter.cc +1 -1
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/rbac/rbac_filter.cc +157 -0
- data/src/core/ext/filters/rbac/rbac_filter.h +74 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +605 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +70 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +3 -2
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +11 -6
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +1 -1
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +1 -1
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +89 -29
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +45 -186
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +341 -279
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +69 -159
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +2 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +19 -32
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +0 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +94 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +2 -24
- data/src/core/ext/transport/chttp2/transport/internal.h +0 -33
- data/src/core/ext/transport/chttp2/transport/parsing.cc +0 -6
- data/src/core/ext/transport/chttp2/transport/writing.cc +47 -116
- data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -4
- data/src/core/ext/transport/inproc/inproc_transport.cc +11 -63
- data/src/core/ext/transport/inproc/inproc_transport.h +0 -3
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +61 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +146 -0
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +188 -0
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +154 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +95 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/eval.upbdefs.c +58 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/eval.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/explain.upbdefs.c +44 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/explain.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +153 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +100 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/value.upbdefs.c +75 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/value.upbdefs.h +55 -0
- data/src/core/ext/xds/upb_utils.h +65 -0
- data/src/core/ext/xds/xds_api.cc +81 -3458
- data/src/core/ext/xds/xds_api.h +56 -611
- data/src/core/ext/xds/xds_bootstrap.cc +189 -125
- data/src/core/ext/xds/xds_bootstrap.h +20 -15
- data/src/core/ext/xds/xds_certificate_provider.h +1 -0
- data/src/core/ext/xds/xds_channel_creds.cc +108 -0
- data/src/core/ext/xds/xds_channel_creds.h +50 -0
- data/src/core/ext/xds/xds_client.cc +584 -994
- data/src/core/ext/xds/xds_client.h +78 -135
- data/src/core/ext/xds/xds_cluster.cc +451 -0
- data/src/core/ext/xds/xds_cluster.h +111 -0
- data/src/core/ext/xds/xds_common_types.cc +388 -0
- data/src/core/ext/xds/xds_common_types.h +110 -0
- data/src/core/ext/xds/xds_endpoint.cc +364 -0
- data/src/core/ext/xds/xds_endpoint.h +135 -0
- data/src/core/ext/xds/xds_http_filters.cc +5 -0
- data/src/core/ext/xds/xds_http_rbac_filter.cc +563 -0
- data/src/core/ext/xds/xds_http_rbac_filter.h +54 -0
- data/src/core/ext/xds/xds_listener.cc +1036 -0
- data/src/core/ext/xds/xds_listener.h +220 -0
- data/src/core/ext/{transport/chttp2/transport/hpack_utils.h → xds/xds_resource_type.cc} +12 -9
- data/src/core/ext/xds/xds_resource_type.h +98 -0
- data/src/core/ext/xds/xds_resource_type_impl.h +87 -0
- data/src/core/ext/xds/xds_route_config.cc +993 -0
- data/src/core/ext/xds/xds_route_config.h +215 -0
- data/src/core/ext/xds/xds_routing.cc +11 -8
- data/src/core/ext/xds/xds_routing.h +8 -5
- data/src/core/ext/xds/xds_server_config_fetcher.cc +159 -99
- data/src/core/lib/address_utils/parse_address.cc +20 -0
- data/src/core/lib/address_utils/parse_address.h +5 -0
- data/src/core/lib/address_utils/sockaddr_utils.cc +33 -36
- data/src/core/lib/address_utils/sockaddr_utils.h +1 -16
- data/src/core/lib/backoff/backoff.cc +4 -30
- data/src/core/lib/backoff/backoff.h +3 -3
- data/src/core/lib/channel/channel_args.cc +0 -1
- data/src/core/lib/channel/channel_stack.cc +8 -0
- data/src/core/lib/channel/channel_stack.h +1 -1
- data/src/core/lib/channel/channel_stack_builder.cc +5 -9
- data/src/core/lib/channel/channel_stack_builder.h +4 -7
- data/src/core/lib/channel/channelz.cc +1 -0
- data/src/core/lib/compression/compression.cc +19 -111
- data/src/core/lib/compression/compression_internal.cc +142 -202
- data/src/core/lib/compression/compression_internal.h +64 -69
- data/src/core/lib/compression/message_compress.cc +11 -11
- data/src/core/lib/compression/message_compress.h +2 -2
- data/src/core/lib/gpr/useful.h +4 -0
- data/src/core/lib/gprpp/bitset.h +7 -0
- data/src/core/lib/gprpp/chunked_vector.h +45 -3
- data/src/core/lib/gprpp/status_helper.cc +20 -28
- data/src/core/lib/gprpp/status_helper.h +6 -19
- data/src/core/lib/gprpp/table.h +11 -0
- data/src/core/lib/http/httpcli.cc +37 -46
- data/src/core/lib/http/httpcli.h +3 -15
- data/src/core/lib/iomgr/call_combiner.cc +15 -4
- data/src/core/lib/iomgr/closure.h +29 -9
- data/src/core/lib/iomgr/combiner.cc +25 -3
- data/src/core/lib/iomgr/error.cc +2 -0
- data/src/core/lib/iomgr/error.h +3 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +3 -2
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +6 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +2 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +66 -48
- data/src/core/lib/iomgr/event_engine/resolver.h +56 -0
- data/src/core/lib/iomgr/exec_ctx.cc +22 -9
- data/src/core/lib/iomgr/executor.cc +10 -1
- data/src/core/lib/iomgr/fork_posix.cc +3 -2
- data/src/core/lib/iomgr/iomgr_custom.cc +4 -1
- data/src/core/lib/iomgr/iomgr_posix.cc +2 -2
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
- data/src/core/lib/iomgr/iomgr_windows.cc +2 -2
- data/src/core/lib/iomgr/port.h +2 -2
- data/src/core/lib/iomgr/resolve_address.cc +5 -24
- data/src/core/lib/iomgr/resolve_address.h +47 -44
- data/src/core/lib/iomgr/resolve_address_custom.cc +131 -109
- data/src/core/lib/iomgr/resolve_address_custom.h +101 -19
- data/src/core/lib/iomgr/resolve_address_impl.h +59 -0
- data/src/core/lib/iomgr/resolve_address_posix.cc +82 -66
- data/src/core/lib/iomgr/resolve_address_posix.h +47 -0
- data/src/core/lib/iomgr/resolve_address_windows.cc +93 -74
- data/src/core/lib/iomgr/resolve_address_windows.h +47 -0
- data/src/core/lib/iomgr/resolved_address.h +39 -0
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -0
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +1 -0
- data/src/core/lib/iomgr/unix_sockets_posix.cc +22 -34
- data/src/core/lib/iomgr/unix_sockets_posix.h +4 -7
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +6 -15
- data/src/core/lib/matchers/matchers.cc +1 -1
- data/src/core/lib/promise/activity.h +49 -20
- data/src/core/lib/promise/detail/status.h +5 -0
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.cc +17 -25
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.h +43 -44
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver_factory.h +10 -5
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver_registry.cc +3 -2
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver_registry.h +4 -5
- data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.cc +1 -1
- data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.h +4 -4
- data/src/core/lib/resource_quota/api.h +0 -1
- data/src/core/lib/{gprpp → resource_quota}/arena.cc +16 -13
- data/src/core/lib/{gprpp → resource_quota}/arena.h +24 -13
- data/src/core/lib/security/authorization/evaluate_args.cc +30 -15
- data/src/core/lib/security/authorization/evaluate_args.h +1 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +60 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +62 -0
- data/src/core/lib/security/authorization/matchers.cc +227 -0
- data/src/core/lib/security/authorization/matchers.h +211 -0
- data/src/core/lib/security/authorization/rbac_policy.cc +442 -0
- data/src/core/lib/security/authorization/rbac_policy.h +170 -0
- data/src/core/lib/security/context/security_context.cc +4 -2
- data/src/core/lib/security/context/security_context.h +1 -1
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +5 -5
- data/src/core/lib/security/credentials/composite/composite_credentials.h +4 -3
- data/src/core/lib/security/credentials/credentials.h +10 -20
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +6 -9
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +7 -9
- data/src/core/lib/security/credentials/external/external_account_credentials.h +2 -7
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +2 -3
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +5 -4
- data/src/core/lib/security/credentials/fake/fake_credentials.h +8 -7
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +2 -5
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +16 -19
- data/src/core/lib/security/credentials/iam/iam_credentials.h +6 -5
- data/src/core/lib/security/credentials/jwt/json_token.cc +4 -6
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +16 -28
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +8 -8
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +6 -13
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +44 -57
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +13 -15
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -7
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +5 -4
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +1 -10
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +6 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +7 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.h +1 -1
- data/src/core/lib/security/security_connector/security_connector.cc +0 -4
- data/src/core/lib/security/security_connector/security_connector.h +5 -1
- data/src/core/lib/security/security_connector/ssl_utils.cc +14 -24
- data/src/core/lib/security/security_connector/ssl_utils.h +5 -14
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +2 -3
- data/src/core/lib/security/transport/auth_filters.h +7 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +53 -33
- data/src/core/lib/security/transport/server_auth_filter.cc +40 -35
- data/src/core/{ext → lib}/service_config/service_config.cc +2 -2
- data/src/core/{ext → lib}/service_config/service_config.h +4 -4
- data/src/core/{ext → lib}/service_config/service_config_call_data.h +5 -5
- data/src/core/{ext → lib}/service_config/service_config_parser.cc +1 -1
- data/src/core/{ext → lib}/service_config/service_config_parser.h +3 -3
- data/src/core/lib/slice/slice.cc +3 -1
- data/src/core/lib/slice/slice.h +43 -13
- data/src/core/lib/slice/slice_intern.cc +3 -101
- data/src/core/lib/slice/slice_internal.h +1 -2
- data/src/core/lib/slice/slice_refcount.h +4 -13
- data/src/core/lib/slice/slice_refcount_base.h +0 -16
- data/src/core/lib/surface/call.cc +140 -382
- data/src/core/lib/surface/call.h +4 -4
- data/src/core/lib/surface/channel.cc +42 -44
- data/src/core/lib/surface/channel.h +4 -4
- data/src/core/lib/surface/init.cc +0 -2
- data/src/core/lib/surface/lame_client.cc +0 -1
- data/src/core/lib/surface/server.cc +12 -29
- data/src/core/lib/surface/server.h +2 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/error_utils.h +14 -0
- data/src/core/lib/transport/metadata_batch.h +799 -717
- data/src/core/lib/transport/parsed_metadata.cc +2 -0
- data/src/core/lib/transport/parsed_metadata.h +95 -92
- data/src/core/lib/transport/timeout_encoding.cc +200 -66
- data/src/core/lib/transport/timeout_encoding.h +40 -10
- data/src/core/lib/transport/transport.h +1 -1
- data/src/core/lib/transport/transport_op_string.cc +6 -39
- data/src/core/lib/uri/uri_parser.cc +223 -53
- data/src/core/lib/uri/uri_parser.h +36 -23
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -3
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
- data/src/core/tsi/ssl/session_cache/ssl_session.h +2 -4
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +3 -5
- data/src/core/tsi/ssl_transport_security.cc +53 -13
- data/src/core/tsi/ssl_transport_security.h +18 -6
- data/src/ruby/ext/grpc/extconf.rb +10 -3
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +2 -1
- data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +48 -0
- data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +200 -0
- data/third_party/abseil-cpp/absl/random/beta_distribution.h +427 -0
- data/third_party/abseil-cpp/absl/random/discrete_distribution.cc +98 -0
- data/third_party/abseil-cpp/absl/random/discrete_distribution.h +247 -0
- data/third_party/abseil-cpp/absl/random/distributions.h +452 -0
- data/third_party/abseil-cpp/absl/random/exponential_distribution.h +165 -0
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.cc +104 -0
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +275 -0
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +92 -0
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +268 -0
- data/third_party/abseil-cpp/absl/random/internal/fastmath.h +57 -0
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +144 -0
- data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +245 -0
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +150 -0
- data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +308 -0
- data/third_party/abseil-cpp/absl/random/internal/platform.h +171 -0
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +253 -0
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +131 -0
- data/third_party/abseil-cpp/absl/random/internal/randen.cc +91 -0
- data/third_party/abseil-cpp/absl/random/internal/randen.h +102 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +221 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.h +33 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +239 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +526 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h +50 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc +462 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_slow.cc +471 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_slow.h +40 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_traits.h +88 -0
- data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +167 -0
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +267 -0
- data/third_party/abseil-cpp/absl/random/internal/seed_material.h +104 -0
- data/third_party/abseil-cpp/absl/random/internal/traits.h +101 -0
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +244 -0
- data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +111 -0
- data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +257 -0
- data/third_party/abseil-cpp/absl/random/poisson_distribution.h +258 -0
- data/third_party/abseil-cpp/absl/random/random.h +189 -0
- data/third_party/abseil-cpp/absl/random/seed_gen_exception.cc +46 -0
- data/third_party/abseil-cpp/absl/random/seed_gen_exception.h +55 -0
- data/third_party/abseil-cpp/absl/random/seed_sequences.cc +29 -0
- data/third_party/abseil-cpp/absl/random/seed_sequences.h +110 -0
- data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +275 -0
- data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +202 -0
- data/third_party/abseil-cpp/absl/random/zipf_distribution.h +271 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +13 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +21 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +12 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +29 -0
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +8 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +13 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +10 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +9 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +6 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +23 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +4 -0
- data/third_party/xxhash/xxhash.h +607 -352
- metadata +149 -77
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +0 -107
- data/src/core/ext/transport/chttp2/transport/hpack_utils.cc +0 -46
- data/src/core/ext/transport/chttp2/transport/popularity_count.h +0 -60
- data/src/core/lib/compression/algorithm_metadata.h +0 -62
- data/src/core/lib/compression/compression_args.cc +0 -140
- data/src/core/lib/compression/compression_args.h +0 -58
- data/src/core/lib/compression/stream_compression.cc +0 -81
- data/src/core/lib/compression/stream_compression.h +0 -117
- data/src/core/lib/compression/stream_compression_gzip.cc +0 -231
- data/src/core/lib/compression/stream_compression_gzip.h +0 -28
- data/src/core/lib/compression/stream_compression_identity.cc +0 -91
- data/src/core/lib/compression/stream_compression_identity.h +0 -29
- data/src/core/lib/security/credentials/credentials_metadata.cc +0 -61
- data/src/core/lib/slice/static_slice.cc +0 -377
- data/src/core/lib/slice/static_slice.h +0 -300
- data/src/core/lib/transport/metadata.cc +0 -714
- data/src/core/lib/transport/metadata.h +0 -449
- data/src/core/lib/transport/metadata_batch.cc +0 -99
- data/src/core/lib/transport/static_metadata.cc +0 -1032
- data/src/core/lib/transport/static_metadata.h +0 -322
- data/src/core/lib/transport/status_metadata.cc +0 -63
- data/src/core/lib/transport/status_metadata.h +0 -48
data/src/core/lib/slice/slice.h
CHANGED
@@ -17,10 +17,13 @@
|
|
17
17
|
|
18
18
|
#include <grpc/support/port_platform.h>
|
19
19
|
|
20
|
+
#include <cstdint>
|
21
|
+
|
20
22
|
#include "absl/strings/string_view.h"
|
21
23
|
|
22
24
|
#include <grpc/slice.h>
|
23
25
|
|
26
|
+
#include "src/core/lib/gpr/string.h"
|
24
27
|
#include "src/core/lib/slice/slice_internal.h"
|
25
28
|
|
26
29
|
// Herein lies grpc_core::Slice and its team of thin wrappers around grpc_slice.
|
@@ -110,6 +113,8 @@ class BaseSlice {
|
|
110
113
|
|
111
114
|
uint8_t* mutable_data() { return GRPC_SLICE_START_PTR(slice_); }
|
112
115
|
|
116
|
+
grpc_slice* c_slice_ptr() { return &slice_; }
|
117
|
+
|
113
118
|
private:
|
114
119
|
grpc_slice slice_;
|
115
120
|
};
|
@@ -159,6 +164,9 @@ struct CopyConstructors {
|
|
159
164
|
static Out FromCopiedString(const char* s) {
|
160
165
|
return Out(grpc_slice_from_copied_string(s));
|
161
166
|
}
|
167
|
+
static Out FromCopiedString(absl::string_view s) {
|
168
|
+
return FromCopiedBuffer(s.data(), s.size());
|
169
|
+
}
|
162
170
|
static Out FromCopiedString(std::string s) {
|
163
171
|
return Out(grpc_slice_from_cpp_string(std::move(s)));
|
164
172
|
}
|
@@ -171,30 +179,39 @@ struct CopyConstructors {
|
|
171
179
|
return FromCopiedBuffer(reinterpret_cast<const char*>(buffer.data()),
|
172
180
|
buffer.size());
|
173
181
|
}
|
182
|
+
|
183
|
+
static Out FromInt64(int64_t i) {
|
184
|
+
char buffer[GPR_LTOA_MIN_BUFSIZE];
|
185
|
+
gpr_ltoa(i, buffer);
|
186
|
+
return FromCopiedString(buffer);
|
187
|
+
}
|
188
|
+
};
|
189
|
+
|
190
|
+
template <typename Out>
|
191
|
+
struct StaticConstructors {
|
192
|
+
static Out FromStaticString(const char* s) {
|
193
|
+
return Out(grpc_slice_from_static_string(s));
|
194
|
+
}
|
195
|
+
|
196
|
+
static Out FromStaticString(absl::string_view s) {
|
197
|
+
return Out(ExternallyManagedSlice(s.data(), s.size()));
|
198
|
+
}
|
174
199
|
};
|
175
200
|
|
176
201
|
} // namespace slice_detail
|
177
202
|
|
178
|
-
class StaticSlice : public slice_detail::BaseSlice
|
203
|
+
class StaticSlice : public slice_detail::BaseSlice,
|
204
|
+
public slice_detail::StaticConstructors<StaticSlice> {
|
179
205
|
public:
|
180
206
|
StaticSlice() = default;
|
181
207
|
explicit StaticSlice(const grpc_slice& slice)
|
182
208
|
: slice_detail::BaseSlice(slice) {
|
183
|
-
GPR_DEBUG_ASSERT(
|
184
|
-
|
185
|
-
slice.refcount->GetType() == grpc_slice_refcount::Type::NOP);
|
209
|
+
GPR_DEBUG_ASSERT(slice.refcount->GetType() ==
|
210
|
+
grpc_slice_refcount::Type::NOP);
|
186
211
|
}
|
187
212
|
explicit StaticSlice(const StaticMetadataSlice& slice)
|
188
213
|
: slice_detail::BaseSlice(slice) {}
|
189
214
|
|
190
|
-
static StaticSlice FromStaticString(const char* s) {
|
191
|
-
return StaticSlice(grpc_slice_from_static_string(s));
|
192
|
-
}
|
193
|
-
|
194
|
-
static StaticSlice FromStaticString(absl::string_view s) {
|
195
|
-
return StaticSlice(ExternallyManagedSlice(s.data(), s.size()));
|
196
|
-
}
|
197
|
-
|
198
215
|
StaticSlice(const StaticSlice& other)
|
199
216
|
: slice_detail::BaseSlice(other.c_slice()) {}
|
200
217
|
StaticSlice& operator=(const StaticSlice& other) {
|
@@ -242,13 +259,15 @@ class MutableSlice : public slice_detail::BaseSlice,
|
|
242
259
|
// Iterator access to the underlying bytes
|
243
260
|
uint8_t* begin() { return mutable_data(); }
|
244
261
|
uint8_t* end() { return mutable_data() + size(); }
|
262
|
+
uint8_t* data() { return mutable_data(); }
|
245
263
|
|
246
264
|
// Array access
|
247
265
|
uint8_t& operator[](size_t i) { return mutable_data()[i]; }
|
248
266
|
};
|
249
267
|
|
250
268
|
class Slice : public slice_detail::BaseSlice,
|
251
|
-
public slice_detail::CopyConstructors<Slice
|
269
|
+
public slice_detail::CopyConstructors<Slice>,
|
270
|
+
public slice_detail::StaticConstructors<Slice> {
|
252
271
|
public:
|
253
272
|
Slice() = default;
|
254
273
|
~Slice() { grpc_slice_unref_internal(c_slice()); }
|
@@ -321,6 +340,17 @@ class Slice : public slice_detail::BaseSlice,
|
|
321
340
|
return Slice(grpc_slice_sub_no_ref(TakeCSlice(), pos, pos + n));
|
322
341
|
}
|
323
342
|
|
343
|
+
// Return a sub slice of this one. Adds a reference to the underlying slice.
|
344
|
+
Slice RefSubSlice(size_t pos, size_t n) const {
|
345
|
+
return Slice(grpc_slice_sub(c_slice(), pos, pos + n));
|
346
|
+
}
|
347
|
+
|
348
|
+
// Split this slice, returning a new slice containing (split:end] and
|
349
|
+
// leaving this slice with [begin:split).
|
350
|
+
Slice Split(size_t split) {
|
351
|
+
return Slice(grpc_slice_split_tail(c_slice_ptr(), split));
|
352
|
+
}
|
353
|
+
|
324
354
|
Slice Ref() const { return Slice(grpc_slice_ref_internal(c_slice())); }
|
325
355
|
|
326
356
|
Slice Copy() const { return Slice(grpc_slice_copy(c_slice())); }
|
@@ -31,7 +31,6 @@
|
|
31
31
|
#include "src/core/lib/slice/slice_internal.h"
|
32
32
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
33
33
|
#include "src/core/lib/slice/slice_utils.h"
|
34
|
-
#include "src/core/lib/transport/static_metadata.h"
|
35
34
|
|
36
35
|
#define LOG2_SHARD_COUNT 5
|
37
36
|
#define SHARD_COUNT (1 << LOG2_SHARD_COUNT)
|
@@ -51,15 +50,6 @@ typedef struct slice_shard {
|
|
51
50
|
|
52
51
|
static slice_shard* g_shards;
|
53
52
|
|
54
|
-
struct static_metadata_hash_ent {
|
55
|
-
uint32_t hash;
|
56
|
-
uint32_t idx;
|
57
|
-
};
|
58
|
-
static static_metadata_hash_ent
|
59
|
-
static_metadata_hash[4 * GRPC_STATIC_MDSTR_COUNT];
|
60
|
-
static uint32_t max_static_metadata_hash_probe;
|
61
|
-
uint32_t grpc_static_metadata_hash_values[GRPC_STATIC_MDSTR_COUNT];
|
62
|
-
|
63
53
|
namespace grpc_core {
|
64
54
|
|
65
55
|
/* hash seed: decided at initialization time */
|
@@ -116,37 +106,8 @@ uint32_t grpc_slice_default_hash_impl(grpc_slice s) {
|
|
116
106
|
grpc_core::g_hash_seed);
|
117
107
|
}
|
118
108
|
|
119
|
-
uint32_t grpc_static_slice_hash(grpc_slice s) {
|
120
|
-
return grpc_static_metadata_hash_values[GRPC_STATIC_METADATA_INDEX(s)];
|
121
|
-
}
|
122
|
-
|
123
|
-
int grpc_static_slice_eq(grpc_slice a, grpc_slice b) {
|
124
|
-
return GRPC_STATIC_METADATA_INDEX(a) == GRPC_STATIC_METADATA_INDEX(b);
|
125
|
-
}
|
126
|
-
|
127
109
|
uint32_t grpc_slice_hash(grpc_slice s) { return grpc_slice_hash_internal(s); }
|
128
110
|
|
129
|
-
grpc_slice grpc_slice_maybe_static_intern(grpc_slice slice,
|
130
|
-
bool* returned_slice_is_different) {
|
131
|
-
if (GRPC_IS_STATIC_METADATA_STRING(slice)) {
|
132
|
-
return slice;
|
133
|
-
}
|
134
|
-
|
135
|
-
uint32_t hash = grpc_slice_hash_internal(slice);
|
136
|
-
for (uint32_t i = 0; i <= max_static_metadata_hash_probe; i++) {
|
137
|
-
static_metadata_hash_ent ent =
|
138
|
-
static_metadata_hash[(hash + i) % GPR_ARRAY_SIZE(static_metadata_hash)];
|
139
|
-
if (ent.hash == hash && ent.idx < GRPC_STATIC_MDSTR_COUNT &&
|
140
|
-
grpc_slice_eq_static_interned(
|
141
|
-
slice, grpc_core::g_static_metadata_slice_table[ent.idx])) {
|
142
|
-
*returned_slice_is_different = true;
|
143
|
-
return grpc_core::g_static_metadata_slice_table[ent.idx];
|
144
|
-
}
|
145
|
-
}
|
146
|
-
|
147
|
-
return slice;
|
148
|
-
}
|
149
|
-
|
150
111
|
grpc_slice grpc_slice_intern(grpc_slice slice) {
|
151
112
|
/* TODO(arjunroy): At present, this is capable of returning either a static or
|
152
113
|
an interned slice. This yields weirdness like the constructor for
|
@@ -155,25 +116,6 @@ grpc_slice grpc_slice_intern(grpc_slice slice) {
|
|
155
116
|
return grpc_core::ManagedMemorySlice(&slice);
|
156
117
|
}
|
157
118
|
|
158
|
-
// Attempt to see if the provided slice or string matches a static slice.
|
159
|
-
// SliceArgs is either a const grpc_slice& or const pair<const char*, size_t>&.
|
160
|
-
// In either case, hash is the pre-computed hash value.
|
161
|
-
//
|
162
|
-
// Returns: a matching static slice, or null.
|
163
|
-
template <typename SliceArgs>
|
164
|
-
static const grpc_core::StaticMetadataSlice* MatchStaticSlice(
|
165
|
-
uint32_t hash, const SliceArgs& args) {
|
166
|
-
for (uint32_t i = 0; i <= max_static_metadata_hash_probe; i++) {
|
167
|
-
static_metadata_hash_ent ent =
|
168
|
-
static_metadata_hash[(hash + i) % GPR_ARRAY_SIZE(static_metadata_hash)];
|
169
|
-
if (ent.hash == hash && ent.idx < GRPC_STATIC_MDSTR_COUNT &&
|
170
|
-
grpc_core::g_static_metadata_slice_table[ent.idx] == args) {
|
171
|
-
return &grpc_core::g_static_metadata_slice_table[ent.idx];
|
172
|
-
}
|
173
|
-
}
|
174
|
-
return nullptr;
|
175
|
-
}
|
176
|
-
|
177
119
|
// Helper methods to enable us to select appropriately overloaded slice methods
|
178
120
|
// whether we're dealing with a slice, or a buffer with length, when interning
|
179
121
|
// strings. Helpers for FindOrCreateInternedSlice().
|
@@ -271,30 +213,15 @@ grpc_core::ManagedMemorySlice::ManagedMemorySlice(const char* string)
|
|
271
213
|
grpc_core::ManagedMemorySlice::ManagedMemorySlice(const char* buf, size_t len) {
|
272
214
|
GPR_TIMER_SCOPE("grpc_slice_intern", 0);
|
273
215
|
const uint32_t hash = gpr_murmur_hash3(buf, len, g_hash_seed);
|
274
|
-
|
275
|
-
|
276
|
-
if (static_slice) {
|
277
|
-
*this = *static_slice;
|
278
|
-
} else {
|
279
|
-
*this = grpc_core::InternedSlice(FindOrCreateInternedSlice(
|
280
|
-
hash, std::pair<const char*, size_t>(buf, len)));
|
281
|
-
}
|
216
|
+
*this = grpc_core::InternedSlice(FindOrCreateInternedSlice(
|
217
|
+
hash, std::pair<const char*, size_t>(buf, len)));
|
282
218
|
}
|
283
219
|
|
284
220
|
grpc_core::ManagedMemorySlice::ManagedMemorySlice(const grpc_slice* slice_ptr) {
|
285
221
|
GPR_TIMER_SCOPE("grpc_slice_intern", 0);
|
286
222
|
const grpc_slice& slice = *slice_ptr;
|
287
|
-
if (GRPC_IS_STATIC_METADATA_STRING(slice)) {
|
288
|
-
*this = static_cast<const grpc_core::StaticMetadataSlice&>(slice);
|
289
|
-
return;
|
290
|
-
}
|
291
223
|
const uint32_t hash = grpc_slice_hash_internal(slice);
|
292
|
-
|
293
|
-
if (static_slice) {
|
294
|
-
*this = *static_slice;
|
295
|
-
} else {
|
296
|
-
*this = grpc_core::InternedSlice(FindOrCreateInternedSlice(hash, slice));
|
297
|
-
}
|
224
|
+
*this = grpc_core::InternedSlice(FindOrCreateInternedSlice(hash, slice));
|
298
225
|
}
|
299
226
|
|
300
227
|
void grpc_test_only_set_slice_hash_seed(uint32_t seed) {
|
@@ -315,31 +242,6 @@ void grpc_slice_intern_init(void) {
|
|
315
242
|
shard->strs = static_cast<InternedSliceRefcount**>(
|
316
243
|
gpr_zalloc(sizeof(*shard->strs) * shard->capacity));
|
317
244
|
}
|
318
|
-
for (size_t i = 0; i < GPR_ARRAY_SIZE(static_metadata_hash); i++) {
|
319
|
-
static_metadata_hash[i].hash = 0;
|
320
|
-
static_metadata_hash[i].idx = GRPC_STATIC_MDSTR_COUNT;
|
321
|
-
}
|
322
|
-
max_static_metadata_hash_probe = 0;
|
323
|
-
for (size_t i = 0; i < GRPC_STATIC_MDSTR_COUNT; i++) {
|
324
|
-
grpc_static_metadata_hash_values[i] = grpc_slice_default_hash_internal(
|
325
|
-
grpc_core::g_static_metadata_slice_table[i]);
|
326
|
-
for (size_t j = 0; j < GPR_ARRAY_SIZE(static_metadata_hash); j++) {
|
327
|
-
size_t slot = (grpc_static_metadata_hash_values[i] + j) %
|
328
|
-
GPR_ARRAY_SIZE(static_metadata_hash);
|
329
|
-
if (static_metadata_hash[slot].idx == GRPC_STATIC_MDSTR_COUNT) {
|
330
|
-
static_metadata_hash[slot].hash = grpc_static_metadata_hash_values[i];
|
331
|
-
static_metadata_hash[slot].idx = static_cast<uint32_t>(i);
|
332
|
-
if (j > max_static_metadata_hash_probe) {
|
333
|
-
max_static_metadata_hash_probe = static_cast<uint32_t>(j);
|
334
|
-
}
|
335
|
-
break;
|
336
|
-
}
|
337
|
-
}
|
338
|
-
}
|
339
|
-
// Handle KV hash for all static mdelems.
|
340
|
-
for (size_t i = 0; i < GRPC_STATIC_MDELEM_COUNT; ++i) {
|
341
|
-
grpc_core::g_static_mdelem_table[i].HashInit();
|
342
|
-
}
|
343
245
|
}
|
344
246
|
|
345
247
|
void grpc_slice_intern_shutdown(void) {
|
@@ -56,8 +56,7 @@ void grpc_slice_buffer_sub_first(grpc_slice_buffer* sb, size_t begin,
|
|
56
56
|
bool grpc_slice_is_interned(const grpc_slice& slice);
|
57
57
|
inline bool grpc_slice_is_interned(const grpc_slice& slice) {
|
58
58
|
return (slice.refcount &&
|
59
|
-
(slice.refcount->GetType() == grpc_slice_refcount::Type::INTERNED
|
60
|
-
slice.refcount->GetType() == grpc_slice_refcount::Type::STATIC));
|
59
|
+
(slice.refcount->GetType() == grpc_slice_refcount::Type::INTERNED));
|
61
60
|
}
|
62
61
|
|
63
62
|
inline bool grpc_slice_static_interned_equal(const grpc_slice& a,
|
@@ -17,17 +17,16 @@
|
|
17
17
|
|
18
18
|
#include <grpc/support/port_platform.h>
|
19
19
|
|
20
|
+
#include <string.h>
|
21
|
+
|
20
22
|
#include <grpc/support/alloc.h>
|
21
23
|
|
24
|
+
#include "src/core/lib/gpr/murmur_hash.h"
|
22
25
|
#include "src/core/lib/slice/slice_refcount_base.h"
|
23
|
-
#include "src/core/lib/slice/static_slice.h"
|
24
|
-
|
25
|
-
// Interned slices have specific fast-path operations for hashing. To inline
|
26
|
-
// these operations, we need to forward declare them here.
|
27
|
-
extern uint32_t grpc_static_metadata_hash_values[GRPC_STATIC_MDSTR_COUNT];
|
28
26
|
|
29
27
|
namespace grpc_core {
|
30
28
|
|
29
|
+
extern uint32_t g_hash_seed;
|
31
30
|
extern grpc_slice_refcount kNoopRefcount;
|
32
31
|
|
33
32
|
// TODO(ctiller): when this is removed, remove the std::atomic* in
|
@@ -73,11 +72,6 @@ inline int grpc_slice_refcount::Eq(const grpc_slice& a, const grpc_slice& b) {
|
|
73
72
|
GPR_DEBUG_ASSERT(a.refcount != nullptr);
|
74
73
|
GPR_DEBUG_ASSERT(a.refcount == this);
|
75
74
|
switch (ref_type_) {
|
76
|
-
case Type::STATIC:
|
77
|
-
GPR_DEBUG_ASSERT(
|
78
|
-
(GRPC_STATIC_METADATA_INDEX(a) == GRPC_STATIC_METADATA_INDEX(b)) ==
|
79
|
-
(a.refcount == b.refcount));
|
80
|
-
ABSL_FALLTHROUGH_INTENDED;
|
81
75
|
case Type::INTERNED:
|
82
76
|
return a.refcount == b.refcount;
|
83
77
|
case Type::NOP:
|
@@ -94,9 +88,6 @@ inline uint32_t grpc_slice_refcount::Hash(const grpc_slice& slice) {
|
|
94
88
|
GPR_DEBUG_ASSERT(slice.refcount != nullptr);
|
95
89
|
GPR_DEBUG_ASSERT(slice.refcount == this);
|
96
90
|
switch (ref_type_) {
|
97
|
-
case Type::STATIC:
|
98
|
-
return ::grpc_static_metadata_hash_values[GRPC_STATIC_METADATA_INDEX(
|
99
|
-
slice)];
|
100
91
|
case Type::INTERNED:
|
101
92
|
return reinterpret_cast<grpc_core::InternedSliceRefcount*>(slice.refcount)
|
102
93
|
->hash;
|
@@ -85,7 +85,6 @@
|
|
85
85
|
struct grpc_slice_refcount {
|
86
86
|
public:
|
87
87
|
enum class Type {
|
88
|
-
STATIC, // Refcount for a static metadata slice.
|
89
88
|
INTERNED, // Refcount for an interned slice.
|
90
89
|
NOP, // No-Op
|
91
90
|
REGULAR // Refcount for non-static-metadata, non-interned slices.
|
@@ -163,19 +162,4 @@ struct grpc_slice_refcount {
|
|
163
162
|
void* destroy_fn_arg_ = nullptr;
|
164
163
|
};
|
165
164
|
|
166
|
-
namespace grpc_core {
|
167
|
-
|
168
|
-
struct StaticSliceRefcount {
|
169
|
-
static grpc_slice_refcount kStaticSubRefcount;
|
170
|
-
|
171
|
-
explicit StaticSliceRefcount(uint32_t index)
|
172
|
-
: base(&kStaticSubRefcount, grpc_slice_refcount::Type::STATIC),
|
173
|
-
index(index) {}
|
174
|
-
|
175
|
-
grpc_slice_refcount base;
|
176
|
-
const uint32_t index;
|
177
|
-
};
|
178
|
-
|
179
|
-
} // namespace grpc_core
|
180
|
-
|
181
165
|
#endif // GRPC_CORE_LIB_SLICE_SLICE_REFCOUNT_BASE_H
|