grpc 1.32.0 → 1.35.0
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 +1078 -3049
- data/etc/roots.pem +257 -573
- data/include/grpc/compression.h +1 -1
- data/include/grpc/grpc.h +15 -7
- data/include/grpc/grpc_security.h +222 -171
- data/include/grpc/impl/codegen/atm_windows.h +4 -0
- data/include/grpc/impl/codegen/byte_buffer.h +1 -1
- data/include/grpc/impl/codegen/grpc_types.h +10 -8
- data/include/grpc/impl/codegen/log.h +0 -2
- data/include/grpc/impl/codegen/port_platform.h +22 -55
- data/include/grpc/impl/codegen/sync_windows.h +4 -0
- data/include/grpc/slice_buffer.h +3 -3
- data/include/grpc/support/sync.h +3 -3
- data/include/grpc/support/time.h +7 -7
- data/src/core/ext/filters/client_channel/backend_metric.cc +2 -4
- data/src/core/ext/filters/client_channel/client_channel.cc +2776 -1529
- data/src/core/ext/filters/client_channel/client_channel.h +0 -4
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
- data/src/core/ext/filters/client_channel/config_selector.cc +0 -4
- data/src/core/ext/filters/client_channel/config_selector.h +40 -8
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +186 -0
- data/src/core/ext/filters/client_channel/dynamic_filters.h +99 -0
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +10 -7
- data/src/core/ext/filters/client_channel/health/health_check_client.h +4 -4
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +5 -6
- data/src/core/ext/filters/client_channel/http_proxy.cc +21 -20
- data/src/core/ext/filters/client_channel/lb_policy.cc +6 -2
- data/src/core/ext/filters/client_channel/lb_policy.h +6 -7
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +48 -35
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +7 -5
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +4 -3
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +201 -190
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +3 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +50 -20
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +5 -5
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +14 -34
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +341 -127
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +52 -24
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +24 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +812 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +722 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +1262 -0
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +8 -1
- data/src/core/ext/filters/client_channel/resolver.cc +3 -1
- data/src/core/ext/filters/client_channel/resolver.h +4 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +9 -16
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -32
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +454 -16
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -0
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +7 -10
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +34 -27
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +618 -366
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +28 -0
- data/src/core/ext/filters/client_channel/resolver_factory.h +6 -6
- data/src/core/ext/filters/client_channel/resolver_registry.cc +40 -39
- data/src/core/ext/filters/client_channel/resolver_registry.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +29 -74
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +12 -10
- data/src/core/ext/filters/client_channel/retry_throttle.cc +5 -3
- data/src/core/ext/filters/client_channel/retry_throttle.h +4 -2
- data/src/core/ext/filters/client_channel/server_address.cc +80 -0
- data/src/core/ext/filters/client_channel/server_address.h +21 -36
- data/src/core/ext/filters/client_channel/service_config.cc +18 -13
- data/src/core/ext/filters/client_channel/service_config.h +8 -5
- data/src/core/ext/filters/client_channel/service_config_call_data.h +19 -1
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +2 -2
- data/src/core/ext/filters/client_channel/service_config_parser.cc +8 -6
- data/src/core/ext/filters/client_channel/service_config_parser.h +8 -5
- data/src/core/ext/filters/client_channel/subchannel.cc +51 -64
- data/src/core/ext/filters/client_channel/subchannel.h +14 -20
- data/src/core/ext/filters/client_channel/subchannel_interface.h +41 -5
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +6 -2
- data/src/core/ext/filters/deadline/deadline_filter.cc +87 -79
- data/src/core/ext/filters/deadline/deadline_filter.h +7 -11
- data/src/core/ext/filters/http/client/http_client_filter.cc +1 -1
- data/src/core/ext/filters/http/client_authority_filter.cc +6 -6
- data/src/core/ext/filters/http/http_filters_plugin.cc +6 -3
- data/src/core/ext/filters/http/server/http_server_filter.cc +3 -3
- data/src/core/ext/filters/max_age/max_age_filter.cc +1 -1
- data/src/core/ext/filters/message_size/message_size_filter.cc +3 -2
- data/src/core/ext/filters/message_size/message_size_filter.h +2 -1
- data/src/core/ext/filters/workarounds/workaround_utils.cc +1 -1
- data/src/core/ext/transport/chttp2/client/authority.cc +3 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +1 -1
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +20 -8
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +21 -10
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +26 -14
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +185 -79
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +12 -5
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +28 -42
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +10 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.h +13 -3
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +6 -6
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +12 -8
- data/src/core/ext/transport/chttp2/transport/internal.h +5 -1
- data/src/core/ext/transport/chttp2/transport/parsing.cc +18 -3
- data/src/core/ext/transport/chttp2/transport/writing.cc +2 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +42 -8
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +1 -0
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +52 -32
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +199 -34
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +13 -13
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +44 -17
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +177 -99
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +642 -202
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +22 -22
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +47 -21
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +36 -24
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +133 -39
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +15 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +45 -44
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +200 -78
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +31 -24
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +107 -47
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +53 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +149 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +74 -28
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +248 -43
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +39 -39
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +157 -89
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +17 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +63 -39
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +254 -60
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +9 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +36 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +92 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +13 -13
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +59 -36
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +16 -16
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +61 -29
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +26 -26
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +101 -66
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +11 -3
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +46 -26
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +179 -68
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +39 -22
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +149 -48
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +13 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +21 -17
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +96 -33
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +38 -22
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +321 -194
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +1228 -443
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +8 -7
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +34 -10
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +17 -3
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +132 -80
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +516 -166
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +1 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +24 -25
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +96 -71
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +12 -8
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +46 -8
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +71 -29
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +296 -63
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +41 -31
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +165 -64
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +31 -16
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +25 -11
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +29 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +4 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +22 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +19 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +46 -3
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +41 -8
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +1 -0
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +15 -2
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +19 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +7 -0
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +242 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +830 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +34 -34
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +142 -59
- data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
- data/src/core/ext/upb-generated/google/api/http.upb.h +25 -6
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +7 -0
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +90 -90
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +455 -292
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +7 -0
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +7 -0
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +4 -4
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +22 -3
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +7 -0
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +9 -9
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +55 -0
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +10 -3
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +4 -4
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +11 -3
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +41 -41
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +149 -76
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +5 -5
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +21 -6
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +13 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +17 -17
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +82 -25
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +19 -0
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +31 -0
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +64 -0
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +1 -0
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +2 -2
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +9 -2
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -0
- data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.c +28 -0
- data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.h +60 -0
- data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.c +52 -0
- data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.h +143 -0
- data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.c +42 -0
- data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.h +84 -0
- data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.c +36 -0
- data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.h +94 -0
- data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.c +54 -0
- data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.h +173 -0
- data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.c +36 -0
- data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.h +92 -0
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +7 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +64 -64
- data/src/core/ext/upb-generated/validate/validate.upb.h +296 -157
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +38 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +41 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +254 -0
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +105 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +100 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +558 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +145 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +133 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +127 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +266 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +125 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +143 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +66 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +263 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +100 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +233 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +228 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +80 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +55 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +110 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +113 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +146 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +50 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +190 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +185 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +62 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +97 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +915 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +280 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +71 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +511 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +115 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +48 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +166 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +105 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +249 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +60 -0
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +72 -0
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +152 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +60 -0
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +83 -0
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +82 -0
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +83 -0
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +86 -0
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +74 -0
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +73 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +72 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +81 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +92 -0
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +95 -0
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +34 -0
- data/src/core/ext/{upb-generated/gogoproto/gogo.upb.h → upbdefs-generated/envoy/type/v3/http.upbdefs.h} +10 -9
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +61 -0
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +39 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +386 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +165 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +37 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +65 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +66 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +75 -0
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +42 -0
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +70 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +33 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +43 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.c +42 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.c +62 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.c +68 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +307 -0
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +145 -0
- data/src/core/ext/xds/certificate_provider_factory.h +61 -0
- data/src/core/ext/xds/certificate_provider_registry.cc +103 -0
- data/src/core/ext/xds/certificate_provider_registry.h +57 -0
- data/src/core/ext/xds/certificate_provider_store.cc +87 -0
- data/src/core/ext/xds/certificate_provider_store.h +112 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +144 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +69 -0
- data/src/core/ext/xds/xds_api.cc +687 -767
- data/src/core/ext/xds/xds_api.h +207 -98
- data/src/core/ext/xds/xds_bootstrap.cc +172 -25
- data/src/core/ext/xds/xds_bootstrap.h +23 -8
- data/src/core/ext/xds/xds_certificate_provider.cc +299 -0
- data/src/core/ext/xds/xds_certificate_provider.h +112 -0
- data/src/core/ext/xds/xds_channel_args.h +6 -3
- data/src/core/ext/xds/xds_client.cc +617 -494
- data/src/core/ext/xds/xds_client.h +118 -58
- data/src/core/ext/xds/xds_client_stats.cc +59 -16
- data/src/core/ext/xds/xds_client_stats.h +35 -7
- data/src/core/ext/xds/xds_server_config_fetcher.cc +131 -0
- data/src/core/lib/channel/channel_args.cc +9 -8
- data/src/core/lib/channel/channel_args.h +0 -1
- data/src/core/lib/channel/channel_trace.cc +4 -2
- data/src/core/lib/channel/channel_trace.h +1 -1
- data/src/core/lib/channel/channelz.cc +23 -59
- data/src/core/lib/channel/channelz.h +13 -22
- data/src/core/lib/channel/channelz_registry.cc +12 -11
- data/src/core/lib/channel/channelz_registry.h +3 -1
- data/src/core/lib/channel/handshaker.cc +2 -2
- data/src/core/lib/channel/handshaker.h +2 -2
- data/src/core/lib/compression/compression.cc +8 -4
- data/src/core/lib/compression/compression_args.cc +3 -2
- data/src/core/lib/compression/compression_internal.cc +10 -5
- data/src/core/lib/compression/compression_internal.h +2 -1
- data/src/core/lib/compression/stream_compression_identity.cc +1 -3
- data/src/core/lib/debug/stats.h +2 -2
- data/src/core/lib/debug/stats_data.cc +1 -0
- data/src/core/lib/debug/stats_data.h +13 -13
- data/src/core/lib/gpr/alloc.cc +3 -2
- data/src/core/lib/gpr/cpu_iphone.cc +10 -2
- data/src/core/lib/gpr/log.cc +53 -16
- data/src/core/lib/gpr/log_linux.cc +19 -3
- data/src/core/lib/gpr/log_posix.cc +15 -1
- data/src/core/lib/gpr/log_windows.cc +18 -4
- data/src/core/lib/gpr/murmur_hash.cc +1 -1
- data/src/core/lib/gpr/spinlock.h +10 -2
- data/src/core/lib/gpr/string.cc +23 -22
- data/src/core/lib/gpr/string.h +5 -6
- data/src/core/lib/gpr/sync.cc +4 -4
- data/src/core/lib/gpr/time.cc +12 -12
- data/src/core/lib/gpr/time_precise.cc +5 -2
- data/src/core/lib/gpr/time_precise.h +6 -2
- data/src/core/lib/gpr/tls.h +4 -0
- data/src/core/lib/gpr/tls_msvc.h +2 -0
- data/src/core/lib/gpr/tls_stdcpp.h +48 -0
- data/src/core/lib/gpr/useful.h +5 -4
- data/src/core/lib/gprpp/arena.h +3 -2
- data/src/core/lib/gprpp/dual_ref_counted.h +331 -0
- data/src/core/lib/gprpp/examine_stack.cc +43 -0
- data/src/core/lib/gprpp/examine_stack.h +46 -0
- data/src/core/lib/gprpp/fork.cc +2 -2
- data/src/core/lib/gprpp/manual_constructor.h +1 -1
- data/src/core/lib/gprpp/orphanable.h +4 -8
- data/src/core/lib/gprpp/ref_counted.h +91 -68
- data/src/core/lib/gprpp/ref_counted_ptr.h +166 -7
- data/src/core/lib/{security/authorization/mock_cel/statusor.h → gprpp/stat.h} +13 -25
- data/src/core/lib/gprpp/stat_posix.cc +49 -0
- data/src/core/lib/gprpp/stat_windows.cc +48 -0
- data/src/core/lib/gprpp/thd.h +2 -2
- data/src/core/lib/gprpp/thd_posix.cc +42 -37
- data/src/core/lib/gprpp/thd_windows.cc +3 -1
- data/src/core/lib/http/httpcli.cc +1 -1
- data/src/core/lib/http/httpcli.h +2 -3
- data/src/core/lib/http/httpcli_security_connector.cc +1 -1
- data/src/core/lib/http/parser.cc +47 -27
- data/src/core/lib/iomgr/call_combiner.cc +8 -5
- data/src/core/lib/iomgr/combiner.cc +2 -1
- data/src/core/lib/iomgr/endpoint.h +1 -1
- data/src/core/lib/iomgr/endpoint_cfstream.cc +9 -5
- data/src/core/lib/iomgr/error.cc +17 -12
- data/src/core/lib/iomgr/error_internal.h +1 -1
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +20 -13
- data/src/core/lib/iomgr/ev_epollex_linux.cc +25 -17
- data/src/core/lib/iomgr/ev_poll_posix.cc +9 -7
- data/src/core/lib/iomgr/exec_ctx.cc +1 -1
- data/src/core/lib/iomgr/exec_ctx.h +16 -12
- data/src/core/lib/iomgr/executor.cc +2 -1
- data/src/core/lib/iomgr/executor.h +1 -1
- data/src/core/lib/iomgr/executor/mpmcqueue.h +5 -5
- data/src/core/lib/iomgr/executor/threadpool.h +4 -4
- data/src/core/lib/iomgr/iomgr.cc +1 -1
- data/src/core/lib/iomgr/load_file.h +1 -1
- data/src/core/lib/iomgr/lockfree_event.cc +19 -14
- data/src/core/lib/iomgr/lockfree_event.h +2 -2
- data/src/core/lib/iomgr/parse_address.cc +127 -43
- data/src/core/lib/iomgr/parse_address.h +32 -8
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +2 -1
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +1 -1
- data/src/core/lib/iomgr/pollset_set_custom.cc +1 -1
- data/src/core/lib/iomgr/python_util.h +4 -4
- data/src/core/lib/iomgr/resolve_address.cc +4 -4
- data/src/core/lib/iomgr/resolve_address_posix.cc +1 -5
- data/src/core/lib/iomgr/resource_quota.cc +4 -4
- data/src/core/lib/iomgr/sockaddr_utils.cc +10 -10
- data/src/core/lib/iomgr/sockaddr_utils.h +1 -1
- data/src/core/lib/iomgr/socket_factory_posix.cc +3 -2
- data/src/core/lib/iomgr/socket_mutator.cc +3 -2
- data/src/core/lib/iomgr/tcp_client.cc +3 -3
- data/src/core/lib/iomgr/tcp_client_custom.cc +7 -6
- data/src/core/lib/iomgr/tcp_custom.cc +22 -17
- data/src/core/lib/iomgr/tcp_posix.cc +12 -8
- data/src/core/lib/iomgr/tcp_server_custom.cc +28 -22
- data/src/core/lib/iomgr/timer_custom.cc +5 -5
- data/src/core/lib/iomgr/timer_generic.cc +3 -3
- data/src/core/lib/iomgr/timer_manager.cc +2 -2
- data/src/core/lib/iomgr/udp_server.cc +1 -2
- data/src/core/lib/iomgr/udp_server.h +1 -2
- data/src/core/lib/iomgr/unix_sockets_posix.cc +32 -21
- data/src/core/lib/iomgr/unix_sockets_posix.h +5 -0
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +7 -0
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -2
- data/src/core/lib/json/json.h +12 -2
- data/src/core/lib/json/json_reader.cc +8 -4
- data/src/core/lib/json/json_util.cc +58 -0
- data/src/core/lib/json/json_util.h +204 -0
- data/src/core/lib/json/json_writer.cc +2 -1
- data/src/core/lib/security/authorization/evaluate_args.cc +5 -10
- data/src/core/lib/security/authorization/evaluate_args.h +1 -1
- data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +3 -1
- data/src/core/lib/security/authorization/mock_cel/cel_expression.h +5 -4
- data/src/core/lib/security/authorization/mock_cel/cel_value.h +4 -0
- data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +6 -6
- data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +10 -9
- data/src/core/lib/security/context/security_context.cc +4 -3
- data/src/core/lib/security/context/security_context.h +3 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
- data/src/core/lib/security/credentials/credentials.cc +7 -7
- data/src/core/lib/security/credentials/credentials.h +3 -3
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +413 -0
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +80 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +213 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.h +72 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +497 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.h +120 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +135 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +48 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +213 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +58 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -1
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +18 -12
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +64 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +6 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +4 -3
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +8 -4
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +39 -46
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -4
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +1 -1
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +5 -5
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +346 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +213 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +399 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +138 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +78 -150
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +57 -187
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +16 -12
- data/src/core/lib/security/credentials/tls/tls_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/tls_utils.cc +91 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +38 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +175 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.h +69 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -1
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +9 -13
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +121 -0
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +87 -0
- data/src/core/lib/security/security_connector/load_system_roots.h +4 -0
- data/src/core/lib/security/security_connector/load_system_roots_linux.h +2 -0
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +3 -3
- data/src/core/lib/security/security_connector/security_connector.cc +4 -3
- data/src/core/lib/security/security_connector/security_connector.h +4 -2
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +4 -4
- data/src/core/lib/security/security_connector/ssl_utils.cc +2 -2
- data/src/core/lib/security/security_connector/ssl_utils.h +19 -19
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +342 -279
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +105 -61
- data/src/core/lib/security/transport/secure_endpoint.cc +2 -2
- data/src/core/lib/security/transport/security_handshaker.cc +3 -3
- data/src/core/lib/security/transport/server_auth_filter.cc +2 -1
- data/src/core/lib/security/util/json_util.h +1 -0
- data/src/core/lib/slice/slice.cc +7 -4
- data/src/core/lib/slice/slice_buffer.cc +2 -1
- data/src/core/lib/slice/slice_intern.cc +6 -7
- data/src/core/lib/slice/slice_internal.h +2 -2
- data/src/core/lib/surface/call.cc +41 -32
- data/src/core/lib/surface/call_details.cc +8 -8
- data/src/core/lib/surface/channel.cc +25 -41
- data/src/core/lib/surface/channel.h +9 -3
- data/src/core/lib/surface/channel_init.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +30 -24
- data/src/core/lib/surface/completion_queue.h +16 -16
- data/src/core/lib/surface/init.cc +32 -14
- data/src/core/lib/surface/lame_client.cc +20 -46
- data/src/core/lib/surface/lame_client.h +4 -0
- data/src/core/lib/surface/server.cc +63 -17
- data/src/core/lib/surface/server.h +39 -7
- data/src/core/lib/surface/validate_metadata.h +3 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/authority_override.cc +6 -4
- data/src/core/lib/transport/authority_override.h +7 -2
- data/src/core/lib/transport/bdp_estimator.cc +1 -1
- data/src/core/lib/transport/bdp_estimator.h +2 -1
- data/src/core/lib/transport/byte_stream.h +3 -3
- data/src/core/lib/transport/connectivity_state.h +11 -9
- data/src/core/lib/transport/error_utils.h +1 -1
- data/src/core/lib/transport/metadata.cc +11 -1
- data/src/core/lib/transport/metadata.h +2 -2
- data/src/core/lib/transport/metadata_batch.h +4 -4
- data/src/core/lib/transport/static_metadata.cc +1 -1
- data/src/core/lib/transport/status_metadata.cc +4 -3
- data/src/core/lib/transport/timeout_encoding.cc +4 -4
- data/src/core/lib/transport/transport.cc +5 -3
- data/src/core/lib/transport/transport.h +8 -8
- data/src/core/lib/uri/uri_parser.cc +131 -249
- data/src/core/lib/uri/uri_parser.h +57 -21
- data/src/core/plugin_registry/grpc_plugin_registry.cc +41 -20
- data/src/core/tsi/alts/crypt/gsec.cc +5 -4
- data/src/core/tsi/alts/frame_protector/frame_handler.cc +8 -6
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +27 -26
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +8 -6
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -4
- data/src/core/tsi/fake_transport_security.cc +6 -3
- data/src/core/tsi/local_transport_security.cc +5 -1
- data/src/core/tsi/local_transport_security.h +6 -7
- data/src/core/tsi/ssl/session_cache/ssl_session.h +3 -0
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +4 -1
- data/src/core/tsi/ssl_transport_security.cc +78 -58
- data/src/core/tsi/ssl_transport_security.h +9 -6
- data/src/core/tsi/transport_security.cc +10 -8
- data/src/core/tsi/transport_security_interface.h +1 -1
- data/src/ruby/ext/grpc/extconf.rb +1 -1
- data/src/ruby/ext/grpc/rb_event_thread.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +36 -16
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +70 -40
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +28 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +18 -0
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -6
- data/third_party/abseil-cpp/absl/algorithm/container.h +59 -22
- data/third_party/abseil-cpp/absl/base/attributes.h +99 -38
- data/third_party/abseil-cpp/absl/base/call_once.h +1 -1
- data/third_party/abseil-cpp/absl/base/casts.h +9 -6
- data/third_party/abseil-cpp/absl/base/config.h +60 -17
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +428 -335
- data/third_party/abseil-cpp/absl/base/internal/bits.h +17 -16
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +5 -0
- data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +4 -4
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +29 -1
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +7 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +25 -38
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +19 -25
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +8 -0
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +28 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.h +8 -0
- data/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +3 -1
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +2 -2
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +3 -3
- data/third_party/abseil-cpp/absl/base/macros.h +36 -109
- data/third_party/abseil-cpp/absl/base/optimization.h +61 -1
- data/third_party/abseil-cpp/absl/base/options.h +31 -4
- data/third_party/abseil-cpp/absl/base/policy_checks.h +1 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +94 -39
- data/third_party/abseil-cpp/absl/container/fixed_array.h +42 -25
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +606 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +2 -1
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +33 -36
- data/third_party/abseil-cpp/absl/container/internal/common.h +6 -2
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +33 -8
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +49 -29
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +15 -0
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +24 -7
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +35 -11
- data/third_party/abseil-cpp/absl/container/internal/have_sse.h +10 -9
- data/third_party/abseil-cpp/absl/container/internal/layout.h +7 -5
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +197 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +55 -34
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +5 -4
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +66 -16
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +4 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +13 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +43 -24
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +12 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +10 -2
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +22 -1
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +0 -21
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +12 -1
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +101 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +100 -20
- data/third_party/abseil-cpp/absl/functional/bind_front.h +184 -0
- data/third_party/abseil-cpp/absl/functional/function_ref.h +1 -1
- data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +95 -0
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -2
- data/third_party/abseil-cpp/absl/hash/hash.h +6 -5
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +73 -65
- data/third_party/abseil-cpp/absl/memory/memory.h +4 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +2 -8
- data/third_party/abseil-cpp/absl/numeric/int128.cc +13 -27
- data/third_party/abseil-cpp/absl/numeric/int128.h +16 -15
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +51 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +399 -0
- data/third_party/abseil-cpp/absl/status/status.cc +4 -6
- data/third_party/abseil-cpp/absl/status/status.h +502 -113
- data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +5 -10
- data/third_party/abseil-cpp/absl/status/statusor.cc +71 -0
- data/third_party/abseil-cpp/absl/status/statusor.h +760 -0
- data/third_party/abseil-cpp/absl/strings/charconv.cc +2 -2
- data/third_party/abseil-cpp/absl/strings/cord.cc +91 -112
- data/third_party/abseil-cpp/absl/strings/cord.h +360 -205
- data/third_party/abseil-cpp/absl/strings/escaping.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/internal/char_map.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +45 -23
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +222 -136
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +136 -64
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +14 -21
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +7 -14
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +31 -7
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +147 -135
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +999 -87
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +3 -3
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +4 -12
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +8 -6
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +13 -11
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +2 -2
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/str_cat.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_format.h +289 -13
- data/third_party/abseil-cpp/absl/strings/str_split.cc +2 -2
- data/third_party/abseil-cpp/absl/strings/str_split.h +1 -0
- data/third_party/abseil-cpp/absl/strings/string_view.h +26 -19
- data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/substitute.h +32 -29
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +3 -3
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +3 -3
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +28 -28
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +4 -16
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +1 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +8 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -2
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +75 -64
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +15 -6
- data/third_party/abseil-cpp/absl/time/civil_time.cc +9 -9
- data/third_party/abseil-cpp/absl/time/clock.cc +3 -3
- data/third_party/abseil-cpp/absl/time/duration.cc +90 -59
- data/third_party/abseil-cpp/absl/time/format.cc +43 -36
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +26 -16
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +4 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +136 -29
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +13 -21
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +136 -129
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +4 -5
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +8 -7
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +6 -6
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -1
- data/third_party/abseil-cpp/absl/time/time.h +15 -16
- data/third_party/abseil-cpp/absl/types/internal/variant.h +4 -4
- data/third_party/abseil-cpp/absl/types/optional.h +9 -9
- data/third_party/abseil-cpp/absl/types/span.h +49 -36
- data/third_party/abseil-cpp/absl/utility/utility.h +2 -2
- data/third_party/address_sorting/include/address_sorting/address_sorting.h +2 -0
- data/third_party/boringssl-with-bazel/err_data.c +469 -463
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +0 -6
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +9 -43
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +55 -4
- data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +34 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +6 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +173 -35
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +30 -10
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +56 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +8 -2
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +98 -11
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +51 -6
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +118 -49
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +267 -95
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +210 -34
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +766 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +7 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +21 -18
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +24 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +67 -67
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +29 -35
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +13 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +10 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +28 -40
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +3 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +14 -14
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +7 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +55 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +24 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +7 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +0 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +6 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/des.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +12 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +9 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +4 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +202 -134
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +64 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +42 -14
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +188 -78
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +482 -432
- data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +18 -5
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +35 -0
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +18 -18
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +2 -3
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +45 -10
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +42 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +8 -9
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +67 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +11 -14
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +216 -11
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +1 -2
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +57 -19
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +135 -41
- data/third_party/upb/third_party/wyhash/wyhash.h +145 -0
- data/third_party/upb/upb/decode.c +248 -167
- data/third_party/upb/upb/decode.h +20 -1
- data/third_party/upb/upb/decode.int.h +163 -0
- data/third_party/upb/upb/decode_fast.c +1040 -0
- data/third_party/upb/upb/decode_fast.h +126 -0
- data/third_party/upb/upb/def.c +2178 -0
- data/third_party/upb/upb/def.h +315 -0
- data/third_party/upb/upb/def.hpp +439 -0
- data/third_party/upb/upb/encode.c +227 -169
- data/third_party/upb/upb/encode.h +27 -2
- data/third_party/upb/upb/json_decode.c +1443 -0
- data/third_party/upb/upb/json_decode.h +23 -0
- data/third_party/upb/upb/json_encode.c +713 -0
- data/third_party/upb/upb/json_encode.h +36 -0
- data/third_party/upb/upb/msg.c +167 -88
- data/third_party/upb/upb/msg.h +174 -34
- data/third_party/upb/upb/port_def.inc +74 -61
- data/third_party/upb/upb/port_undef.inc +3 -7
- data/third_party/upb/upb/reflection.c +408 -0
- data/third_party/upb/upb/reflection.h +168 -0
- data/third_party/upb/upb/table.c +34 -197
- data/third_party/upb/upb/table.int.h +14 -5
- data/third_party/upb/upb/text_encode.c +421 -0
- data/third_party/upb/upb/text_encode.h +38 -0
- data/third_party/upb/upb/upb.c +18 -41
- data/third_party/upb/upb/upb.h +36 -7
- data/third_party/upb/upb/upb.hpp +4 -4
- data/third_party/upb/upb/upb.int.h +29 -0
- metadata +288 -54
- data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +0 -946
- data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +0 -537
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +0 -1141
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +0 -485
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +0 -68
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +0 -354
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +0 -142
- data/src/core/ext/upb-generated/gogoproto/gogo.upb.c +0 -17
- data/src/core/ext/xds/xds_channel.h +0 -46
- data/src/core/ext/xds/xds_channel_secure.cc +0 -103
- data/src/core/lib/gprpp/map.h +0 -53
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.cc +0 -129
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pku.c +0 -110
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_sxnet.c +0 -274
- data/third_party/upb/upb/port.c +0 -26
@@ -450,7 +450,7 @@ bool Base64UnescapeInternal(const char* src_param, size_t szsrc, char* dest,
|
|
450
450
|
|
451
451
|
// The GET_INPUT macro gets the next input character, skipping
|
452
452
|
// over any whitespace, and stopping when we reach the end of the
|
453
|
-
//
|
453
|
+
// string or when we read any non-data character. The arguments are
|
454
454
|
// an arbitrary identifier (used as a label for goto) and the number
|
455
455
|
// of data bytes that must remain in the input to avoid aborting the
|
456
456
|
// loop.
|
@@ -473,18 +473,18 @@ bool Base64UnescapeInternal(const char* src_param, size_t szsrc, char* dest,
|
|
473
473
|
if (dest) {
|
474
474
|
// This loop consumes 4 input bytes and produces 3 output bytes
|
475
475
|
// per iteration. We can't know at the start that there is enough
|
476
|
-
// data left in the
|
476
|
+
// data left in the string for a full iteration, so the loop may
|
477
477
|
// break out in the middle; if so 'state' will be set to the
|
478
478
|
// number of input bytes read.
|
479
479
|
|
480
480
|
while (szsrc >= 4) {
|
481
481
|
// We'll start by optimistically assuming that the next four
|
482
|
-
// bytes of the
|
482
|
+
// bytes of the string (src[0..3]) are four good data bytes
|
483
483
|
// (that is, no nulls, whitespace, padding chars, or illegal
|
484
484
|
// chars). We need to test src[0..2] for nulls individually
|
485
485
|
// before constructing temp to preserve the property that we
|
486
|
-
// never read past a null in the
|
487
|
-
// szsrc claims the
|
486
|
+
// never read past a null in the string (no matter how long
|
487
|
+
// szsrc claims the string is).
|
488
488
|
|
489
489
|
if (!src[0] || !src[1] || !src[2] ||
|
490
490
|
((temp = ((unsigned(unbase64[src[0]]) << 18) |
|
@@ -509,7 +509,7 @@ bool Base64UnescapeInternal(const char* src_param, size_t szsrc, char* dest,
|
|
509
509
|
temp = (temp << 6) | decode;
|
510
510
|
} else {
|
511
511
|
// We really did have four good data bytes, so advance four
|
512
|
-
// characters in the
|
512
|
+
// characters in the string.
|
513
513
|
|
514
514
|
szsrc -= 4;
|
515
515
|
src += 4;
|
@@ -644,7 +644,7 @@ bool Base64UnescapeInternal(const char* src_param, size_t szsrc, char* dest,
|
|
644
644
|
state);
|
645
645
|
}
|
646
646
|
|
647
|
-
// The remainder of the
|
647
|
+
// The remainder of the string should be all whitespace, mixed with
|
648
648
|
// exactly 0 equals signs, or exactly 'expected_equals' equals
|
649
649
|
// signs. (Always accepting 0 equals signs is an Abseil extension
|
650
650
|
// not covered in the RFC, as is accepting dot as the pad character.)
|
@@ -771,7 +771,7 @@ constexpr char kWebSafeBase64Chars[] =
|
|
771
771
|
template <typename String>
|
772
772
|
bool Base64UnescapeInternal(const char* src, size_t slen, String* dest,
|
773
773
|
const signed char* unbase64) {
|
774
|
-
// Determine the size of the output
|
774
|
+
// Determine the size of the output string. Base64 encodes every 3 bytes into
|
775
775
|
// 4 characters. any leftover chars are added directly for good measure.
|
776
776
|
// This is documented in the base64 RFC: http://tools.ietf.org/html/rfc3548
|
777
777
|
const size_t dest_len = 3 * (slen / 4) + (slen % 4);
|
@@ -779,7 +779,7 @@ bool Base64UnescapeInternal(const char* src, size_t slen, String* dest,
|
|
779
779
|
strings_internal::STLStringResizeUninitialized(dest, dest_len);
|
780
780
|
|
781
781
|
// We are getting the destination buffer by getting the beginning of the
|
782
|
-
//
|
782
|
+
// string and converting it into a char *.
|
783
783
|
size_t len;
|
784
784
|
const bool ok =
|
785
785
|
Base64UnescapeInternal(src, slen, &(*dest)[0], dest_len, unbase64, &len);
|
@@ -72,7 +72,7 @@ class Charmap {
|
|
72
72
|
CharMaskForWord(x, 2), CharMaskForWord(x, 3));
|
73
73
|
}
|
74
74
|
|
75
|
-
// Containing all the chars in the C-
|
75
|
+
// Containing all the chars in the C-string 's'.
|
76
76
|
// Note that this is expensively recursive because of the C++11 constexpr
|
77
77
|
// formulation. Use only in constexpr initializers.
|
78
78
|
static constexpr Charmap FromString(const char* s) {
|
@@ -208,7 +208,7 @@ int BigUnsigned<max_words>::ReadDigits(const char* begin, const char* end,
|
|
208
208
|
++dropped_digits;
|
209
209
|
}
|
210
210
|
if (begin < end && *std::prev(end) == '.') {
|
211
|
-
// If the
|
211
|
+
// If the string ends in '.', either before or after dropping zeroes, then
|
212
212
|
// drop the decimal point and look for more digits to drop.
|
213
213
|
dropped_digits = 0;
|
214
214
|
--end;
|
@@ -66,7 +66,7 @@ class BigUnsigned {
|
|
66
66
|
static_cast<uint32_t>(v >> 32)} {}
|
67
67
|
|
68
68
|
// Constructs a BigUnsigned from the given string_view containing a decimal
|
69
|
-
// value. If the input
|
69
|
+
// value. If the input string is not a decimal integer, constructs a 0
|
70
70
|
// instead.
|
71
71
|
explicit BigUnsigned(absl::string_view sv) : size_(0), words_{} {
|
72
72
|
// Check for valid input, returning a 0 otherwise. This is reasonable
|
@@ -210,7 +210,7 @@ class BigUnsigned {
|
|
210
210
|
return words_[index];
|
211
211
|
}
|
212
212
|
|
213
|
-
// Returns this integer as a decimal
|
213
|
+
// Returns this integer as a decimal string. This is not used in the decimal-
|
214
214
|
// to-binary conversion; it is intended to aid in testing.
|
215
215
|
std::string ToString() const;
|
216
216
|
|
@@ -302,7 +302,7 @@ bool ParseInfinityOrNan(const char* begin, const char* end,
|
|
302
302
|
switch (*begin) {
|
303
303
|
case 'i':
|
304
304
|
case 'I': {
|
305
|
-
// An infinity
|
305
|
+
// An infinity string consists of the characters "inf" or "infinity",
|
306
306
|
// case insensitive.
|
307
307
|
if (strings_internal::memcasecmp(begin + 1, "nf", 2) != 0) {
|
308
308
|
return false;
|
@@ -326,7 +326,7 @@ bool ParseInfinityOrNan(const char* begin, const char* end,
|
|
326
326
|
}
|
327
327
|
out->type = strings_internal::FloatType::kNan;
|
328
328
|
out->end = begin + 3;
|
329
|
-
// NaN is allowed to be followed by a parenthesized
|
329
|
+
// NaN is allowed to be followed by a parenthesized string, consisting of
|
330
330
|
// only the characters [a-zA-Z0-9_]. Match that if it's present.
|
331
331
|
begin += 3;
|
332
332
|
if (begin < end && *begin == '(') {
|
@@ -21,6 +21,8 @@
|
|
21
21
|
#include <cstdint>
|
22
22
|
#include <type_traits>
|
23
23
|
|
24
|
+
#include "absl/base/internal/invoke.h"
|
25
|
+
#include "absl/container/internal/compressed_tuple.h"
|
24
26
|
#include "absl/meta/type_traits.h"
|
25
27
|
#include "absl/strings/string_view.h"
|
26
28
|
|
@@ -86,8 +88,7 @@ struct CordRepExternal;
|
|
86
88
|
struct CordRep {
|
87
89
|
// The following three fields have to be less than 32 bytes since
|
88
90
|
// that is the smallest supported flat node size.
|
89
|
-
|
90
|
-
uint64_t length;
|
91
|
+
size_t length;
|
91
92
|
Refcount refcount;
|
92
93
|
// If tag < FLAT, it represents CordRepKind and indicates the type of node.
|
93
94
|
// Otherwise, the node type is CordRepFlat and the tag is the encoded size.
|
@@ -115,35 +116,56 @@ struct CordRepSubstring : public CordRep {
|
|
115
116
|
CordRep* child;
|
116
117
|
};
|
117
118
|
|
118
|
-
//
|
119
|
-
//
|
120
|
-
|
121
|
-
|
122
|
-
// will be stored at a suitably aligned address.
|
123
|
-
constexpr size_t ExternalRepAlignment() {
|
124
|
-
#if defined(__STDCPP_DEFAULT_NEW_ALIGNMENT__)
|
125
|
-
return __STDCPP_DEFAULT_NEW_ALIGNMENT__;
|
126
|
-
#else
|
127
|
-
return alignof(max_align_t);
|
128
|
-
#endif
|
129
|
-
}
|
130
|
-
|
131
|
-
// Type for function pointer that will invoke and destroy the type-erased
|
132
|
-
// releaser function object. Accepts a pointer to the releaser and the
|
133
|
-
// `string_view` that were passed in to `NewExternalRep` below. The return value
|
134
|
-
// is the size of the `Releaser` type.
|
135
|
-
using ExternalReleaserInvoker = size_t (*)(void*, absl::string_view);
|
119
|
+
// Type for function pointer that will invoke the releaser function and also
|
120
|
+
// delete the `CordRepExternalImpl` corresponding to the passed in
|
121
|
+
// `CordRepExternal`.
|
122
|
+
using ExternalReleaserInvoker = void (*)(CordRepExternal*);
|
136
123
|
|
137
124
|
// External CordReps are allocated together with a type erased releaser. The
|
138
125
|
// releaser is stored in the memory directly following the CordRepExternal.
|
139
|
-
struct
|
126
|
+
struct CordRepExternal : public CordRep {
|
140
127
|
const char* base;
|
141
128
|
// Pointer to function that knows how to call and destroy the releaser.
|
142
129
|
ExternalReleaserInvoker releaser_invoker;
|
143
130
|
};
|
144
131
|
|
145
|
-
|
146
|
-
|
132
|
+
struct Rank1 {};
|
133
|
+
struct Rank0 : Rank1 {};
|
134
|
+
|
135
|
+
template <typename Releaser, typename = ::absl::base_internal::invoke_result_t<
|
136
|
+
Releaser, absl::string_view>>
|
137
|
+
void InvokeReleaser(Rank0, Releaser&& releaser, absl::string_view data) {
|
138
|
+
::absl::base_internal::invoke(std::forward<Releaser>(releaser), data);
|
139
|
+
}
|
140
|
+
|
141
|
+
template <typename Releaser,
|
142
|
+
typename = ::absl::base_internal::invoke_result_t<Releaser>>
|
143
|
+
void InvokeReleaser(Rank1, Releaser&& releaser, absl::string_view) {
|
144
|
+
::absl::base_internal::invoke(std::forward<Releaser>(releaser));
|
145
|
+
}
|
146
|
+
|
147
|
+
// We use CompressedTuple so that we can benefit from EBCO.
|
148
|
+
template <typename Releaser>
|
149
|
+
struct CordRepExternalImpl
|
150
|
+
: public CordRepExternal,
|
151
|
+
public ::absl::container_internal::CompressedTuple<Releaser> {
|
152
|
+
// The extra int arg is so that we can avoid interfering with copy/move
|
153
|
+
// constructors while still benefitting from perfect forwarding.
|
154
|
+
template <typename T>
|
155
|
+
CordRepExternalImpl(T&& releaser, int)
|
156
|
+
: CordRepExternalImpl::CompressedTuple(std::forward<T>(releaser)) {
|
157
|
+
this->releaser_invoker = &Release;
|
158
|
+
}
|
159
|
+
|
160
|
+
~CordRepExternalImpl() {
|
161
|
+
InvokeReleaser(Rank0{}, std::move(this->template get<0>()),
|
162
|
+
absl::string_view(base, length));
|
163
|
+
}
|
164
|
+
|
165
|
+
static void Release(CordRepExternal* rep) {
|
166
|
+
delete static_cast<CordRepExternalImpl*>(rep);
|
167
|
+
}
|
168
|
+
};
|
147
169
|
|
148
170
|
} // namespace cord_internal
|
149
171
|
ABSL_NAMESPACE_END
|
@@ -12,14 +12,13 @@
|
|
12
12
|
|
13
13
|
#include "absl/base/port.h"
|
14
14
|
#include "absl/strings/internal/str_format/float_conversion.h"
|
15
|
+
#include "absl/strings/numbers.h"
|
15
16
|
|
16
17
|
namespace absl {
|
17
18
|
ABSL_NAMESPACE_BEGIN
|
18
19
|
namespace str_format_internal {
|
19
20
|
namespace {
|
20
21
|
|
21
|
-
const char kDigit[2][32] = { "0123456789abcdef", "0123456789ABCDEF" };
|
22
|
-
|
23
22
|
// Reduce *capacity by s.size(), clipped to a 0 minimum.
|
24
23
|
void ReducePadding(string_view s, size_t *capacity) {
|
25
24
|
*capacity = Excess(s.size(), *capacity);
|
@@ -48,125 +47,179 @@ struct IsSigned<absl::int128> : std::true_type {};
|
|
48
47
|
template <>
|
49
48
|
struct IsSigned<absl::uint128> : std::false_type {};
|
50
49
|
|
51
|
-
|
50
|
+
// Integral digit printer.
|
51
|
+
// Call one of the PrintAs* routines after construction once.
|
52
|
+
// Use with_neg_and_zero/without_neg_or_zero/is_negative to access the results.
|
53
|
+
class IntDigits {
|
52
54
|
public:
|
55
|
+
// Print the unsigned integer as octal.
|
56
|
+
// Supports unsigned integral types and uint128.
|
57
|
+
template <typename T>
|
58
|
+
void PrintAsOct(T v) {
|
59
|
+
static_assert(!IsSigned<T>::value, "");
|
60
|
+
char *p = storage_ + sizeof(storage_);
|
61
|
+
do {
|
62
|
+
*--p = static_cast<char>('0' + (static_cast<size_t>(v) & 7));
|
63
|
+
v >>= 3;
|
64
|
+
} while (v);
|
65
|
+
start_ = p;
|
66
|
+
size_ = storage_ + sizeof(storage_) - p;
|
67
|
+
}
|
68
|
+
|
69
|
+
// Print the signed or unsigned integer as decimal.
|
70
|
+
// Supports all integral types.
|
53
71
|
template <typename T>
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
72
|
+
void PrintAsDec(T v) {
|
73
|
+
static_assert(std::is_integral<T>::value, "");
|
74
|
+
start_ = storage_;
|
75
|
+
size_ = numbers_internal::FastIntToBuffer(v, storage_) - storage_;
|
76
|
+
}
|
77
|
+
|
78
|
+
void PrintAsDec(int128 v) {
|
79
|
+
auto u = static_cast<uint128>(v);
|
80
|
+
bool add_neg = false;
|
81
|
+
if (v < 0) {
|
82
|
+
add_neg = true;
|
83
|
+
u = uint128{} - u;
|
62
84
|
}
|
63
|
-
|
85
|
+
PrintAsDec(u, add_neg);
|
64
86
|
}
|
65
87
|
|
66
|
-
|
67
|
-
|
88
|
+
void PrintAsDec(uint128 v, bool add_neg = false) {
|
89
|
+
// This function can be sped up if needed. We can call FastIntToBuffer
|
90
|
+
// twice, or fix FastIntToBuffer to support uint128.
|
91
|
+
char *p = storage_ + sizeof(storage_);
|
92
|
+
do {
|
93
|
+
p -= 2;
|
94
|
+
numbers_internal::PutTwoDigits(static_cast<size_t>(v % 100), p);
|
95
|
+
v /= 100;
|
96
|
+
} while (v);
|
97
|
+
if (p[0] == '0') {
|
98
|
+
// We printed one too many hexits.
|
99
|
+
++p;
|
100
|
+
}
|
101
|
+
if (add_neg) {
|
102
|
+
*--p = '-';
|
103
|
+
}
|
104
|
+
size_ = storage_ + sizeof(storage_) - p;
|
105
|
+
start_ = p;
|
68
106
|
}
|
69
|
-
bool is_neg() const { return is_neg_; }
|
70
107
|
|
71
|
-
|
72
|
-
|
73
|
-
struct IsNegImpl {
|
74
|
-
static bool Eval(T v) { return v < 0; }
|
75
|
-
};
|
108
|
+
// Print the unsigned integer as hex using lowercase.
|
109
|
+
// Supports unsigned integral types and uint128.
|
76
110
|
template <typename T>
|
77
|
-
|
78
|
-
|
79
|
-
|
111
|
+
void PrintAsHexLower(T v) {
|
112
|
+
static_assert(!IsSigned<T>::value, "");
|
113
|
+
char *p = storage_ + sizeof(storage_);
|
114
|
+
|
115
|
+
do {
|
116
|
+
p -= 2;
|
117
|
+
constexpr const char* table = numbers_internal::kHexTable;
|
118
|
+
std::memcpy(p, table + 2 * (static_cast<size_t>(v) & 0xFF), 2);
|
119
|
+
if (sizeof(T) == 1) break;
|
120
|
+
v >>= 8;
|
121
|
+
} while (v);
|
122
|
+
if (p[0] == '0') {
|
123
|
+
// We printed one too many digits.
|
124
|
+
++p;
|
80
125
|
}
|
81
|
-
|
126
|
+
start_ = p;
|
127
|
+
size_ = storage_ + sizeof(storage_) - p;
|
128
|
+
}
|
82
129
|
|
130
|
+
// Print the unsigned integer as hex using uppercase.
|
131
|
+
// Supports unsigned integral types and uint128.
|
83
132
|
template <typename T>
|
84
|
-
|
85
|
-
|
133
|
+
void PrintAsHexUpper(T v) {
|
134
|
+
static_assert(!IsSigned<T>::value, "");
|
135
|
+
char *p = storage_ + sizeof(storage_);
|
136
|
+
|
137
|
+
// kHexTable is only lowercase, so do it manually for uppercase.
|
138
|
+
do {
|
139
|
+
*--p = "0123456789ABCDEF"[static_cast<size_t>(v) & 15];
|
140
|
+
v >>= 4;
|
141
|
+
} while (v);
|
142
|
+
start_ = p;
|
143
|
+
size_ = storage_ + sizeof(storage_) - p;
|
86
144
|
}
|
87
145
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
for (; u; u /= 8)
|
99
|
-
*--p = static_cast<char>('0' + static_cast<size_t>(u % 8));
|
100
|
-
break;
|
101
|
-
case 16: {
|
102
|
-
const char *digits = kDigit[FormatConversionCharIsUpper(conv) ? 1 : 0];
|
103
|
-
for (; u; u /= 16) *--p = digits[static_cast<size_t>(u % 16)];
|
104
|
-
break;
|
105
|
-
}
|
106
|
-
}
|
107
|
-
size_ = static_cast<int>(end() - p);
|
146
|
+
// The printed value including the '-' sign if available.
|
147
|
+
// For inputs of value `0`, this will return "0"
|
148
|
+
string_view with_neg_and_zero() const { return {start_, size_}; }
|
149
|
+
|
150
|
+
// The printed value not including the '-' sign.
|
151
|
+
// For inputs of value `0`, this will return "".
|
152
|
+
string_view without_neg_or_zero() const {
|
153
|
+
static_assert('-' < '0', "The check below verifies both.");
|
154
|
+
size_t advance = start_[0] <= '0' ? 1 : 0;
|
155
|
+
return {start_ + advance, size_ - advance};
|
108
156
|
}
|
109
157
|
|
110
|
-
|
111
|
-
char *end() { return storage_ + sizeof(storage_); }
|
158
|
+
bool is_negative() const { return start_[0] == '-'; }
|
112
159
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
160
|
+
private:
|
161
|
+
const char *start_;
|
162
|
+
size_t size_;
|
163
|
+
// Max size: 128 bit value as octal -> 43 digits, plus sign char
|
164
|
+
char storage_[128 / 3 + 1 + 1];
|
117
165
|
};
|
118
166
|
|
119
167
|
// Note: 'o' conversions do not have a base indicator, it's just that
|
120
168
|
// the '#' flag is specified to modify the precision for 'o' conversions.
|
121
|
-
string_view BaseIndicator(const
|
122
|
-
const
|
123
|
-
|
124
|
-
|
125
|
-
|
169
|
+
string_view BaseIndicator(const IntDigits &as_digits,
|
170
|
+
const FormatConversionSpecImpl conv) {
|
171
|
+
// always show 0x for %p.
|
172
|
+
bool alt = conv.has_alt_flag() ||
|
173
|
+
conv.conversion_char() == FormatConversionCharInternal::p;
|
174
|
+
bool hex = (conv.conversion_char() == FormatConversionCharInternal::x ||
|
175
|
+
conv.conversion_char() == FormatConversionCharInternal::X ||
|
176
|
+
conv.conversion_char() == FormatConversionCharInternal::p);
|
126
177
|
// From the POSIX description of '#' flag:
|
127
178
|
// "For x or X conversion specifiers, a non-zero result shall have
|
128
179
|
// 0x (or 0X) prefixed to it."
|
129
|
-
if (alt &&
|
130
|
-
|
131
|
-
|
180
|
+
if (alt && hex && !as_digits.without_neg_or_zero().empty()) {
|
181
|
+
return conv.conversion_char() == FormatConversionCharInternal::X ? "0X"
|
182
|
+
: "0x";
|
132
183
|
}
|
133
184
|
return {};
|
134
185
|
}
|
135
186
|
|
136
|
-
string_view SignColumn(bool neg, const
|
137
|
-
if (
|
187
|
+
string_view SignColumn(bool neg, const FormatConversionSpecImpl conv) {
|
188
|
+
if (conv.conversion_char() == FormatConversionCharInternal::d ||
|
189
|
+
conv.conversion_char() == FormatConversionCharInternal::i) {
|
138
190
|
if (neg) return "-";
|
139
|
-
if (conv.
|
140
|
-
if (conv.
|
191
|
+
if (conv.has_show_pos_flag()) return "+";
|
192
|
+
if (conv.has_sign_col_flag()) return " ";
|
141
193
|
}
|
142
194
|
return {};
|
143
195
|
}
|
144
196
|
|
145
|
-
bool ConvertCharImpl(unsigned char v, const
|
197
|
+
bool ConvertCharImpl(unsigned char v, const FormatConversionSpecImpl conv,
|
146
198
|
FormatSinkImpl *sink) {
|
147
199
|
size_t fill = 0;
|
148
200
|
if (conv.width() >= 0) fill = conv.width();
|
149
201
|
ReducePadding(1, &fill);
|
150
|
-
if (!conv.
|
202
|
+
if (!conv.has_left_flag()) sink->Append(fill, ' ');
|
151
203
|
sink->Append(1, v);
|
152
|
-
if (conv.
|
204
|
+
if (conv.has_left_flag()) sink->Append(fill, ' ');
|
153
205
|
return true;
|
154
206
|
}
|
155
207
|
|
156
|
-
bool
|
157
|
-
|
208
|
+
bool ConvertIntImplInnerSlow(const IntDigits &as_digits,
|
209
|
+
const FormatConversionSpecImpl conv,
|
210
|
+
FormatSinkImpl *sink) {
|
158
211
|
// Print as a sequence of Substrings:
|
159
212
|
// [left_spaces][sign][base_indicator][zeroes][formatted][right_spaces]
|
160
213
|
size_t fill = 0;
|
161
214
|
if (conv.width() >= 0) fill = conv.width();
|
162
215
|
|
163
|
-
string_view formatted =
|
216
|
+
string_view formatted = as_digits.without_neg_or_zero();
|
164
217
|
ReducePadding(formatted, &fill);
|
165
218
|
|
166
|
-
string_view sign = SignColumn(
|
219
|
+
string_view sign = SignColumn(as_digits.is_negative(), conv);
|
167
220
|
ReducePadding(sign, &fill);
|
168
221
|
|
169
|
-
string_view base_indicator = BaseIndicator(
|
222
|
+
string_view base_indicator = BaseIndicator(as_digits, conv);
|
170
223
|
ReducePadding(base_indicator, &fill);
|
171
224
|
|
172
225
|
int precision = conv.precision();
|
@@ -174,7 +227,8 @@ bool ConvertIntImplInner(const ConvertedIntInfo &info,
|
|
174
227
|
if (!precision_specified)
|
175
228
|
precision = 1;
|
176
229
|
|
177
|
-
if (conv.
|
230
|
+
if (conv.has_alt_flag() &&
|
231
|
+
conv.conversion_char() == FormatConversionCharInternal::o) {
|
178
232
|
// From POSIX description of the '#' (alt) flag:
|
179
233
|
// "For o conversion, it increases the precision (if necessary) to
|
180
234
|
// force the first digit of the result to be zero."
|
@@ -187,13 +241,13 @@ bool ConvertIntImplInner(const ConvertedIntInfo &info,
|
|
187
241
|
size_t num_zeroes = Excess(formatted.size(), precision);
|
188
242
|
ReducePadding(num_zeroes, &fill);
|
189
243
|
|
190
|
-
size_t num_left_spaces = !conv.
|
191
|
-
size_t num_right_spaces = conv.
|
244
|
+
size_t num_left_spaces = !conv.has_left_flag() ? fill : 0;
|
245
|
+
size_t num_right_spaces = conv.has_left_flag() ? fill : 0;
|
192
246
|
|
193
247
|
// From POSIX description of the '0' (zero) flag:
|
194
248
|
// "For d, i, o, u, x, and X conversion specifiers, if a precision
|
195
249
|
// is specified, the '0' flag is ignored."
|
196
|
-
if (!precision_specified && conv.
|
250
|
+
if (!precision_specified && conv.has_zero_flag()) {
|
197
251
|
num_zeroes += num_left_spaces;
|
198
252
|
num_left_spaces = 0;
|
199
253
|
}
|
@@ -208,71 +262,97 @@ bool ConvertIntImplInner(const ConvertedIntInfo &info,
|
|
208
262
|
}
|
209
263
|
|
210
264
|
template <typename T>
|
211
|
-
bool
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
265
|
+
bool ConvertIntArg(T v, const FormatConversionSpecImpl conv,
|
266
|
+
FormatSinkImpl *sink) {
|
267
|
+
using U = typename MakeUnsigned<T>::type;
|
268
|
+
IntDigits as_digits;
|
269
|
+
|
270
|
+
// This odd casting is due to a bug in -Wswitch behavior in gcc49 which causes
|
271
|
+
// it to complain about a switch/case type mismatch, even though both are
|
272
|
+
// FormatConverionChar. Likely this is because at this point
|
273
|
+
// FormatConversionChar is declared, but not defined.
|
274
|
+
switch (static_cast<uint8_t>(conv.conversion_char())) {
|
275
|
+
case static_cast<uint8_t>(FormatConversionCharInternal::c):
|
276
|
+
return ConvertCharImpl(static_cast<unsigned char>(v), conv, sink);
|
277
|
+
|
278
|
+
case static_cast<uint8_t>(FormatConversionCharInternal::o):
|
279
|
+
as_digits.PrintAsOct(static_cast<U>(v));
|
280
|
+
break;
|
281
|
+
|
282
|
+
case static_cast<uint8_t>(FormatConversionCharInternal::x):
|
283
|
+
as_digits.PrintAsHexLower(static_cast<U>(v));
|
284
|
+
break;
|
285
|
+
case static_cast<uint8_t>(FormatConversionCharInternal::X):
|
286
|
+
as_digits.PrintAsHexUpper(static_cast<U>(v));
|
287
|
+
break;
|
288
|
+
|
289
|
+
case static_cast<uint8_t>(FormatConversionCharInternal::u):
|
290
|
+
as_digits.PrintAsDec(static_cast<U>(v));
|
291
|
+
break;
|
292
|
+
|
293
|
+
case static_cast<uint8_t>(FormatConversionCharInternal::d):
|
294
|
+
case static_cast<uint8_t>(FormatConversionCharInternal::i):
|
295
|
+
as_digits.PrintAsDec(v);
|
296
|
+
break;
|
297
|
+
|
298
|
+
case static_cast<uint8_t>(FormatConversionCharInternal::a):
|
299
|
+
case static_cast<uint8_t>(FormatConversionCharInternal::e):
|
300
|
+
case static_cast<uint8_t>(FormatConversionCharInternal::f):
|
301
|
+
case static_cast<uint8_t>(FormatConversionCharInternal::g):
|
302
|
+
case static_cast<uint8_t>(FormatConversionCharInternal::A):
|
303
|
+
case static_cast<uint8_t>(FormatConversionCharInternal::E):
|
304
|
+
case static_cast<uint8_t>(FormatConversionCharInternal::F):
|
305
|
+
case static_cast<uint8_t>(FormatConversionCharInternal::G):
|
306
|
+
return ConvertFloatImpl(static_cast<double>(v), conv, sink);
|
307
|
+
|
308
|
+
default:
|
309
|
+
ABSL_INTERNAL_ASSUME(false);
|
221
310
|
}
|
222
|
-
return ConvertIntImplInner(info, conv, sink);
|
223
|
-
}
|
224
311
|
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
return FormatConvertImpl(static_cast<double>(v), conv, sink).value;
|
229
|
-
}
|
230
|
-
if (conv.conv() == ConversionChar::c)
|
231
|
-
return ConvertCharImpl(static_cast<unsigned char>(v), conv, sink);
|
232
|
-
if (!FormatConversionCharIsIntegral(conv.conv())) return false;
|
233
|
-
if (!FormatConversionCharIsSigned(conv.conv()) && IsSigned<T>::value) {
|
234
|
-
using U = typename MakeUnsigned<T>::type;
|
235
|
-
return FormatConvertImpl(static_cast<U>(v), conv, sink).value;
|
312
|
+
if (conv.is_basic()) {
|
313
|
+
sink->Append(as_digits.with_neg_and_zero());
|
314
|
+
return true;
|
236
315
|
}
|
237
|
-
return
|
316
|
+
return ConvertIntImplInnerSlow(as_digits, conv, sink);
|
238
317
|
}
|
239
318
|
|
240
319
|
template <typename T>
|
241
|
-
bool ConvertFloatArg(T v, const
|
242
|
-
|
320
|
+
bool ConvertFloatArg(T v, const FormatConversionSpecImpl conv,
|
321
|
+
FormatSinkImpl *sink) {
|
322
|
+
return FormatConversionCharIsFloat(conv.conversion_char()) &&
|
243
323
|
ConvertFloatImpl(v, conv, sink);
|
244
324
|
}
|
245
325
|
|
246
|
-
inline bool ConvertStringArg(string_view v, const
|
326
|
+
inline bool ConvertStringArg(string_view v, const FormatConversionSpecImpl conv,
|
247
327
|
FormatSinkImpl *sink) {
|
248
|
-
if (conv.
|
249
|
-
if (conv.flags().basic) {
|
328
|
+
if (conv.is_basic()) {
|
250
329
|
sink->Append(v);
|
251
330
|
return true;
|
252
331
|
}
|
253
332
|
return sink->PutPaddedString(v, conv.width(), conv.precision(),
|
254
|
-
conv.
|
333
|
+
conv.has_left_flag());
|
255
334
|
}
|
256
335
|
|
257
336
|
} // namespace
|
258
337
|
|
259
338
|
// ==================== Strings ====================
|
260
|
-
|
261
|
-
|
262
|
-
|
339
|
+
StringConvertResult FormatConvertImpl(const std::string &v,
|
340
|
+
const FormatConversionSpecImpl conv,
|
341
|
+
FormatSinkImpl *sink) {
|
263
342
|
return {ConvertStringArg(v, conv, sink)};
|
264
343
|
}
|
265
344
|
|
266
|
-
|
267
|
-
|
268
|
-
|
345
|
+
StringConvertResult FormatConvertImpl(string_view v,
|
346
|
+
const FormatConversionSpecImpl conv,
|
347
|
+
FormatSinkImpl *sink) {
|
269
348
|
return {ConvertStringArg(v, conv, sink)};
|
270
349
|
}
|
271
350
|
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
351
|
+
ArgConvertResult<FormatConversionCharSetUnion(
|
352
|
+
FormatConversionCharSetInternal::s, FormatConversionCharSetInternal::p)>
|
353
|
+
FormatConvertImpl(const char *v, const FormatConversionSpecImpl conv,
|
354
|
+
FormatSinkImpl *sink) {
|
355
|
+
if (conv.conversion_char() == FormatConversionCharInternal::p)
|
276
356
|
return {FormatConvertImpl(VoidPtr(v), conv, sink).value};
|
277
357
|
size_t len;
|
278
358
|
if (v == nullptr) {
|
@@ -287,93 +367,99 @@ ConvertResult<Conv::s | Conv::p> FormatConvertImpl(const char *v,
|
|
287
367
|
}
|
288
368
|
|
289
369
|
// ==================== Raw pointers ====================
|
290
|
-
|
291
|
-
|
292
|
-
if (conv.conv() != ConversionChar::p) return {false};
|
370
|
+
ArgConvertResult<FormatConversionCharSetInternal::p> FormatConvertImpl(
|
371
|
+
VoidPtr v, const FormatConversionSpecImpl conv, FormatSinkImpl *sink) {
|
293
372
|
if (!v.value) {
|
294
373
|
sink->Append("(nil)");
|
295
374
|
return {true};
|
296
375
|
}
|
297
|
-
|
376
|
+
IntDigits as_digits;
|
377
|
+
as_digits.PrintAsHexLower(v.value);
|
378
|
+
return {ConvertIntImplInnerSlow(as_digits, conv, sink)};
|
298
379
|
}
|
299
380
|
|
300
381
|
// ==================== Floats ====================
|
301
|
-
FloatingConvertResult FormatConvertImpl(float v,
|
382
|
+
FloatingConvertResult FormatConvertImpl(float v,
|
383
|
+
const FormatConversionSpecImpl conv,
|
302
384
|
FormatSinkImpl *sink) {
|
303
385
|
return {ConvertFloatArg(v, conv, sink)};
|
304
386
|
}
|
305
|
-
FloatingConvertResult FormatConvertImpl(double v,
|
387
|
+
FloatingConvertResult FormatConvertImpl(double v,
|
388
|
+
const FormatConversionSpecImpl conv,
|
306
389
|
FormatSinkImpl *sink) {
|
307
390
|
return {ConvertFloatArg(v, conv, sink)};
|
308
391
|
}
|
309
392
|
FloatingConvertResult FormatConvertImpl(long double v,
|
310
|
-
const
|
393
|
+
const FormatConversionSpecImpl conv,
|
311
394
|
FormatSinkImpl *sink) {
|
312
395
|
return {ConvertFloatArg(v, conv, sink)};
|
313
396
|
}
|
314
397
|
|
315
398
|
// ==================== Chars ====================
|
316
|
-
IntegralConvertResult FormatConvertImpl(char v,
|
399
|
+
IntegralConvertResult FormatConvertImpl(char v,
|
400
|
+
const FormatConversionSpecImpl conv,
|
317
401
|
FormatSinkImpl *sink) {
|
318
402
|
return {ConvertIntArg(v, conv, sink)};
|
319
403
|
}
|
320
404
|
IntegralConvertResult FormatConvertImpl(signed char v,
|
321
|
-
const
|
405
|
+
const FormatConversionSpecImpl conv,
|
322
406
|
FormatSinkImpl *sink) {
|
323
407
|
return {ConvertIntArg(v, conv, sink)};
|
324
408
|
}
|
325
409
|
IntegralConvertResult FormatConvertImpl(unsigned char v,
|
326
|
-
const
|
410
|
+
const FormatConversionSpecImpl conv,
|
327
411
|
FormatSinkImpl *sink) {
|
328
412
|
return {ConvertIntArg(v, conv, sink)};
|
329
413
|
}
|
330
414
|
|
331
415
|
// ==================== Ints ====================
|
332
416
|
IntegralConvertResult FormatConvertImpl(short v, // NOLINT
|
333
|
-
const
|
417
|
+
const FormatConversionSpecImpl conv,
|
334
418
|
FormatSinkImpl *sink) {
|
335
419
|
return {ConvertIntArg(v, conv, sink)};
|
336
420
|
}
|
337
421
|
IntegralConvertResult FormatConvertImpl(unsigned short v, // NOLINT
|
338
|
-
const
|
422
|
+
const FormatConversionSpecImpl conv,
|
339
423
|
FormatSinkImpl *sink) {
|
340
424
|
return {ConvertIntArg(v, conv, sink)};
|
341
425
|
}
|
342
|
-
IntegralConvertResult FormatConvertImpl(int v,
|
426
|
+
IntegralConvertResult FormatConvertImpl(int v,
|
427
|
+
const FormatConversionSpecImpl conv,
|
343
428
|
FormatSinkImpl *sink) {
|
344
429
|
return {ConvertIntArg(v, conv, sink)};
|
345
430
|
}
|
346
|
-
IntegralConvertResult FormatConvertImpl(unsigned v,
|
431
|
+
IntegralConvertResult FormatConvertImpl(unsigned v,
|
432
|
+
const FormatConversionSpecImpl conv,
|
347
433
|
FormatSinkImpl *sink) {
|
348
434
|
return {ConvertIntArg(v, conv, sink)};
|
349
435
|
}
|
350
436
|
IntegralConvertResult FormatConvertImpl(long v, // NOLINT
|
351
|
-
const
|
437
|
+
const FormatConversionSpecImpl conv,
|
352
438
|
FormatSinkImpl *sink) {
|
353
439
|
return {ConvertIntArg(v, conv, sink)};
|
354
440
|
}
|
355
441
|
IntegralConvertResult FormatConvertImpl(unsigned long v, // NOLINT
|
356
|
-
const
|
442
|
+
const FormatConversionSpecImpl conv,
|
357
443
|
FormatSinkImpl *sink) {
|
358
444
|
return {ConvertIntArg(v, conv, sink)};
|
359
445
|
}
|
360
446
|
IntegralConvertResult FormatConvertImpl(long long v, // NOLINT
|
361
|
-
const
|
447
|
+
const FormatConversionSpecImpl conv,
|
362
448
|
FormatSinkImpl *sink) {
|
363
449
|
return {ConvertIntArg(v, conv, sink)};
|
364
450
|
}
|
365
451
|
IntegralConvertResult FormatConvertImpl(unsigned long long v, // NOLINT
|
366
|
-
const
|
452
|
+
const FormatConversionSpecImpl conv,
|
367
453
|
FormatSinkImpl *sink) {
|
368
454
|
return {ConvertIntArg(v, conv, sink)};
|
369
455
|
}
|
370
456
|
IntegralConvertResult FormatConvertImpl(absl::int128 v,
|
371
|
-
const
|
457
|
+
const FormatConversionSpecImpl conv,
|
372
458
|
FormatSinkImpl *sink) {
|
373
459
|
return {ConvertIntArg(v, conv, sink)};
|
374
460
|
}
|
375
461
|
IntegralConvertResult FormatConvertImpl(absl::uint128 v,
|
376
|
-
const
|
462
|
+
const FormatConversionSpecImpl conv,
|
377
463
|
FormatSinkImpl *sink) {
|
378
464
|
return {ConvertIntArg(v, conv, sink)};
|
379
465
|
}
|