grpc 1.48.0-x86_64-linux → 1.49.0.pre1-x86_64-linux
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +104 -41
- data/include/grpc/event_engine/event_engine.h +19 -16
- data/include/grpc/impl/codegen/grpc_types.h +3 -8
- data/include/grpc/impl/codegen/port_platform.h +0 -8
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +3 -3
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +2 -2
- data/src/core/ext/filters/client_channel/client_channel.cc +117 -200
- data/src/core/ext/filters/client_channel/client_channel.h +15 -8
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +0 -29
- data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -10
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
- data/src/core/ext/filters/client_channel/config_selector.h +12 -4
- data/src/core/ext/filters/client_channel/connector.h +4 -5
- data/src/core/ext/filters/client_channel/http_proxy.cc +53 -65
- data/src/core/ext/filters/client_channel/http_proxy.h +12 -9
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +100 -124
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +12 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +5 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +169 -63
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +25 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +15 -19
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +66 -78
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +44 -44
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +6 -5
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +65 -77
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +15 -14
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +19 -14
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +60 -67
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +40 -49
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +81 -97
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +53 -61
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +171 -102
- data/src/core/ext/filters/client_channel/proxy_mapper.h +13 -14
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +19 -16
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +8 -7
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +4 -8
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +431 -145
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +170 -99
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +20 -7
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +17 -15
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +7 -17
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +11 -0
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +13 -14
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +3 -4
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +5 -6
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +4 -13
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +162 -165
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +37 -30
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +7 -10
- data/src/core/ext/filters/client_channel/retry_filter.cc +0 -7
- data/src/core/ext/filters/client_channel/retry_service_config.cc +30 -19
- data/src/core/ext/filters/client_channel/retry_service_config.h +6 -9
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +6 -7
- data/src/core/ext/filters/client_channel/subchannel.cc +49 -89
- data/src/core/ext/filters/client_channel/subchannel.h +8 -8
- data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +1 -1
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +6 -76
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +16 -25
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +3 -4
- data/src/core/ext/filters/deadline/deadline_filter.cc +6 -6
- data/src/core/ext/filters/deadline/deadline_filter.h +2 -3
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -3
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +1 -1
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +17 -12
- data/src/core/ext/filters/fault_injection/service_config_parser.h +4 -5
- data/src/core/ext/filters/http/client/http_client_filter.cc +2 -3
- data/src/core/ext/filters/http/client/http_client_filter.h +1 -1
- data/src/core/ext/filters/http/client_authority_filter.cc +1 -2
- data/src/core/ext/filters/http/client_authority_filter.h +1 -1
- data/src/core/ext/filters/http/server/http_server_filter.cc +2 -3
- data/src/core/ext/filters/http/server/http_server_filter.h +1 -1
- data/src/core/ext/filters/message_size/message_size_filter.cc +13 -7
- data/src/core/ext/filters/message_size/message_size_filter.h +3 -6
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +16 -12
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +4 -6
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +5 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +3 -5
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +35 -62
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +62 -89
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +4 -6
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +130 -165
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +3 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +67 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.h +1 -0
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +7 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +25 -8
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +4 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +8 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -10
- data/src/core/ext/transport/chttp2/transport/internal.h +2 -1
- data/src/core/ext/transport/inproc/inproc_transport.cc +40 -74
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +24 -8
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +8 -327
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +83 -1723
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +352 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1768 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +6 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +33 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +6 -2
- 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 -3
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +14 -14
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +90 -30
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +21 -19
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +124 -34
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +23 -22
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +153 -48
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +11 -11
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +84 -28
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +25 -23
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +156 -48
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +42 -14
- 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 +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +12 -12
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +78 -26
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +54 -18
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +21 -20
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +117 -44
- 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 +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +36 -12
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +37 -13
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +170 -15
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +7 -4
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +36 -4
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +48 -16
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +54 -18
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +21 -9
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +100 -14
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +7 -22
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +36 -77
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +121 -76
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +647 -163
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +34 -15
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +161 -22
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +98 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +1 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +11 -4
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +58 -4
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +35 -27
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +177 -52
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +66 -14
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +12 -4
- 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 +6 -2
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +131 -16
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +632 -12
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +24 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +24 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +6 -2
- 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 +6 -2
- 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 +6 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +12 -4
- 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 +18 -6
- 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 +42 -14
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +202 -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 +6 -2
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +6 -2
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -1
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +11 -11
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +66 -22
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +9 -9
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +72 -24
- data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
- data/src/core/ext/upb-generated/google/api/http.upb.h +18 -6
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +1 -1
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +44 -43
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +177 -55
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +2 -2
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +18 -6
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +6 -6
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +54 -18
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +6 -2
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +2 -2
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +24 -8
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +6 -2
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +7 -7
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +60 -20
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +1 -1
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +12 -4
- 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 +12 -4
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +6 -6
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +54 -18
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +2 -2
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +12 -4
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +7 -7
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +42 -14
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +23 -11
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -3
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +7 -3
- 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 -3
- data/src/core/ext/upb-generated/validate/validate.upb.c +22 -22
- data/src/core/ext/upb-generated/validate/validate.upb.h +139 -47
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +23 -11
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +7 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +27 -11
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +7 -3
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +2 -2
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +6 -6
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +54 -18
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +2 -2
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +6 -2
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +67 -274
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +0 -85
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +256 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +115 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +107 -107
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +191 -187
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +156 -154
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +186 -183
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +136 -134
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +16 -16
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +162 -139
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +39 -31
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +12 -8
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +72 -75
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +0 -5
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +713 -670
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +150 -139
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +16 -12
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +46 -25
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +477 -466
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +21 -18
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +153 -84
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +113 -113
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +29 -28
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +69 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +92 -90
- data/src/core/ext/xds/upb_utils.h +0 -21
- data/src/core/ext/xds/xds_api.cc +53 -86
- data/src/core/ext/xds/xds_api.h +19 -28
- data/src/core/ext/xds/xds_bootstrap.cc +39 -52
- data/src/core/ext/xds/xds_bootstrap.h +28 -8
- data/src/core/ext/xds/xds_certificate_provider.h +9 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +6 -4
- data/src/core/ext/xds/xds_channel_stack_modifier.h +8 -0
- data/src/core/ext/xds/xds_client.cc +555 -1214
- data/src/core/ext/xds/xds_client.h +16 -44
- data/src/core/ext/xds/xds_client_grpc.cc +291 -0
- data/src/core/ext/xds/xds_client_grpc.h +102 -0
- data/src/core/ext/xds/xds_cluster.cc +92 -103
- data/src/core/ext/xds/xds_cluster.h +6 -5
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +10 -14
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +1 -0
- data/src/core/ext/xds/xds_common_types.cc +134 -110
- data/src/core/ext/xds/xds_common_types.h +6 -7
- data/src/core/ext/xds/xds_endpoint.cc +80 -80
- data/src/core/ext/xds/xds_endpoint.h +4 -4
- data/src/core/ext/xds/xds_http_fault_filter.cc +4 -11
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -3
- data/src/core/ext/xds/xds_http_filters.h +3 -3
- data/src/core/ext/xds/xds_http_rbac_filter.cc +39 -58
- data/src/core/ext/xds/xds_http_rbac_filter.h +3 -3
- data/src/core/ext/xds/xds_lb_policy_registry.cc +17 -20
- data/src/core/ext/xds/xds_lb_policy_registry.h +4 -4
- data/src/core/ext/xds/xds_listener.cc +329 -299
- data/src/core/ext/xds/xds_listener.h +4 -4
- data/src/core/ext/xds/xds_resource_type.h +13 -2
- data/src/core/ext/xds/xds_route_config.cc +180 -177
- data/src/core/ext/xds/xds_route_config.h +31 -17
- data/src/core/ext/xds/xds_routing.cc +3 -6
- data/src/core/ext/xds/xds_routing.h +7 -9
- data/src/core/ext/xds/xds_server_config_fetcher.cc +76 -81
- data/src/core/ext/xds/xds_transport.h +86 -0
- data/src/core/ext/xds/xds_transport_grpc.cc +349 -0
- data/src/core/ext/xds/xds_transport_grpc.h +135 -0
- data/src/core/lib/address_utils/parse_address.cc +19 -17
- data/src/core/lib/address_utils/parse_address.h +8 -5
- data/src/core/lib/avl/avl.h +47 -25
- data/src/core/lib/channel/call_tracer.h +1 -1
- data/src/core/lib/channel/channel_args.cc +88 -19
- data/src/core/lib/channel/channel_args.h +113 -62
- data/src/core/lib/channel/channel_stack.cc +0 -1
- data/src/core/lib/channel/channel_stack_builder.cc +3 -3
- data/src/core/lib/channel/channel_stack_builder.h +2 -2
- data/src/core/lib/channel/channel_stack_builder_impl.cc +2 -4
- data/src/core/lib/channel/channelz.cc +27 -37
- data/src/core/lib/channel/channelz.h +9 -0
- data/src/core/lib/channel/promise_based_filter.h +0 -1
- data/src/core/lib/config/core_configuration.h +48 -35
- data/src/core/lib/debug/stats.cc +12 -15
- data/src/core/lib/debug/stats.h +11 -3
- data/src/core/lib/event_engine/{event_engine.cc → default_event_engine.cc} +9 -5
- data/src/core/lib/event_engine/{event_engine_factory.h → default_event_engine.h} +4 -8
- data/src/core/lib/event_engine/default_event_engine_factory.cc +20 -3
- data/src/core/lib/event_engine/default_event_engine_factory.h +33 -0
- data/src/core/lib/event_engine/executor/executor.h +38 -0
- data/src/core/lib/event_engine/executor/threaded_executor.cc +36 -0
- data/src/core/lib/event_engine/executor/threaded_executor.h +44 -0
- data/src/core/lib/event_engine/forkable.cc +98 -0
- data/src/core/lib/event_engine/forkable.h +61 -0
- data/src/core/lib/event_engine/poller.h +54 -0
- data/src/core/lib/event_engine/{iomgr_engine/iomgr_engine.cc → posix_engine/posix_engine.cc} +30 -47
- data/src/core/lib/event_engine/{iomgr_engine/iomgr_engine.h → posix_engine/posix_engine.h} +27 -28
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer.cc +4 -5
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer.h +8 -8
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_heap.cc +4 -4
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_heap.h +5 -5
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_manager.cc +46 -10
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_manager.h +17 -8
- data/src/core/lib/event_engine/promise.h +11 -2
- data/src/core/lib/event_engine/socket_notifier.h +55 -0
- data/src/core/lib/event_engine/{iomgr_engine/thread_pool.cc → thread_pool.cc} +49 -14
- data/src/core/lib/event_engine/{iomgr_engine/thread_pool.h → thread_pool.h} +21 -10
- data/src/core/lib/event_engine/utils.cc +49 -0
- data/src/core/lib/event_engine/utils.h +40 -0
- data/src/core/lib/event_engine/windows/iocp.cc +149 -0
- data/src/core/lib/event_engine/windows/iocp.h +68 -0
- data/src/core/lib/event_engine/windows/win_socket.cc +196 -0
- data/src/core/lib/event_engine/windows/win_socket.h +120 -0
- data/src/core/lib/event_engine/windows/windows_engine.cc +159 -0
- data/src/core/lib/event_engine/windows/windows_engine.h +120 -0
- data/src/core/lib/gpr/time.cc +11 -9
- data/src/core/lib/gpr/useful.h +29 -0
- data/src/core/lib/gprpp/bitset.h +3 -13
- data/src/core/lib/gprpp/debug_location.h +39 -7
- data/src/core/lib/gprpp/manual_constructor.h +0 -1
- data/src/core/lib/gprpp/no_destruct.h +94 -0
- data/src/core/lib/gprpp/ref_counted_ptr.h +0 -1
- data/src/core/lib/gprpp/status_helper.cc +1 -0
- data/src/core/lib/gprpp/table.h +0 -1
- data/src/core/lib/{event_engine/iomgr_engine → gprpp}/time_averaged_stats.cc +3 -5
- data/src/core/lib/{event_engine/iomgr_engine → gprpp}/time_averaged_stats.h +5 -7
- data/src/core/lib/{iomgr → gprpp}/work_serializer.cc +34 -18
- data/src/core/lib/{iomgr → gprpp}/work_serializer.h +21 -27
- data/src/core/lib/http/httpcli.cc +12 -24
- data/src/core/lib/http/httpcli_security_connector.cc +11 -11
- data/src/core/lib/iomgr/call_combiner.cc +0 -26
- data/src/core/lib/iomgr/closure.h +0 -9
- data/src/core/lib/iomgr/combiner.cc +0 -20
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -1
- data/src/core/lib/iomgr/error.cc +0 -773
- data/src/core/lib/iomgr/error.h +0 -145
- data/src/core/lib/iomgr/error_cfstream.cc +0 -5
- data/src/core/lib/iomgr/ev_poll_posix.cc +17 -9
- data/src/core/lib/iomgr/exec_ctx.cc +0 -12
- data/src/core/lib/iomgr/executor.cc +0 -10
- data/src/core/lib/iomgr/executor.h +0 -3
- data/src/core/lib/iomgr/lockfree_event.cc +0 -17
- data/src/core/lib/iomgr/port.h +3 -0
- data/src/core/lib/iomgr/resolve_address.h +29 -6
- data/src/core/lib/iomgr/resolve_address_posix.cc +38 -8
- data/src/core/lib/iomgr/resolve_address_posix.h +19 -5
- data/src/core/lib/iomgr/resolve_address_windows.cc +40 -10
- data/src/core/lib/iomgr/resolve_address_windows.h +19 -5
- data/src/core/lib/iomgr/socket_windows.h +0 -2
- data/src/core/lib/iomgr/tcp_posix.cc +118 -6
- data/src/core/lib/iomgr/timer_generic.cc +6 -8
- data/src/core/lib/json/json.h +19 -22
- data/src/core/lib/json/json_args.h +34 -0
- data/src/core/lib/json/json_object_loader.cc +233 -0
- data/src/core/lib/json/json_object_loader.h +618 -0
- data/src/core/lib/json/json_reader.cc +86 -62
- data/src/core/lib/json/json_util.cc +8 -36
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.cc +3 -44
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.h +15 -24
- data/src/core/lib/load_balancing/lb_policy_factory.h +49 -0
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy_registry.cc +49 -72
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy_registry.h +27 -27
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/subchannel_interface.h +6 -6
- data/src/core/lib/promise/activity.h +56 -8
- data/src/core/lib/promise/arena_promise.h +84 -81
- data/src/core/lib/promise/context.h +0 -1
- data/src/core/lib/promise/detail/basic_seq.h +43 -23
- data/src/core/lib/promise/detail/promise_factory.h +0 -1
- data/src/core/lib/promise/map.h +0 -1
- data/src/core/lib/promise/seq.h +25 -4
- data/src/core/lib/promise/sleep.cc +38 -42
- data/src/core/lib/promise/sleep.h +27 -24
- data/src/core/lib/promise/try_seq.h +26 -6
- data/src/core/lib/resolver/resolver.cc +0 -47
- data/src/core/lib/resolver/resolver.h +2 -12
- data/src/core/lib/resolver/resolver_factory.h +2 -3
- data/src/core/lib/resolver/resolver_registry.cc +1 -1
- data/src/core/lib/resolver/resolver_registry.h +2 -3
- data/src/core/lib/resolver/server_address.cc +11 -15
- data/src/core/lib/resolver/server_address.h +4 -8
- data/src/core/lib/resource_quota/api.cc +1 -1
- data/src/core/lib/resource_quota/arena.cc +21 -1
- data/src/core/lib/resource_quota/arena.h +24 -2
- data/src/core/lib/resource_quota/memory_quota.cc +157 -17
- data/src/core/lib/resource_quota/memory_quota.h +98 -17
- data/src/core/lib/resource_quota/periodic_update.cc +79 -0
- data/src/core/lib/resource_quota/periodic_update.h +71 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +10 -7
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -2
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
- data/src/core/lib/security/authorization/matchers.cc +13 -10
- data/src/core/lib/security/authorization/rbac_policy.cc +0 -1
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -3
- data/src/core/lib/security/credentials/alts/alts_credentials.h +3 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +3 -7
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -4
- data/src/core/lib/security/credentials/credentials.h +16 -12
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +18 -11
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +32 -23
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -6
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -6
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +3 -12
- data/src/core/lib/security/credentials/fake/fake_credentials.h +0 -4
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +29 -26
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +1 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +0 -1
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +3 -3
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +3 -4
- data/src/core/lib/security/credentials/jwt/json_token.cc +12 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +4 -8
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +11 -13
- data/src/core/lib/security/credentials/local/local_credentials.cc +3 -4
- data/src/core/lib/security/credentials/local/local_credentials.h +3 -4
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +17 -18
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +0 -1
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +13 -21
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +3 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +6 -0
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +13 -25
- data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -4
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +13 -30
- data/src/core/lib/security/credentials/xds/xds_credentials.h +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +10 -18
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +26 -38
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +5 -5
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +6 -5
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +13 -11
- data/src/core/lib/security/security_connector/local/local_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/security_connector.h +5 -3
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +5 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +5 -5
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +5 -5
- data/src/core/lib/security/transport/auth_filters.h +1 -1
- data/src/core/lib/security/transport/client_auth_filter.cc +3 -4
- data/src/core/lib/security/transport/security_handshaker.cc +32 -44
- data/src/core/lib/security/transport/security_handshaker.h +2 -1
- data/src/core/lib/service_config/service_config.h +11 -0
- data/src/core/lib/service_config/service_config_impl.cc +98 -97
- data/src/core/lib/service_config/service_config_impl.h +11 -13
- data/src/core/lib/service_config/service_config_parser.cc +26 -27
- data/src/core/lib/service_config/service_config_parser.h +10 -22
- data/src/core/lib/slice/percent_encoding.cc +4 -13
- data/src/core/lib/slice/slice.cc +10 -4
- data/src/core/lib/surface/call.cc +8 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +1 -1
- data/src/core/lib/surface/completion_queue.cc +0 -2
- data/src/core/lib/surface/completion_queue.h +0 -3
- data/src/core/lib/surface/init.cc +2 -6
- data/src/core/lib/surface/lame_client.cc +2 -3
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +7 -12
- data/src/core/lib/surface/server.h +7 -7
- data/src/core/lib/surface/validate_metadata.cc +4 -14
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/connectivity_state.cc +0 -1
- data/src/core/lib/transport/connectivity_state.h +1 -1
- data/src/core/lib/transport/error_utils.cc +0 -36
- data/src/core/lib/transport/handshaker.cc +7 -9
- data/src/core/lib/transport/handshaker.h +4 -5
- data/src/core/lib/transport/handshaker_factory.h +2 -3
- data/src/core/lib/transport/handshaker_registry.cc +2 -1
- data/src/core/lib/transport/handshaker_registry.h +2 -4
- data/src/core/lib/transport/http_connect_handshaker.cc +16 -16
- data/src/core/lib/transport/metadata_batch.cc +5 -0
- data/src/core/lib/transport/metadata_batch.h +52 -7
- data/src/core/lib/transport/parsed_metadata.h +0 -1
- data/src/core/lib/transport/tcp_connect_handshaker.cc +12 -18
- data/src/core/lib/transport/transport.h +0 -7
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +40 -21
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +14 -7
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +1 -1
- data/src/core/tsi/fake_transport_security.cc +53 -30
- data/src/core/tsi/local_transport_security.cc +9 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +10 -1
- data/src/core/tsi/ssl_transport_security.cc +47 -23
- data/src/core/tsi/transport_security.cc +18 -6
- data/src/core/tsi/transport_security.h +2 -1
- data/src/core/tsi/transport_security_interface.h +17 -5
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_loader.c +6 -2
- data/src/ruby/lib/grpc/2.5/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/2.6/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/2.7/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/3.0/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/3.1/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +4 -0
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +313 -0
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +857 -0
- data/third_party/upb/third_party/utf8_range/utf8_range.h +1 -1
- data/third_party/upb/upb/arena.c +277 -0
- data/third_party/upb/upb/arena.h +225 -0
- data/third_party/upb/upb/array.c +114 -0
- data/third_party/upb/upb/array.h +83 -0
- data/third_party/upb/upb/collections.h +36 -0
- data/third_party/upb/upb/decode.c +161 -65
- data/third_party/upb/upb/decode.h +1 -0
- data/third_party/upb/upb/decode_fast.c +1 -1
- data/third_party/upb/upb/def.c +10 -2
- data/third_party/upb/upb/def.h +8 -1
- data/third_party/upb/upb/def.hpp +7 -4
- data/third_party/upb/upb/encode.c +29 -20
- data/third_party/upb/upb/encode.h +16 -6
- data/third_party/upb/upb/extension_registry.c +93 -0
- data/third_party/upb/upb/extension_registry.h +84 -0
- data/third_party/upb/upb/{decode_internal.h → internal/decode.h} +5 -5
- data/third_party/upb/upb/internal/table.h +385 -0
- data/third_party/upb/upb/{upb_internal.h → internal/upb.h} +3 -3
- data/third_party/upb/upb/internal/vsnprintf_compat.h +52 -0
- data/third_party/upb/upb/json_decode.c +1512 -0
- data/third_party/upb/upb/json_decode.h +47 -0
- data/third_party/upb/upb/json_encode.c +7 -3
- data/third_party/upb/upb/json_encode.h +6 -3
- data/third_party/upb/upb/map.c +108 -0
- data/third_party/upb/upb/map.h +117 -0
- data/third_party/upb/upb/message_value.h +66 -0
- data/third_party/upb/upb/mini_table.c +1147 -0
- data/third_party/upb/upb/mini_table.h +189 -0
- data/third_party/upb/upb/mini_table.hpp +112 -0
- data/third_party/upb/upb/msg.c +2 -62
- data/third_party/upb/upb/msg.h +2 -45
- data/third_party/upb/upb/msg_internal.h +28 -22
- data/third_party/upb/upb/port_def.inc +2 -1
- data/third_party/upb/upb/port_undef.inc +1 -0
- data/third_party/upb/upb/reflection.c +2 -159
- data/third_party/upb/upb/reflection.h +2 -112
- data/third_party/upb/upb/status.c +86 -0
- data/third_party/upb/upb/status.h +66 -0
- data/third_party/upb/upb/table.c +2 -2
- data/third_party/upb/upb/table_internal.h +3 -352
- data/third_party/upb/upb/text_encode.c +3 -2
- data/third_party/upb/upb/upb.c +4 -290
- data/third_party/upb/upb/upb.h +7 -196
- metadata +90 -38
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +0 -50
- data/src/core/lib/iomgr/error_internal.h +0 -66
- data/src/core/lib/iomgr/executor/mpmcqueue.cc +0 -182
- data/src/core/lib/iomgr/executor/mpmcqueue.h +0 -171
- data/src/core/lib/iomgr/executor/threadpool.cc +0 -136
- data/src/core/lib/iomgr/executor/threadpool.h +0 -150
- data/src/core/lib/iomgr/time_averaged_stats.cc +0 -64
- data/src/core/lib/iomgr/time_averaged_stats.h +0 -72
- data/src/core/lib/promise/detail/switch.h +0 -1455
@@ -0,0 +1,36 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright (c) 2009-2021, Google LLC
|
3
|
+
* All rights reserved.
|
4
|
+
*
|
5
|
+
* Redistribution and use in source and binary forms, with or without
|
6
|
+
* modification, are permitted provided that the following conditions are met:
|
7
|
+
* * Redistributions of source code must retain the above copyright
|
8
|
+
* notice, this list of conditions and the following disclaimer.
|
9
|
+
* * Redistributions in binary form must reproduce the above copyright
|
10
|
+
* notice, this list of conditions and the following disclaimer in the
|
11
|
+
* documentation and/or other materials provided with the distribution.
|
12
|
+
* * Neither the name of Google LLC nor the
|
13
|
+
* names of its contributors may be used to endorse or promote products
|
14
|
+
* derived from this software without specific prior written permission.
|
15
|
+
*
|
16
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
17
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
18
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
19
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY DIRECT,
|
20
|
+
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
21
|
+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
22
|
+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
23
|
+
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
24
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
25
|
+
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
26
|
+
*/
|
27
|
+
|
28
|
+
#ifndef UPB_COLLECTIONS_H_
|
29
|
+
#define UPB_COLLECTIONS_H_
|
30
|
+
|
31
|
+
// TODO(b/232091617): Delete this entire header which currently exists only for
|
32
|
+
// temporary backwards compatibility.
|
33
|
+
#include "upb/array.h"
|
34
|
+
#include "upb/map.h"
|
35
|
+
|
36
|
+
#endif /* UPB_COLLECTIONS_H_ */
|
@@ -30,9 +30,9 @@
|
|
30
30
|
#include <setjmp.h>
|
31
31
|
#include <string.h>
|
32
32
|
|
33
|
-
#include "upb/
|
33
|
+
#include "upb/internal/decode.h"
|
34
|
+
#include "upb/internal/upb.h"
|
34
35
|
#include "upb/upb.h"
|
35
|
-
#include "upb/upb_internal.h"
|
36
36
|
|
37
37
|
/* Must be last. */
|
38
38
|
#include "upb/port_def.inc"
|
@@ -93,13 +93,11 @@ static const unsigned FIXED64_OK_MASK = (1 << kUpb_FieldType_Double) |
|
|
93
93
|
|
94
94
|
/* Three fake field types for MessageSet. */
|
95
95
|
#define TYPE_MSGSET_ITEM 19
|
96
|
-
#define
|
97
|
-
#define TYPE_COUNT 20
|
96
|
+
#define TYPE_COUNT 19
|
98
97
|
|
99
98
|
/* Op: an action to be performed for a wire-type/field-type combination. */
|
100
99
|
#define OP_UNKNOWN -1 /* Unknown field. */
|
101
100
|
#define OP_MSGSET_ITEM -2
|
102
|
-
#define OP_MSGSET_TYPEID -3
|
103
101
|
#define OP_SCALAR_LG2(n) (n) /* n in [0, 2, 3] => op in [0, 2, 3] */
|
104
102
|
#define OP_ENUM 1
|
105
103
|
#define OP_STRING 4
|
@@ -131,7 +129,6 @@ static const int8_t varint_ops[] = {
|
|
131
129
|
OP_SCALAR_LG2(2), /* SINT32 */
|
132
130
|
OP_SCALAR_LG2(3), /* SINT64 */
|
133
131
|
OP_UNKNOWN, /* MSGSET_ITEM */
|
134
|
-
OP_MSGSET_TYPEID, /* MSGSET TYPEID */
|
135
132
|
};
|
136
133
|
|
137
134
|
static const int8_t delim_ops[] = {
|
@@ -156,7 +153,6 @@ static const int8_t delim_ops[] = {
|
|
156
153
|
OP_UNKNOWN, /* SINT32 */
|
157
154
|
OP_UNKNOWN, /* SINT64 */
|
158
155
|
OP_UNKNOWN, /* MSGSET_ITEM */
|
159
|
-
OP_UNKNOWN, /* MSGSET TYPEID */
|
160
156
|
/* For repeated field type. */
|
161
157
|
OP_FIXPCK_LG2(3), /* REPEATED DOUBLE */
|
162
158
|
OP_FIXPCK_LG2(2), /* REPEATED FLOAT */
|
@@ -266,6 +262,18 @@ static const char* decode_tag(upb_Decoder* d, const char* ptr, uint32_t* val) {
|
|
266
262
|
}
|
267
263
|
}
|
268
264
|
|
265
|
+
UPB_FORCEINLINE
|
266
|
+
static const char* upb_Decoder_DecodeSize(upb_Decoder* d, const char* ptr,
|
267
|
+
uint32_t* size) {
|
268
|
+
uint64_t size64;
|
269
|
+
ptr = decode_varint64(d, ptr, &size64);
|
270
|
+
if (size64 >= INT32_MAX || ptr - d->end + (int)size64 > d->limit) {
|
271
|
+
decode_err(d, kUpb_DecodeStatus_Malformed);
|
272
|
+
}
|
273
|
+
*size = size64;
|
274
|
+
return ptr;
|
275
|
+
}
|
276
|
+
|
269
277
|
static void decode_munge_int32(wireval* val) {
|
270
278
|
if (!_upb_IsLittleEndian()) {
|
271
279
|
/* The next stage will memcpy(dst, &val, 4) */
|
@@ -300,7 +308,9 @@ static upb_Message* decode_newsubmsg(upb_Decoder* d,
|
|
300
308
|
const upb_MiniTable_Sub* subs,
|
301
309
|
const upb_MiniTable_Field* field) {
|
302
310
|
const upb_MiniTable* subl = subs[field->submsg_index].submsg;
|
303
|
-
|
311
|
+
upb_Message* msg = _upb_Message_New_inl(subl, &d->arena);
|
312
|
+
if (!msg) decode_err(d, kUpb_DecodeStatus_OutOfMemory);
|
313
|
+
return msg;
|
304
314
|
}
|
305
315
|
|
306
316
|
UPB_NOINLINE
|
@@ -375,7 +385,7 @@ static const char* decode_togroup(upb_Decoder* d, const char* ptr,
|
|
375
385
|
return decode_group(d, ptr, submsg, subl, field->number);
|
376
386
|
}
|
377
387
|
|
378
|
-
static char*
|
388
|
+
static char* upb_Decoder_EncodeVarint32(uint32_t val, char* ptr) {
|
379
389
|
do {
|
380
390
|
uint8_t byte = val & 0x7fU;
|
381
391
|
val >>= 7;
|
@@ -389,8 +399,8 @@ static void upb_Decode_AddUnknownVarints(upb_Decoder* d, upb_Message* msg,
|
|
389
399
|
uint32_t val1, uint32_t val2) {
|
390
400
|
char buf[20];
|
391
401
|
char* end = buf;
|
392
|
-
end =
|
393
|
-
end =
|
402
|
+
end = upb_Decoder_EncodeVarint32(val1, end);
|
403
|
+
end = upb_Decoder_EncodeVarint32(val2, end);
|
394
404
|
|
395
405
|
if (!_upb_Message_AddUnknown(msg, buf, end - buf, &d->arena)) {
|
396
406
|
decode_err(d, kUpb_DecodeStatus_OutOfMemory);
|
@@ -643,7 +653,10 @@ static const char* decode_tomap(upb_Decoder* d, const char* ptr,
|
|
643
653
|
decode_err(d, kUpb_DecodeStatus_OutOfMemory);
|
644
654
|
}
|
645
655
|
} else {
|
646
|
-
|
656
|
+
if (_upb_Map_Insert(map, &ent.k, map->key_size, &ent.v, map->val_size,
|
657
|
+
&d->arena) == _kUpb_MapInsertStatus_OutOfMemory) {
|
658
|
+
decode_err(d, kUpb_DecodeStatus_OutOfMemory);
|
659
|
+
}
|
647
660
|
}
|
648
661
|
return ptr;
|
649
662
|
}
|
@@ -743,25 +756,139 @@ static bool decode_tryfastdispatch(upb_Decoder* d, const char** ptr,
|
|
743
756
|
return false;
|
744
757
|
}
|
745
758
|
|
746
|
-
static const char*
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
|
753
|
-
|
754
|
-
|
755
|
-
|
756
|
-
|
757
|
-
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
762
|
-
|
763
|
-
|
764
|
-
|
759
|
+
static const char* upb_Decoder_SkipField(upb_Decoder* d, const char* ptr,
|
760
|
+
uint32_t tag) {
|
761
|
+
int field_number = tag >> 3;
|
762
|
+
int wire_type = tag & 7;
|
763
|
+
switch (wire_type) {
|
764
|
+
case kUpb_WireType_Varint: {
|
765
|
+
uint64_t val;
|
766
|
+
return decode_varint64(d, ptr, &val);
|
767
|
+
}
|
768
|
+
case kUpb_WireType_64Bit:
|
769
|
+
return ptr + 8;
|
770
|
+
case kUpb_WireType_32Bit:
|
771
|
+
return ptr + 4;
|
772
|
+
case kUpb_WireType_Delimited: {
|
773
|
+
uint32_t size;
|
774
|
+
ptr = upb_Decoder_DecodeSize(d, ptr, &size);
|
775
|
+
return ptr + size;
|
776
|
+
}
|
777
|
+
case kUpb_WireType_StartGroup:
|
778
|
+
return decode_group(d, ptr, NULL, NULL, field_number);
|
779
|
+
default:
|
780
|
+
decode_err(d, kUpb_DecodeStatus_Malformed);
|
781
|
+
}
|
782
|
+
}
|
783
|
+
|
784
|
+
enum {
|
785
|
+
kStartItemTag = ((1 << 3) | kUpb_WireType_StartGroup),
|
786
|
+
kEndItemTag = ((1 << 3) | kUpb_WireType_EndGroup),
|
787
|
+
kTypeIdTag = ((2 << 3) | kUpb_WireType_Varint),
|
788
|
+
kMessageTag = ((3 << 3) | kUpb_WireType_Delimited),
|
789
|
+
};
|
790
|
+
|
791
|
+
static void upb_Decoder_AddKnownMessageSetItem(
|
792
|
+
upb_Decoder* d, upb_Message* msg, const upb_MiniTable_Extension* item_mt,
|
793
|
+
const char* data, uint32_t size) {
|
794
|
+
upb_Message_Extension* ext =
|
795
|
+
_upb_Message_GetOrCreateExtension(msg, item_mt, &d->arena);
|
796
|
+
if (UPB_UNLIKELY(!ext)) decode_err(d, kUpb_DecodeStatus_OutOfMemory);
|
797
|
+
upb_Message* submsg = decode_newsubmsg(d, &ext->ext->sub, &ext->ext->field);
|
798
|
+
upb_DecodeStatus status = upb_Decode(data, size, submsg, item_mt->sub.submsg,
|
799
|
+
d->extreg, d->options, &d->arena);
|
800
|
+
memcpy(&ext->data, &submsg, sizeof(submsg));
|
801
|
+
if (status != kUpb_DecodeStatus_Ok) decode_err(d, status);
|
802
|
+
}
|
803
|
+
|
804
|
+
static void upb_Decoder_AddUnknownMessageSetItem(upb_Decoder* d,
|
805
|
+
upb_Message* msg,
|
806
|
+
uint32_t type_id,
|
807
|
+
const char* message_data,
|
808
|
+
uint32_t message_size) {
|
809
|
+
char buf[60];
|
810
|
+
char* ptr = buf;
|
811
|
+
ptr = upb_Decoder_EncodeVarint32(kStartItemTag, ptr);
|
812
|
+
ptr = upb_Decoder_EncodeVarint32(kTypeIdTag, ptr);
|
813
|
+
ptr = upb_Decoder_EncodeVarint32(type_id, ptr);
|
814
|
+
ptr = upb_Decoder_EncodeVarint32(kMessageTag, ptr);
|
815
|
+
ptr = upb_Decoder_EncodeVarint32(message_size, ptr);
|
816
|
+
char* split = ptr;
|
817
|
+
|
818
|
+
ptr = upb_Decoder_EncodeVarint32(kEndItemTag, ptr);
|
819
|
+
char* end = ptr;
|
820
|
+
|
821
|
+
if (!_upb_Message_AddUnknown(msg, buf, split - buf, &d->arena) ||
|
822
|
+
!_upb_Message_AddUnknown(msg, message_data, message_size, &d->arena) ||
|
823
|
+
!_upb_Message_AddUnknown(msg, split, end - split, &d->arena)) {
|
824
|
+
decode_err(d, kUpb_DecodeStatus_OutOfMemory);
|
825
|
+
}
|
826
|
+
}
|
827
|
+
|
828
|
+
static void upb_Decoder_AddMessageSetItem(upb_Decoder* d, upb_Message* msg,
|
829
|
+
const upb_MiniTable* layout,
|
830
|
+
uint32_t type_id, const char* data,
|
831
|
+
uint32_t size) {
|
832
|
+
const upb_MiniTable_Extension* item_mt =
|
833
|
+
_upb_extreg_get(d->extreg, layout, type_id);
|
834
|
+
if (item_mt) {
|
835
|
+
upb_Decoder_AddKnownMessageSetItem(d, msg, item_mt, data, size);
|
836
|
+
} else {
|
837
|
+
upb_Decoder_AddUnknownMessageSetItem(d, msg, type_id, data, size);
|
838
|
+
}
|
839
|
+
}
|
840
|
+
|
841
|
+
static const char* upb_Decoder_DecodeMessageSetItem(
|
842
|
+
upb_Decoder* d, const char* ptr, upb_Message* msg,
|
843
|
+
const upb_MiniTable* layout) {
|
844
|
+
uint32_t type_id = 0;
|
845
|
+
upb_StringView preserved = {NULL, 0};
|
846
|
+
typedef enum {
|
847
|
+
kUpb_HaveId = 1 << 0,
|
848
|
+
kUpb_HavePayload = 1 << 1,
|
849
|
+
} StateMask;
|
850
|
+
StateMask state_mask = 0;
|
851
|
+
while (!decode_isdone(d, &ptr)) {
|
852
|
+
uint32_t tag;
|
853
|
+
ptr = decode_tag(d, ptr, &tag);
|
854
|
+
switch (tag) {
|
855
|
+
case kEndItemTag:
|
856
|
+
return ptr;
|
857
|
+
case kTypeIdTag: {
|
858
|
+
uint64_t tmp;
|
859
|
+
ptr = decode_varint64(d, ptr, &tmp);
|
860
|
+
if (state_mask & kUpb_HaveId) break; // Ignore dup.
|
861
|
+
state_mask |= kUpb_HaveId;
|
862
|
+
type_id = tmp;
|
863
|
+
if (state_mask & kUpb_HavePayload) {
|
864
|
+
upb_Decoder_AddMessageSetItem(d, msg, layout, type_id, preserved.data,
|
865
|
+
preserved.size);
|
866
|
+
}
|
867
|
+
break;
|
868
|
+
}
|
869
|
+
case kMessageTag: {
|
870
|
+
uint32_t size;
|
871
|
+
ptr = upb_Decoder_DecodeSize(d, ptr, &size);
|
872
|
+
const char* data = ptr;
|
873
|
+
ptr += size;
|
874
|
+
if (state_mask & kUpb_HavePayload) break; // Ignore dup.
|
875
|
+
state_mask |= kUpb_HavePayload;
|
876
|
+
if (state_mask & kUpb_HaveId) {
|
877
|
+
upb_Decoder_AddMessageSetItem(d, msg, layout, type_id, data, size);
|
878
|
+
} else {
|
879
|
+
// Out of order, we must preserve the payload.
|
880
|
+
preserved.data = data;
|
881
|
+
preserved.size = size;
|
882
|
+
}
|
883
|
+
break;
|
884
|
+
}
|
885
|
+
default:
|
886
|
+
// We do not preserve unexpected fields inside a message set item.
|
887
|
+
ptr = upb_Decoder_SkipField(d, ptr, tag);
|
888
|
+
break;
|
889
|
+
}
|
890
|
+
}
|
891
|
+
decode_err(d, kUpb_DecodeStatus_Malformed);
|
765
892
|
}
|
766
893
|
|
767
894
|
static const upb_MiniTable_Field* decode_findfield(upb_Decoder* d,
|
@@ -808,26 +935,6 @@ static const upb_MiniTable_Field* decode_findfield(upb_Decoder* d,
|
|
808
935
|
return &item;
|
809
936
|
}
|
810
937
|
break;
|
811
|
-
case kUpb_ExtMode_IsMessageSet_ITEM:
|
812
|
-
switch (field_number) {
|
813
|
-
case _UPB_MSGSET_TYPEID: {
|
814
|
-
static upb_MiniTable_Field type_id = {
|
815
|
-
0, 0, 0, 0, TYPE_MSGSET_TYPE_ID, 0};
|
816
|
-
return &type_id;
|
817
|
-
}
|
818
|
-
case _UPB_MSGSET_MESSAGE:
|
819
|
-
if (l->fields) {
|
820
|
-
// We saw type_id previously and succeeded in looking up msg.
|
821
|
-
return l->fields;
|
822
|
-
} else {
|
823
|
-
// TODO: out of order MessageSet.
|
824
|
-
// This is a very rare case: all serializers will emit in-order
|
825
|
-
// MessageSets. To hit this case there has to be some kind of
|
826
|
-
// re-ordering proxy. We should eventually handle this case, but
|
827
|
-
// not today.
|
828
|
-
}
|
829
|
-
break;
|
830
|
-
}
|
831
938
|
}
|
832
939
|
}
|
833
940
|
|
@@ -867,14 +974,9 @@ static const char* decode_wireval(upb_Decoder* d, const char* ptr,
|
|
867
974
|
return ptr + 8;
|
868
975
|
case kUpb_WireType_Delimited: {
|
869
976
|
int ndx = field->descriptortype;
|
870
|
-
uint64_t size;
|
871
977
|
if (upb_FieldMode_Get(field) == kUpb_FieldMode_Array) ndx += TYPE_COUNT;
|
872
|
-
ptr =
|
873
|
-
if (size >= INT32_MAX || ptr - d->end + (int32_t)size > d->limit) {
|
874
|
-
break; /* Length overflow. */
|
875
|
-
}
|
978
|
+
ptr = upb_Decoder_DecodeSize(d, ptr, &val->size);
|
876
979
|
*op = delim_ops[ndx];
|
877
|
-
val->size = size;
|
878
980
|
return ptr;
|
879
981
|
}
|
880
982
|
case kUpb_WireType_StartGroup:
|
@@ -905,7 +1007,7 @@ static const char* decode_known(upb_Decoder* d, const char* ptr,
|
|
905
1007
|
const upb_MiniTable_Extension* ext_layout =
|
906
1008
|
(const upb_MiniTable_Extension*)field;
|
907
1009
|
upb_Message_Extension* ext =
|
908
|
-
|
1010
|
+
_upb_Message_GetOrCreateExtension(msg, ext_layout, &d->arena);
|
909
1011
|
if (UPB_UNLIKELY(!ext)) return decode_err(d, kUpb_DecodeStatus_OutOfMemory);
|
910
1012
|
msg = &ext->data;
|
911
1013
|
subs = &ext->ext->sub;
|
@@ -1038,14 +1140,8 @@ static const char* decode_msg(upb_Decoder* d, const char* ptr, upb_Message* msg,
|
|
1038
1140
|
ptr = decode_unknown(d, ptr, msg, field_number, wire_type, val);
|
1039
1141
|
break;
|
1040
1142
|
case OP_MSGSET_ITEM:
|
1041
|
-
ptr =
|
1042
|
-
break;
|
1043
|
-
case OP_MSGSET_TYPEID: {
|
1044
|
-
const upb_MiniTable_Extension* ext = _upb_extreg_get(
|
1045
|
-
d->extreg, layout->subs[0].submsg, val.uint64_val);
|
1046
|
-
if (ext) ((upb_MiniTable*)layout)->fields = &ext->field;
|
1143
|
+
ptr = upb_Decoder_DecodeMessageSetItem(d, ptr, msg, layout);
|
1047
1144
|
break;
|
1048
|
-
}
|
1049
1145
|
}
|
1050
1146
|
}
|
1051
1147
|
}
|
data/third_party/upb/upb/def.c
CHANGED
@@ -34,6 +34,7 @@
|
|
34
34
|
#include <string.h>
|
35
35
|
|
36
36
|
#include "google/protobuf/descriptor.upb.h"
|
37
|
+
#include "upb/mini_table.h"
|
37
38
|
#include "upb/reflection.h"
|
38
39
|
|
39
40
|
/* Must be last. */
|
@@ -648,6 +649,14 @@ bool upb_FieldDef_IsString(const upb_FieldDef* f) {
|
|
648
649
|
upb_FieldDef_CType(f) == kUpb_CType_Bytes;
|
649
650
|
}
|
650
651
|
|
652
|
+
bool upb_FieldDef_IsOptional(const upb_FieldDef* f) {
|
653
|
+
return upb_FieldDef_Label(f) == kUpb_Label_Optional;
|
654
|
+
}
|
655
|
+
|
656
|
+
bool upb_FieldDef_IsRequired(const upb_FieldDef* f) {
|
657
|
+
return upb_FieldDef_Label(f) == kUpb_Label_Required;
|
658
|
+
}
|
659
|
+
|
651
660
|
bool upb_FieldDef_IsRepeated(const upb_FieldDef* f) {
|
652
661
|
return upb_FieldDef_Label(f) == kUpb_Label_Repeated;
|
653
662
|
}
|
@@ -2338,8 +2347,7 @@ static void create_fielddef(
|
|
2338
2347
|
}
|
2339
2348
|
|
2340
2349
|
if (google_protobuf_FieldDescriptorProto_has_oneof_index(field_proto)) {
|
2341
|
-
|
2342
|
-
google_protobuf_FieldDescriptorProto_oneof_index(field_proto);
|
2350
|
+
uint32_t oneof_index = google_protobuf_FieldDescriptorProto_oneof_index(field_proto);
|
2343
2351
|
upb_OneofDef* oneof;
|
2344
2352
|
upb_value v = upb_value_constptr(f);
|
2345
2353
|
|
data/third_party/upb/upb/def.h
CHANGED
@@ -29,7 +29,7 @@
|
|
29
29
|
#define UPB_DEF_H_
|
30
30
|
|
31
31
|
#include "google/protobuf/descriptor.upb.h"
|
32
|
-
#include "upb/
|
32
|
+
#include "upb/internal/table.h"
|
33
33
|
#include "upb/upb.h"
|
34
34
|
|
35
35
|
/* Must be last. */
|
@@ -116,6 +116,8 @@ const upb_OneofDef* upb_FieldDef_RealContainingOneof(const upb_FieldDef* f);
|
|
116
116
|
uint32_t upb_FieldDef_Index(const upb_FieldDef* f);
|
117
117
|
bool upb_FieldDef_IsSubMessage(const upb_FieldDef* f);
|
118
118
|
bool upb_FieldDef_IsString(const upb_FieldDef* f);
|
119
|
+
bool upb_FieldDef_IsOptional(const upb_FieldDef* f);
|
120
|
+
bool upb_FieldDef_IsRequired(const upb_FieldDef* f);
|
119
121
|
bool upb_FieldDef_IsRepeated(const upb_FieldDef* f);
|
120
122
|
bool upb_FieldDef_IsPrimitive(const upb_FieldDef* f);
|
121
123
|
bool upb_FieldDef_IsMap(const upb_FieldDef* f);
|
@@ -210,6 +212,11 @@ UPB_INLINE bool upb_MessageDef_IsMapEntry(const upb_MessageDef* m) {
|
|
210
212
|
return google_protobuf_MessageOptions_map_entry(upb_MessageDef_Options(m));
|
211
213
|
}
|
212
214
|
|
215
|
+
UPB_INLINE bool upb_MessageDef_IsMessageSet(const upb_MessageDef* m) {
|
216
|
+
return google_protobuf_MessageOptions_message_set_wire_format(
|
217
|
+
upb_MessageDef_Options(m));
|
218
|
+
}
|
219
|
+
|
213
220
|
/* Nested entities. */
|
214
221
|
int upb_MessageDef_NestedMessageCount(const upb_MessageDef* m);
|
215
222
|
int upb_MessageDef_NestedEnumCount(const upb_MessageDef* m);
|
data/third_party/upb/upb/def.hpp
CHANGED
@@ -373,11 +373,11 @@ class FileDefPtr {
|
|
373
373
|
const upb_FileDef* ptr_;
|
374
374
|
};
|
375
375
|
|
376
|
-
// Non-const methods in upb::
|
377
|
-
class
|
376
|
+
// Non-const methods in upb::DefPool are NOT thread-safe.
|
377
|
+
class DefPool {
|
378
378
|
public:
|
379
|
-
|
380
|
-
explicit
|
379
|
+
DefPool() : ptr_(upb_DefPool_New(), upb_DefPool_Free) {}
|
380
|
+
explicit DefPool(upb_DefPool* s) : ptr_(s, upb_DefPool_Free) {}
|
381
381
|
|
382
382
|
const upb_DefPool* ptr() const { return ptr_.get(); }
|
383
383
|
upb_DefPool* ptr() { return ptr_.get(); }
|
@@ -409,6 +409,9 @@ class SymbolTable {
|
|
409
409
|
std::unique_ptr<upb_DefPool, decltype(&upb_DefPool_Free)> ptr_;
|
410
410
|
};
|
411
411
|
|
412
|
+
// TODO(b/236632406): This typedef is deprecated. Delete it.
|
413
|
+
using SymbolTable = DefPool;
|
414
|
+
|
412
415
|
inline FileDefPtr MessageDefPtr::file() const {
|
413
416
|
return FileDefPtr(upb_MessageDef_File(ptr_));
|
414
417
|
}
|
@@ -32,6 +32,7 @@
|
|
32
32
|
#include <setjmp.h>
|
33
33
|
#include <string.h>
|
34
34
|
|
35
|
+
#include "upb/extension_registry.h"
|
35
36
|
#include "upb/msg_internal.h"
|
36
37
|
#include "upb/upb.h"
|
37
38
|
|
@@ -76,7 +77,9 @@ static size_t upb_roundup_pow2(size_t bytes) {
|
|
76
77
|
return ret;
|
77
78
|
}
|
78
79
|
|
79
|
-
UPB_NORETURN static void encode_err(upb_encstate* e
|
80
|
+
UPB_NORETURN static void encode_err(upb_encstate* e, upb_EncodeStatus s) {
|
81
|
+
UPB_LONGJMP(e->err, s);
|
82
|
+
}
|
80
83
|
|
81
84
|
UPB_NOINLINE
|
82
85
|
static void encode_growbuffer(upb_encstate* e, size_t bytes) {
|
@@ -84,7 +87,7 @@ static void encode_growbuffer(upb_encstate* e, size_t bytes) {
|
|
84
87
|
size_t new_size = upb_roundup_pow2(bytes + (e->limit - e->ptr));
|
85
88
|
char* new_buf = upb_realloc(e->alloc, e->buf, old_size, new_size);
|
86
89
|
|
87
|
-
if (!new_buf) encode_err(e);
|
90
|
+
if (!new_buf) encode_err(e, kUpb_EncodeStatus_OutOfMemory);
|
88
91
|
|
89
92
|
/* We want previous data at the end, realloc() put it at the beginning. */
|
90
93
|
if (old_size > 0) {
|
@@ -255,7 +258,7 @@ static void encode_scalar(upb_encstate* e, const void* _field_mem,
|
|
255
258
|
if (submsg == NULL) {
|
256
259
|
return;
|
257
260
|
}
|
258
|
-
if (--e->depth == 0) encode_err(e);
|
261
|
+
if (--e->depth == 0) encode_err(e, kUpb_EncodeStatus_MaxDepthExceeded);
|
259
262
|
encode_tag(e, f->number, kUpb_WireType_EndGroup);
|
260
263
|
encode_message(e, submsg, subm, &size);
|
261
264
|
wire_type = kUpb_WireType_StartGroup;
|
@@ -269,7 +272,7 @@ static void encode_scalar(upb_encstate* e, const void* _field_mem,
|
|
269
272
|
if (submsg == NULL) {
|
270
273
|
return;
|
271
274
|
}
|
272
|
-
if (--e->depth == 0) encode_err(e);
|
275
|
+
if (--e->depth == 0) encode_err(e, kUpb_EncodeStatus_MaxDepthExceeded);
|
273
276
|
encode_message(e, submsg, subm, &size);
|
274
277
|
encode_varint(e, size);
|
275
278
|
wire_type = kUpb_WireType_Delimited;
|
@@ -355,7 +358,7 @@ static void encode_array(upb_encstate* e, const upb_Message* msg,
|
|
355
358
|
const void* const* start = _upb_array_constptr(arr);
|
356
359
|
const void* const* ptr = start + arr->len;
|
357
360
|
const upb_MiniTable* subm = subs[f->submsg_index].submsg;
|
358
|
-
if (--e->depth == 0) encode_err(e);
|
361
|
+
if (--e->depth == 0) encode_err(e, kUpb_EncodeStatus_MaxDepthExceeded);
|
359
362
|
do {
|
360
363
|
size_t size;
|
361
364
|
ptr--;
|
@@ -370,7 +373,7 @@ static void encode_array(upb_encstate* e, const upb_Message* msg,
|
|
370
373
|
const void* const* start = _upb_array_constptr(arr);
|
371
374
|
const void* const* ptr = start + arr->len;
|
372
375
|
const upb_MiniTable* subm = subs[f->submsg_index].submsg;
|
373
|
-
if (--e->depth == 0) encode_err(e);
|
376
|
+
if (--e->depth == 0) encode_err(e, kUpb_EncodeStatus_MaxDepthExceeded);
|
374
377
|
do {
|
375
378
|
size_t size;
|
376
379
|
ptr--;
|
@@ -413,7 +416,7 @@ static void encode_map(upb_encstate* e, const upb_Message* msg,
|
|
413
416
|
|
414
417
|
if (map == NULL) return;
|
415
418
|
|
416
|
-
if (e->options &
|
419
|
+
if (e->options & kUpb_EncodeOption_Deterministic) {
|
417
420
|
_upb_sortedmap sorted;
|
418
421
|
_upb_mapsorter_pushmap(&e->sorter, layout->fields[0].descriptortype, map,
|
419
422
|
&sorted);
|
@@ -520,16 +523,16 @@ static void encode_message(upb_encstate* e, const upb_Message* msg,
|
|
520
523
|
const upb_MiniTable* m, size_t* size) {
|
521
524
|
size_t pre_len = e->limit - e->ptr;
|
522
525
|
|
523
|
-
if ((e->options &
|
526
|
+
if ((e->options & kUpb_EncodeOption_CheckRequired) && m->required_count) {
|
524
527
|
uint64_t msg_head;
|
525
528
|
memcpy(&msg_head, msg, 8);
|
526
529
|
msg_head = _upb_BigEndian_Swap64(msg_head);
|
527
530
|
if (upb_MiniTable_requiredmask(m) & ~msg_head) {
|
528
|
-
encode_err(e);
|
531
|
+
encode_err(e, kUpb_EncodeStatus_MissingRequired);
|
529
532
|
}
|
530
533
|
}
|
531
534
|
|
532
|
-
if ((e->options &
|
535
|
+
if ((e->options & kUpb_EncodeOption_SkipUnknown) == 0) {
|
533
536
|
size_t unknown_size;
|
534
537
|
const char* unknown = upb_Message_GetUnknown(msg, &unknown_size);
|
535
538
|
|
@@ -570,8 +573,9 @@ static void encode_message(upb_encstate* e, const upb_Message* msg,
|
|
570
573
|
*size = (e->limit - e->ptr) - pre_len;
|
571
574
|
}
|
572
575
|
|
573
|
-
|
574
|
-
|
576
|
+
upb_EncodeStatus upb_Encode(const void* msg, const upb_MiniTable* l,
|
577
|
+
int options, upb_Arena* arena, char** buf,
|
578
|
+
size_t* size) {
|
575
579
|
upb_encstate e;
|
576
580
|
unsigned depth = (unsigned)options >> 16;
|
577
581
|
|
@@ -582,23 +586,28 @@ char* upb_Encode(const void* msg, const upb_MiniTable* l, int options,
|
|
582
586
|
e.depth = depth ? depth : 64;
|
583
587
|
e.options = options;
|
584
588
|
_upb_mapsorter_init(&e.sorter);
|
585
|
-
char* ret = NULL;
|
586
589
|
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
590
|
+
upb_EncodeStatus status = UPB_SETJMP(e.err);
|
591
|
+
|
592
|
+
// Unfortunately we must continue to perform hackery here because there are
|
593
|
+
// code paths which blindly copy the returned pointer without bothering to
|
594
|
+
// check for errors until much later (b/235839510). So we still set *buf to
|
595
|
+
// NULL on error and we still set it to non-NULL on a successful empty result.
|
596
|
+
if (status == kUpb_EncodeStatus_Ok) {
|
591
597
|
encode_message(&e, msg, l, size);
|
592
598
|
*size = e.limit - e.ptr;
|
593
599
|
if (*size == 0) {
|
594
600
|
static char ch;
|
595
|
-
|
601
|
+
*buf = &ch;
|
596
602
|
} else {
|
597
603
|
UPB_ASSERT(e.ptr);
|
598
|
-
|
604
|
+
*buf = e.ptr;
|
599
605
|
}
|
606
|
+
} else {
|
607
|
+
*buf = NULL;
|
608
|
+
*size = 0;
|
600
609
|
}
|
601
610
|
|
602
611
|
_upb_mapsorter_destroy(&e.sorter);
|
603
|
-
return
|
612
|
+
return status;
|
604
613
|
}
|
@@ -26,7 +26,7 @@
|
|
26
26
|
*/
|
27
27
|
|
28
28
|
/*
|
29
|
-
* upb_Encode: parsing
|
29
|
+
* upb_Encode: parsing from a upb_Message using a upb_MiniTable.
|
30
30
|
*/
|
31
31
|
|
32
32
|
#ifndef UPB_ENCODE_H_
|
@@ -48,19 +48,29 @@ enum {
|
|
48
48
|
*
|
49
49
|
* If your proto contains maps, the encoder will need to malloc()/free()
|
50
50
|
* memory during encode. */
|
51
|
-
|
51
|
+
kUpb_EncodeOption_Deterministic = 1,
|
52
52
|
|
53
53
|
/* When set, unknown fields are not printed. */
|
54
|
-
|
54
|
+
kUpb_EncodeOption_SkipUnknown = 2,
|
55
55
|
|
56
56
|
/* When set, the encode will fail if any required fields are missing. */
|
57
|
-
|
57
|
+
kUpb_EncodeOption_CheckRequired = 4,
|
58
58
|
};
|
59
59
|
|
60
60
|
#define UPB_ENCODE_MAXDEPTH(depth) ((depth) << 16)
|
61
61
|
|
62
|
-
|
63
|
-
|
62
|
+
typedef enum {
|
63
|
+
kUpb_EncodeStatus_Ok = 0,
|
64
|
+
kUpb_EncodeStatus_OutOfMemory = 1, // Arena alloc failed
|
65
|
+
kUpb_EncodeStatus_MaxDepthExceeded = 2, // Exceeded UPB_ENCODE_MAXDEPTH
|
66
|
+
|
67
|
+
// kUpb_EncodeOption_CheckRequired failed but the parse otherwise succeeded.
|
68
|
+
kUpb_EncodeStatus_MissingRequired = 3,
|
69
|
+
} upb_EncodeStatus;
|
70
|
+
|
71
|
+
upb_EncodeStatus upb_Encode(const void* msg, const upb_MiniTable* l,
|
72
|
+
int options, upb_Arena* arena, char** buf,
|
73
|
+
size_t* size);
|
64
74
|
|
65
75
|
#include "upb/port_undef.inc"
|
66
76
|
|