grpc 1.42.0 → 1.43.1
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 +85 -34
- data/include/grpc/event_engine/event_engine.h +37 -13
- data/include/grpc/event_engine/internal/memory_allocator_impl.h +1 -31
- data/include/grpc/event_engine/memory_allocator.h +27 -11
- data/include/grpc/event_engine/memory_request.h +57 -0
- data/include/grpc/grpc_security.h +276 -145
- data/include/grpc/grpc_security_constants.h +1 -14
- data/include/grpc/impl/codegen/port_platform.h +7 -3
- data/src/core/ext/filters/client_channel/backend_metric.cc +6 -7
- data/src/core/ext/filters/client_channel/backend_metric.h +3 -2
- data/src/core/ext/filters/client_channel/client_channel.cc +81 -40
- data/src/core/ext/filters/client_channel/client_channel.h +5 -4
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -2
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +4 -4
- data/src/core/ext/filters/client_channel/health/health_check_client.h +1 -1
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +12 -14
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +2 -3
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +27 -80
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +82 -34
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +47 -91
- data/src/core/ext/filters/client_channel/lb_policy.h +75 -59
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +8 -12
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +6 -12
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +222 -294
- data/src/core/ext/filters/client_channel/resolver_registry.cc +6 -7
- data/src/core/ext/filters/client_channel/resolver_registry.h +1 -2
- data/src/core/ext/filters/client_channel/subchannel.cc +4 -4
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +14 -30
- data/src/core/ext/filters/http/http_filters_plugin.cc +3 -5
- data/src/core/ext/filters/http/server/http_server_filter.cc +11 -28
- data/src/core/ext/filters/server_config_selector/server_config_selector.cc +67 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +70 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +265 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +32 -0
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +4 -20
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +8 -5
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +11 -14
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +6 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +54 -79
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +2 -3
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +9 -13
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +6 -6
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +53 -62
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -2
- data/src/core/ext/transport/chttp2/transport/context_list.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/context_list.h +2 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/flow_control.h +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +83 -19
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +33 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +66 -92
- data/src/core/ext/transport/chttp2/transport/internal.h +8 -4
- data/src/core/ext/transport/inproc/inproc_transport.cc +16 -7
- data/src/core/ext/transport/inproc/inproc_transport.h +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +197 -165
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +41 -0
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +18 -0
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +26 -2
- 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 +107 -82
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +188 -160
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +35 -22
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +253 -218
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +16 -5
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +36 -25
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +56 -39
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +16 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +162 -128
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +51 -36
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +15 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +25 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +114 -90
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +89 -71
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +17 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +117 -93
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +13 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +21 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +18 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +22 -11
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +17 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +41 -27
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +59 -43
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +58 -43
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +15 -4
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +73 -57
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +81 -64
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +25 -14
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +19 -7
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +63 -45
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +66 -47
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +93 -75
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +41 -28
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +503 -440
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +26 -13
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +21 -9
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +13 -2
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +35 -20
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +44 -31
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +22 -11
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +210 -181
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +7 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +5 -3
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +64 -48
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +33 -20
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +81 -65
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +12 -1
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +12 -1
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +75 -58
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +12 -1
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +12 -1
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +25 -13
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +12 -1
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +12 -1
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +61 -46
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +26 -12
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +22 -10
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +17 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +16 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +15 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +27 -14
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +25 -13
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +20 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +30 -17
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +38 -21
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +41 -26
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +7 -0
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +17 -5
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +22 -9
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +2 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +15 -4
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +2 -0
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +20 -0
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +7 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +116 -93
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +2 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.c +102 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.h +306 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.c +56 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.h +135 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +122 -98
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +2 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.c +115 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.h +371 -0
- data/src/core/ext/upb-generated/google/api/http.upb.c +35 -22
- data/src/core/ext/upb-generated/google/api/http.upb.h +2 -0
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +14 -3
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +2 -0
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +247 -210
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +2 -0
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +14 -3
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +2 -0
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +12 -1
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +2 -0
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +37 -23
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +2 -0
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +14 -3
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +2 -0
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +37 -18
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +2 -0
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +17 -6
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +2 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +26 -14
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +2 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +105 -83
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +2 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +20 -8
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +2 -0
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +16 -4
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +2 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +65 -47
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +34 -36
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +26 -13
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +2 -0
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +67 -7
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +27 -0
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +27 -3
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -0
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +19 -0
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +7 -0
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +27 -3
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +7 -0
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +26 -2
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +320 -251
- data/src/core/ext/upb-generated/validate/validate.upb.h +20 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +54 -9
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +17 -0
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +13 -2
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +2 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +24 -12
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +2 -0
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +19 -7
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +2 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +18 -7
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +2 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +27 -15
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +2 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +18 -7
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +2 -0
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +28 -15
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +2 -0
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +16 -5
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +2 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +2 -49
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +2 -2
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +2 -35
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +2 -41
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +2 -55
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +2 -19
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +2 -53
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +2 -15
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +2 -33
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +2 -21
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +2 -33
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +2 -13
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +2 -17
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +2 -15
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +2 -17
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +2 -19
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +2 -21
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +2 -23
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +2 -111
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +2 -15
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +2 -43
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +2 -2
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +2 -17
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +2 -17
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +2 -19
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +2 -15
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +2 -13
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +2 -19
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +2 -15
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +2 -2
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +2 -2
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +2 -59
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +2 -13
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +2 -23
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +2 -11
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +2 -2
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +2 -51
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +2 -13
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +2 -9
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +2 -7
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +2 -7
- data/src/core/ext/xds/certificate_provider_registry.cc +1 -1
- data/src/core/ext/xds/certificate_provider_store.h +1 -1
- data/src/core/ext/xds/xds_api.cc +409 -304
- data/src/core/ext/xds/xds_api.h +3 -1
- data/src/core/ext/xds/xds_bootstrap.cc +6 -3
- data/src/core/ext/xds/xds_certificate_provider.h +1 -2
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +3 -4
- data/src/core/ext/xds/xds_client.cc +395 -291
- data/src/core/ext/xds/xds_client.h +47 -38
- data/src/core/ext/xds/xds_routing.cc +247 -0
- data/src/core/ext/xds/xds_routing.h +98 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +975 -261
- data/src/core/lib/avl/avl.h +389 -88
- data/src/core/lib/backoff/backoff.cc +2 -2
- data/src/core/lib/channel/channel_args.cc +17 -17
- data/src/core/lib/channel/channel_args.h +11 -10
- data/src/core/lib/channel/channel_args_preconditioning.cc +47 -0
- data/src/core/lib/channel/channel_args_preconditioning.h +62 -0
- data/src/core/lib/channel/channel_stack_builder.cc +0 -2
- data/src/core/lib/channel/channel_trace.cc +6 -6
- data/src/core/lib/channel/channelz.cc +1 -1
- data/src/core/lib/compression/compression_args.cc +7 -5
- data/src/core/lib/compression/compression_args.h +6 -4
- data/src/core/lib/config/core_configuration.cc +3 -1
- data/src/core/lib/config/core_configuration.h +11 -0
- data/src/core/lib/debug/trace.h +2 -2
- data/src/core/lib/event_engine/{endpoint_config.cc → channel_args_endpoint_config.cc} +2 -1
- data/src/core/lib/event_engine/{endpoint_config_internal.h → channel_args_endpoint_config.h} +3 -3
- data/src/core/lib/event_engine/event_engine.cc +0 -13
- data/src/core/lib/event_engine/event_engine_factory.cc +49 -0
- data/src/core/lib/event_engine/event_engine_factory.h +33 -0
- data/src/core/lib/event_engine/memory_allocator.cc +70 -0
- data/src/core/lib/gpr/tls.h +6 -0
- data/src/core/lib/gprpp/cpp_impl_of.h +45 -0
- data/src/core/lib/gprpp/global_config_env.cc +7 -7
- data/src/core/lib/gprpp/global_config_env.h +2 -2
- data/src/core/lib/gprpp/manual_constructor.h +2 -3
- data/src/core/lib/gprpp/orphanable.h +1 -1
- data/src/core/lib/gprpp/ref_counted.h +1 -1
- data/src/core/lib/gprpp/ref_counted_ptr.h +2 -4
- data/src/core/lib/gprpp/status_helper.h +1 -1
- data/src/core/lib/gprpp/table.h +13 -1
- data/src/core/lib/http/httpcli.cc +30 -26
- data/src/core/lib/http/httpcli.h +14 -12
- data/src/core/lib/iomgr/buffer_list.cc +9 -9
- data/src/core/lib/iomgr/buffer_list.h +13 -13
- data/src/core/lib/iomgr/call_combiner.cc +2 -3
- data/src/core/lib/iomgr/endpoint.h +0 -1
- data/src/core/lib/iomgr/endpoint_cfstream.cc +7 -24
- data/src/core/lib/iomgr/endpoint_cfstream.h +4 -4
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +9 -11
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -14
- data/src/core/lib/iomgr/event_engine/endpoint.cc +2 -3
- data/src/core/lib/iomgr/event_engine/iomgr.cc +5 -25
- data/src/core/lib/iomgr/event_engine/resolver.cc +3 -2
- data/src/core/lib/iomgr/event_engine/tcp.cc +7 -5
- data/src/core/lib/iomgr/event_engine/timer.cc +4 -3
- data/src/core/lib/iomgr/exec_ctx.h +11 -11
- data/src/core/lib/iomgr/executor.cc +12 -15
- data/src/core/lib/iomgr/executor.h +1 -1
- data/src/core/lib/iomgr/tcp_client.cc +2 -4
- data/src/core/lib/iomgr/tcp_client.h +1 -3
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +1 -9
- data/src/core/lib/iomgr/tcp_client_custom.cc +4 -10
- data/src/core/lib/iomgr/tcp_client_posix.cc +7 -23
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +1 -10
- data/src/core/lib/iomgr/tcp_custom.cc +9 -36
- data/src/core/lib/iomgr/tcp_custom.h +0 -1
- data/src/core/lib/iomgr/tcp_posix.cc +28 -33
- data/src/core/lib/iomgr/tcp_posix.h +1 -3
- data/src/core/lib/iomgr/tcp_server.cc +4 -6
- data/src/core/lib/iomgr/tcp_server.h +6 -8
- data/src/core/lib/iomgr/tcp_server_custom.cc +5 -15
- data/src/core/lib/iomgr/tcp_server_posix.cc +18 -22
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +19 -18
- data/src/core/lib/iomgr/tcp_server_windows.cc +5 -12
- data/src/core/lib/iomgr/tcp_windows.cc +2 -7
- data/src/core/lib/iomgr/tcp_windows.h +1 -2
- data/src/core/lib/iomgr/unix_sockets_posix.cc +1 -1
- data/src/core/lib/iomgr/unix_sockets_posix.h +1 -1
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +1 -1
- data/src/core/lib/iomgr/work_serializer.cc +115 -44
- data/src/core/lib/iomgr/work_serializer.h +16 -4
- data/src/core/lib/json/json_reader.cc +83 -35
- data/src/core/lib/json/json_util.cc +1 -1
- data/src/core/lib/promise/activity.cc +115 -0
- data/src/core/lib/promise/activity.h +499 -0
- data/src/core/lib/promise/context.h +86 -0
- data/src/core/lib/promise/detail/basic_seq.h +407 -0
- data/src/core/lib/promise/detail/promise_factory.h +189 -0
- data/src/core/lib/promise/detail/promise_like.h +85 -0
- data/src/core/lib/promise/detail/status.h +44 -0
- data/src/core/lib/promise/detail/switch.h +1455 -0
- data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +48 -0
- data/src/core/lib/promise/loop.h +108 -0
- data/src/core/lib/promise/map.h +88 -0
- data/src/core/lib/promise/poll.h +60 -0
- data/src/core/lib/promise/race.h +84 -0
- data/src/core/lib/promise/seq.h +71 -0
- data/src/core/lib/resource_quota/api.cc +108 -0
- data/src/core/lib/resource_quota/api.h +41 -0
- data/src/core/lib/resource_quota/memory_quota.cc +454 -0
- data/src/core/lib/resource_quota/memory_quota.h +421 -0
- data/src/core/lib/resource_quota/resource_quota.cc +33 -0
- data/src/core/lib/resource_quota/resource_quota.h +58 -0
- data/src/core/lib/resource_quota/thread_quota.cc +43 -0
- data/src/core/lib/resource_quota/thread_quota.h +57 -0
- data/src/core/lib/resource_quota/trace.cc +19 -0
- data/src/core/lib/resource_quota/trace.h +24 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +13 -19
- data/src/core/lib/security/authorization/evaluate_args.h +2 -1
- data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +3 -1
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +11 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +9 -10
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +3 -4
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +4 -6
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +4 -6
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +18 -22
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +11 -12
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +7 -8
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +201 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +106 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +11 -90
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +19 -82
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +21 -10
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +28 -33
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +3 -4
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +7 -7
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -2
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +4 -1
- data/src/core/lib/security/security_connector/ssl_utils.cc +10 -2
- data/src/core/lib/security/security_connector/ssl_utils.h +1 -1
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +344 -195
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +64 -41
- data/src/core/lib/security/transport/security_handshaker.cc +2 -2
- data/src/core/lib/slice/percent_encoding.cc +30 -86
- data/src/core/lib/slice/percent_encoding.h +5 -11
- data/src/core/lib/slice/slice.cc +7 -7
- data/src/core/lib/slice/slice.h +341 -0
- data/src/core/lib/slice/slice_buffer.cc +4 -0
- data/src/core/lib/slice/slice_intern.cc +1 -1
- data/src/core/lib/slice/slice_refcount.h +5 -1
- data/src/core/lib/slice/slice_refcount_base.h +19 -11
- data/src/core/lib/slice/static_slice.cc +331 -483
- data/src/core/lib/slice/static_slice.h +101 -132
- data/src/core/lib/surface/builtins.cc +1 -1
- data/src/core/lib/surface/call.cc +85 -59
- data/src/core/lib/surface/channel.cc +4 -29
- data/src/core/lib/surface/channel.h +2 -12
- data/src/core/lib/surface/completion_queue.cc +2 -2
- data/src/core/lib/surface/init.cc +0 -1
- data/src/core/lib/surface/lame_client.cc +24 -17
- data/src/core/lib/surface/server.cc +22 -22
- data/src/core/lib/surface/server.h +8 -9
- data/src/core/lib/surface/validate_metadata.cc +2 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +1 -1
- data/src/core/lib/transport/byte_stream.cc +4 -0
- data/src/core/lib/transport/metadata.h +4 -4
- data/src/core/lib/transport/metadata_batch.cc +5 -0
- data/src/core/lib/transport/metadata_batch.h +174 -99
- data/src/core/lib/transport/parsed_metadata.cc +35 -0
- data/src/core/lib/transport/parsed_metadata.h +180 -61
- data/src/core/lib/transport/pid_controller.cc +4 -4
- data/src/core/lib/transport/static_metadata.cc +529 -614
- data/src/core/lib/transport/static_metadata.h +0 -18
- data/src/core/lib/transport/transport.cc +4 -26
- data/src/core/lib/transport/transport.h +0 -1
- data/src/core/lib/transport/transport_op_string.cc +1 -1
- data/src/core/lib/uri/uri_parser.cc +19 -19
- data/src/core/lib/uri/uri_parser.h +2 -0
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
- data/src/core/tsi/local_transport_security.cc +15 -15
- data/src/core/tsi/ssl_transport_security.cc +30 -1
- data/src/core/tsi/ssl_transport_security.h +1 -0
- data/src/ruby/ext/grpc/extconf.rb +1 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -10
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +9 -15
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/abseil-cpp/absl/algorithm/container.h +101 -91
- data/third_party/abseil-cpp/absl/base/attributes.h +64 -31
- data/third_party/abseil-cpp/absl/base/config.h +67 -37
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +1 -26
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -1
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +2 -0
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +69 -0
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +4 -4
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +16 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +4 -4
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +0 -5
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +105 -97
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +17 -15
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +18 -102
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +37 -78
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +388 -423
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +3 -2
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -8
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +251 -120
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +11 -1
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +12 -11
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +6 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +12 -5
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +110 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +234 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +25 -7
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +8 -2
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +21 -3
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +2 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +2 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +14 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +72 -0
- data/third_party/abseil-cpp/absl/functional/function_ref.h +4 -1
- data/third_party/abseil-cpp/absl/hash/hash.h +22 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +15 -16
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +88 -37
- data/third_party/abseil-cpp/absl/hash/internal/{wyhash.cc → low_level_hash.cc} +23 -11
- data/third_party/abseil-cpp/absl/hash/internal/{wyhash.h → low_level_hash.h} +14 -12
- data/third_party/abseil-cpp/absl/memory/memory.h +1 -1
- data/third_party/abseil-cpp/absl/meta/type_traits.h +32 -2
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -10
- data/third_party/abseil-cpp/absl/numeric/int128.h +146 -73
- data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +19 -25
- data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +73 -70
- data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.cc +4 -4
- data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.h +6 -6
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +230 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +5 -5
- data/third_party/abseil-cpp/absl/status/status.cc +9 -17
- data/third_party/abseil-cpp/absl/status/status.h +19 -15
- data/third_party/abseil-cpp/absl/status/statusor.cc +34 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +31 -21
- data/third_party/abseil-cpp/absl/strings/charconv.cc +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.h +3 -2
- data/third_party/abseil-cpp/absl/strings/cord.cc +453 -359
- data/third_party/abseil-cpp/absl/strings/cord.h +197 -70
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +6 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +140 -63
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +1128 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +939 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +185 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +265 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +68 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +211 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +129 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +50 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +7 -7
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +55 -181
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +42 -24
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +4 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +96 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +85 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +139 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +131 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +445 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +298 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +87 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h +71 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +121 -0
- data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +48 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +8 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +3 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +62 -73
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +24 -16
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +35 -35
- data/third_party/abseil-cpp/absl/strings/numbers.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/numbers.h +34 -0
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/str_format.h +1 -2
- data/third_party/abseil-cpp/absl/strings/string_view.cc +16 -21
- data/third_party/abseil-cpp/absl/strings/string_view.h +120 -39
- data/third_party/abseil-cpp/absl/strings/substitute.cc +2 -1
- data/third_party/abseil-cpp/absl/strings/substitute.h +99 -74
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +25 -15
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +5 -3
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -1
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +3 -3
- data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -3
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +93 -20
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +2 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +83 -21
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +49 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -3
- data/third_party/abseil-cpp/absl/time/time.h +67 -36
- data/third_party/abseil-cpp/absl/types/bad_optional_access.h +1 -1
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +2 -2
- data/third_party/abseil-cpp/absl/types/span.h +3 -3
- data/third_party/boringssl-with-bazel/err_data.c +681 -677
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +19 -11
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +41 -30
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +59 -47
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +24 -28
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +28 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +48 -272
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +8 -6
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +3 -1
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +18 -0
- data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +59 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +2 -18
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +8 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +216 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +21 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +971 -253
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +3 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +0 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +17 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +12 -27
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +8 -10
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +29 -55
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +3 -9
- data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +7 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +24 -28
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +6 -9
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +12 -43
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +4 -3
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +4 -0
- data/third_party/upb/upb/decode.c +309 -178
- data/third_party/upb/upb/decode_fast.c +1 -1
- data/third_party/upb/upb/decode_internal.h +1 -0
- data/third_party/upb/upb/def.c +330 -85
- data/third_party/upb/upb/def.h +45 -14
- data/third_party/upb/upb/def.hpp +17 -4
- data/third_party/upb/upb/encode.c +100 -40
- data/third_party/upb/upb/msg.c +22 -9
- data/third_party/upb/upb/msg_internal.h +90 -8
- data/third_party/upb/upb/reflection.c +98 -58
- data/third_party/upb/upb/reflection.h +6 -2
- data/third_party/upb/upb/text_encode.c +3 -3
- data/third_party/upb/upb/upb.c +8 -0
- metadata +116 -56
- data/src/core/lib/avl/avl.cc +0 -306
- data/src/core/lib/gprpp/match.h +0 -73
- data/src/core/lib/gprpp/overload.h +0 -59
- data/src/core/lib/iomgr/event_engine/iomgr.h +0 -42
- data/src/core/lib/iomgr/resource_quota.cc +0 -1106
- data/src/core/lib/iomgr/resource_quota.h +0 -226
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +0 -93
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +0 -217
data/third_party/upb/upb/def.h
CHANGED
@@ -54,6 +54,10 @@ extern "C" {
|
|
54
54
|
|
55
55
|
struct upb_enumdef;
|
56
56
|
typedef struct upb_enumdef upb_enumdef;
|
57
|
+
struct upb_enumvaldef;
|
58
|
+
typedef struct upb_enumvaldef upb_enumvaldef;
|
59
|
+
struct upb_extrange;
|
60
|
+
typedef struct upb_extrange upb_extrange;
|
57
61
|
struct upb_fielddef;
|
58
62
|
typedef struct upb_fielddef upb_fielddef;
|
59
63
|
struct upb_filedef;
|
@@ -135,6 +139,7 @@ bool upb_fielddef_haspresence(const upb_fielddef *f);
|
|
135
139
|
const upb_msgdef *upb_fielddef_msgsubdef(const upb_fielddef *f);
|
136
140
|
const upb_enumdef *upb_fielddef_enumsubdef(const upb_fielddef *f);
|
137
141
|
const upb_msglayout_field *upb_fielddef_layout(const upb_fielddef *f);
|
142
|
+
const upb_msglayout_ext *_upb_fielddef_extlayout(const upb_fielddef *f);
|
138
143
|
|
139
144
|
/* upb_oneofdef ***************************************************************/
|
140
145
|
|
@@ -199,8 +204,10 @@ bool upb_msgdef_mapentry(const upb_msgdef *m);
|
|
199
204
|
upb_wellknowntype_t upb_msgdef_wellknowntype(const upb_msgdef *m);
|
200
205
|
bool upb_msgdef_iswrapper(const upb_msgdef *m);
|
201
206
|
bool upb_msgdef_isnumberwrapper(const upb_msgdef *m);
|
207
|
+
int upb_msgdef_extrangecount(const upb_msgdef *m);
|
202
208
|
int upb_msgdef_fieldcount(const upb_msgdef *m);
|
203
209
|
int upb_msgdef_oneofcount(const upb_msgdef *m);
|
210
|
+
const upb_extrange *upb_msgdef_extrange(const upb_msgdef *m, int i);
|
204
211
|
const upb_fielddef *upb_msgdef_field(const upb_msgdef *m, int i);
|
205
212
|
const upb_oneofdef *upb_msgdef_oneof(const upb_msgdef *m, int i);
|
206
213
|
const upb_fielddef *upb_msgdef_itof(const upb_msgdef *m, uint32_t i);
|
@@ -256,6 +263,14 @@ bool upb_msg_oneof_iter_isequal(const upb_msg_oneof_iter *iter1,
|
|
256
263
|
const upb_msg_oneof_iter *iter2);
|
257
264
|
/* END DEPRECATED */
|
258
265
|
|
266
|
+
/* upb_extrange ***************************************************************/
|
267
|
+
|
268
|
+
const google_protobuf_ExtensionRangeOptions *upb_extrange_options(
|
269
|
+
const upb_extrange *r);
|
270
|
+
bool upb_extrange_hasoptions(const upb_extrange *r);
|
271
|
+
int32_t upb_extrange_start(const upb_extrange *r);
|
272
|
+
int32_t upb_extrange_end(const upb_extrange *r);
|
273
|
+
|
259
274
|
/* upb_enumdef ****************************************************************/
|
260
275
|
|
261
276
|
typedef upb_strtable_iter upb_enum_iter;
|
@@ -264,26 +279,34 @@ const char *upb_enumdef_fullname(const upb_enumdef *e);
|
|
264
279
|
const char *upb_enumdef_name(const upb_enumdef *e);
|
265
280
|
const upb_filedef *upb_enumdef_file(const upb_enumdef *e);
|
266
281
|
int32_t upb_enumdef_default(const upb_enumdef *e);
|
267
|
-
int
|
282
|
+
int upb_enumdef_valuecount(const upb_enumdef *e);
|
283
|
+
const upb_enumvaldef *upb_enumdef_value(const upb_enumdef *e, int i);
|
268
284
|
|
269
|
-
|
270
|
-
*
|
271
|
-
*
|
272
|
-
* - iton: look up an integer, returning the name as a null-terminated
|
273
|
-
* string. */
|
274
|
-
bool upb_enumdef_ntoi(const upb_enumdef *e, const char *name, size_t len,
|
275
|
-
int32_t *num);
|
276
|
-
UPB_INLINE bool upb_enumdef_ntoiz(const upb_enumdef *e,
|
277
|
-
const char *name, int32_t *num) {
|
278
|
-
return upb_enumdef_ntoi(e, name, strlen(name), num);
|
279
|
-
}
|
280
|
-
const char *upb_enumdef_iton(const upb_enumdef *e, int32_t num);
|
285
|
+
const upb_enumvaldef *upb_enumdef_lookupname(const upb_enumdef *e,
|
286
|
+
const char *name, size_t len);
|
287
|
+
const upb_enumvaldef *upb_enumdef_lookupnum(const upb_enumdef *e, int32_t num);
|
281
288
|
|
289
|
+
/* DEPRECATED, slated for removal */
|
290
|
+
int upb_enumdef_numvals(const upb_enumdef *e);
|
282
291
|
void upb_enum_begin(upb_enum_iter *iter, const upb_enumdef *e);
|
283
292
|
void upb_enum_next(upb_enum_iter *iter);
|
284
293
|
bool upb_enum_done(upb_enum_iter *iter);
|
285
294
|
const char *upb_enum_iter_name(upb_enum_iter *iter);
|
286
295
|
int32_t upb_enum_iter_number(upb_enum_iter *iter);
|
296
|
+
/* END DEPRECATED */
|
297
|
+
|
298
|
+
// Convenience wrapper.
|
299
|
+
UPB_INLINE const upb_enumvaldef *upb_enumdef_lookupnamez(const upb_enumdef *e,
|
300
|
+
const char *name) {
|
301
|
+
return upb_enumdef_lookupname(e, name, strlen(name));
|
302
|
+
}
|
303
|
+
|
304
|
+
/* upb_enumvaldef *************************************************************/
|
305
|
+
|
306
|
+
const char *upb_enumvaldef_fullname(const upb_enumvaldef *e);
|
307
|
+
const char *upb_enumvaldef_name(const upb_enumvaldef *e);
|
308
|
+
int32_t upb_enumvaldef_number(const upb_enumvaldef *e);
|
309
|
+
const upb_enumdef *upb_enumvaldef_enum(const upb_enumvaldef *e);
|
287
310
|
|
288
311
|
/* upb_filedef ****************************************************************/
|
289
312
|
|
@@ -308,6 +331,11 @@ const upb_msgdef *upb_symtab_lookupmsg(const upb_symtab *s, const char *sym);
|
|
308
331
|
const upb_msgdef *upb_symtab_lookupmsg2(
|
309
332
|
const upb_symtab *s, const char *sym, size_t len);
|
310
333
|
const upb_enumdef *upb_symtab_lookupenum(const upb_symtab *s, const char *sym);
|
334
|
+
const upb_enumvaldef *upb_symtab_lookupenumval(const upb_symtab *s,
|
335
|
+
const char *sym);
|
336
|
+
const upb_fielddef *upb_symtab_lookupext(const upb_symtab *s, const char *sym);
|
337
|
+
const upb_fielddef *upb_symtab_lookupext2(const upb_symtab *s, const char *sym,
|
338
|
+
size_t len);
|
311
339
|
const upb_filedef *upb_symtab_lookupfile(const upb_symtab *s, const char *name);
|
312
340
|
const upb_filedef *upb_symtab_lookupfile2(
|
313
341
|
const upb_symtab *s, const char *name, size_t len);
|
@@ -317,11 +345,14 @@ const upb_filedef *upb_symtab_addfile(
|
|
317
345
|
upb_status *status);
|
318
346
|
size_t _upb_symtab_bytesloaded(const upb_symtab *s);
|
319
347
|
upb_arena *_upb_symtab_arena(const upb_symtab *s);
|
348
|
+
const upb_fielddef *_upb_symtab_lookupextfield(const upb_symtab *s,
|
349
|
+
const upb_msglayout_ext *ext);
|
350
|
+
const upb_extreg *upb_symtab_extreg(const upb_symtab *s);
|
320
351
|
|
321
352
|
/* For generated code only: loads a generated descriptor. */
|
322
353
|
typedef struct upb_def_init {
|
323
354
|
struct upb_def_init **deps; /* Dependencies of this file. */
|
324
|
-
const
|
355
|
+
const upb_msglayout_file *layout;
|
325
356
|
const char *filename;
|
326
357
|
upb_strview descriptor; /* Serialized descriptor. */
|
327
358
|
} upb_def_init;
|
data/third_party/upb/upb/def.hpp
CHANGED
@@ -312,6 +312,19 @@ class MessageDefPtr {
|
|
312
312
|
const upb_msgdef* ptr_;
|
313
313
|
};
|
314
314
|
|
315
|
+
class EnumValDefPtr {
|
316
|
+
public:
|
317
|
+
EnumValDefPtr() : ptr_(nullptr) {}
|
318
|
+
explicit EnumValDefPtr(const upb_enumvaldef* ptr) : ptr_(ptr) {}
|
319
|
+
|
320
|
+
int32_t number() const { return upb_enumvaldef_number(ptr_); }
|
321
|
+
const char *full_name() const { return upb_enumvaldef_fullname(ptr_); }
|
322
|
+
const char *name() const { return upb_enumvaldef_name(ptr_); }
|
323
|
+
|
324
|
+
private:
|
325
|
+
const upb_enumvaldef* ptr_;
|
326
|
+
};
|
327
|
+
|
315
328
|
class EnumDefPtr {
|
316
329
|
public:
|
317
330
|
EnumDefPtr() : ptr_(nullptr) {}
|
@@ -335,15 +348,15 @@ class EnumDefPtr {
|
|
335
348
|
int value_count() const { return upb_enumdef_numvals(ptr_); }
|
336
349
|
|
337
350
|
// Lookups from name to integer, returning true if found.
|
338
|
-
|
339
|
-
return
|
351
|
+
EnumValDefPtr FindValueByName(const char* name) const {
|
352
|
+
return EnumValDefPtr(upb_enumdef_lookupnamez(ptr_, name));
|
340
353
|
}
|
341
354
|
|
342
355
|
// Finds the name corresponding to the given number, or NULL if none was
|
343
356
|
// found. If more than one name corresponds to this number, returns the
|
344
357
|
// first one that was added.
|
345
|
-
|
346
|
-
return
|
358
|
+
EnumValDefPtr FindValueByNumber(int32_t num) const {
|
359
|
+
return EnumValDefPtr(upb_enumdef_lookupnum(ptr_, num));
|
347
360
|
}
|
348
361
|
|
349
362
|
// Iteration over name/value pairs. The order is undefined.
|
@@ -187,17 +187,14 @@ static void encode_message(upb_encstate *e, const upb_msg *msg,
|
|
187
187
|
const upb_msglayout *m, size_t *size);
|
188
188
|
|
189
189
|
static void encode_scalar(upb_encstate *e, const void *_field_mem,
|
190
|
-
const
|
191
|
-
|
190
|
+
const upb_msglayout_sub *subs,
|
191
|
+
const upb_msglayout_field *f) {
|
192
192
|
const char *field_mem = _field_mem;
|
193
193
|
int wire_type;
|
194
194
|
|
195
195
|
#define CASE(ctype, type, wtype, encodeval) \
|
196
196
|
{ \
|
197
197
|
ctype val = *(ctype *)field_mem; \
|
198
|
-
if (skip_zero_value && val == 0) { \
|
199
|
-
return; \
|
200
|
-
} \
|
201
198
|
encode_##type(e, encodeval); \
|
202
199
|
wire_type = wtype; \
|
203
200
|
break; \
|
@@ -231,9 +228,6 @@ static void encode_scalar(upb_encstate *e, const void *_field_mem,
|
|
231
228
|
case UPB_DESCRIPTOR_TYPE_STRING:
|
232
229
|
case UPB_DESCRIPTOR_TYPE_BYTES: {
|
233
230
|
upb_strview view = *(upb_strview*)field_mem;
|
234
|
-
if (skip_zero_value && view.size == 0) {
|
235
|
-
return;
|
236
|
-
}
|
237
231
|
encode_bytes(e, view.data, view.size);
|
238
232
|
encode_varint(e, view.size);
|
239
233
|
wire_type = UPB_WIRE_TYPE_DELIMITED;
|
@@ -242,7 +236,7 @@ static void encode_scalar(upb_encstate *e, const void *_field_mem,
|
|
242
236
|
case UPB_DESCRIPTOR_TYPE_GROUP: {
|
243
237
|
size_t size;
|
244
238
|
void *submsg = *(void **)field_mem;
|
245
|
-
const upb_msglayout *subm =
|
239
|
+
const upb_msglayout *subm = subs[f->submsg_index].submsg;
|
246
240
|
if (submsg == NULL) {
|
247
241
|
return;
|
248
242
|
}
|
@@ -256,7 +250,7 @@ static void encode_scalar(upb_encstate *e, const void *_field_mem,
|
|
256
250
|
case UPB_DESCRIPTOR_TYPE_MESSAGE: {
|
257
251
|
size_t size;
|
258
252
|
void *submsg = *(void **)field_mem;
|
259
|
-
const upb_msglayout *subm =
|
253
|
+
const upb_msglayout *subm = subs[f->submsg_index].submsg;
|
260
254
|
if (submsg == NULL) {
|
261
255
|
return;
|
262
256
|
}
|
@@ -276,7 +270,8 @@ static void encode_scalar(upb_encstate *e, const void *_field_mem,
|
|
276
270
|
}
|
277
271
|
|
278
272
|
static void encode_array(upb_encstate *e, const upb_msg *msg,
|
279
|
-
const
|
273
|
+
const upb_msglayout_sub *subs,
|
274
|
+
const upb_msglayout_field *f) {
|
280
275
|
const upb_array *arr = *UPB_PTR_AT(msg, f->offset, upb_array*);
|
281
276
|
bool packed = f->mode & _UPB_MODE_IS_PACKED;
|
282
277
|
size_t pre_len = e->limit - e->ptr;
|
@@ -344,7 +339,7 @@ static void encode_array(upb_encstate *e, const upb_msg *msg,
|
|
344
339
|
case UPB_DESCRIPTOR_TYPE_GROUP: {
|
345
340
|
const void *const*start = _upb_array_constptr(arr);
|
346
341
|
const void *const*ptr = start + arr->len;
|
347
|
-
const upb_msglayout *subm =
|
342
|
+
const upb_msglayout *subm = subs[f->submsg_index].submsg;
|
348
343
|
if (--e->depth == 0) encode_err(e);
|
349
344
|
do {
|
350
345
|
size_t size;
|
@@ -359,7 +354,7 @@ static void encode_array(upb_encstate *e, const upb_msg *msg,
|
|
359
354
|
case UPB_DESCRIPTOR_TYPE_MESSAGE: {
|
360
355
|
const void *const*start = _upb_array_constptr(arr);
|
361
356
|
const void *const*ptr = start + arr->len;
|
362
|
-
const upb_msglayout *subm =
|
357
|
+
const upb_msglayout *subm = subs[f->submsg_index].submsg;
|
363
358
|
if (--e->depth == 0) encode_err(e);
|
364
359
|
do {
|
365
360
|
size_t size;
|
@@ -387,17 +382,18 @@ static void encode_mapentry(upb_encstate *e, uint32_t number,
|
|
387
382
|
const upb_msglayout_field *val_field = &layout->fields[1];
|
388
383
|
size_t pre_len = e->limit - e->ptr;
|
389
384
|
size_t size;
|
390
|
-
encode_scalar(e, &ent->v, layout, val_field
|
391
|
-
encode_scalar(e, &ent->k, layout, key_field
|
385
|
+
encode_scalar(e, &ent->v, layout->subs, val_field);
|
386
|
+
encode_scalar(e, &ent->k, layout->subs, key_field);
|
392
387
|
size = (e->limit - e->ptr) - pre_len;
|
393
388
|
encode_varint(e, size);
|
394
389
|
encode_tag(e, number, UPB_WIRE_TYPE_DELIMITED);
|
395
390
|
}
|
396
391
|
|
397
392
|
static void encode_map(upb_encstate *e, const upb_msg *msg,
|
398
|
-
const
|
393
|
+
const upb_msglayout_sub *subs,
|
394
|
+
const upb_msglayout_field *f) {
|
399
395
|
const upb_map *map = *UPB_PTR_AT(msg, f->offset, const upb_map*);
|
400
|
-
const upb_msglayout *layout =
|
396
|
+
const upb_msglayout *layout = subs[f->submsg_index].submsg;
|
401
397
|
UPB_ASSERT(layout->field_count == 2);
|
402
398
|
|
403
399
|
if (map == NULL) return;
|
@@ -425,28 +421,82 @@ static void encode_map(upb_encstate *e, const upb_msg *msg,
|
|
425
421
|
}
|
426
422
|
}
|
427
423
|
|
428
|
-
static
|
429
|
-
|
430
|
-
|
431
|
-
bool skip_empty = false;
|
424
|
+
static bool encode_shouldencode(upb_encstate *e, const upb_msg *msg,
|
425
|
+
const upb_msglayout_sub *subs,
|
426
|
+
const upb_msglayout_field *f) {
|
432
427
|
if (f->presence == 0) {
|
433
|
-
/* Proto3 presence. */
|
434
|
-
|
428
|
+
/* Proto3 presence or map/array. */
|
429
|
+
const void *mem = UPB_PTR_AT(msg, f->offset, void);
|
430
|
+
switch (f->mode >> _UPB_REP_SHIFT) {
|
431
|
+
case _UPB_REP_1BYTE: {
|
432
|
+
char ch;
|
433
|
+
memcpy(&ch, mem, 1);
|
434
|
+
return ch != 0;
|
435
|
+
}
|
436
|
+
case _UPB_REP_4BYTE: {
|
437
|
+
uint32_t u32;
|
438
|
+
memcpy(&u32, mem, 4);
|
439
|
+
return u32 != 0;
|
440
|
+
}
|
441
|
+
case _UPB_REP_8BYTE: {
|
442
|
+
uint64_t u64;
|
443
|
+
memcpy(&u64, mem, 8);
|
444
|
+
return u64 != 0;
|
445
|
+
}
|
446
|
+
case _UPB_REP_STRVIEW: {
|
447
|
+
const upb_strview *str = (const upb_strview*)mem;
|
448
|
+
return str->size != 0;
|
449
|
+
}
|
450
|
+
default:
|
451
|
+
UPB_UNREACHABLE();
|
452
|
+
}
|
435
453
|
} else if (f->presence > 0) {
|
436
454
|
/* Proto2 presence: hasbit. */
|
437
|
-
|
455
|
+
return _upb_hasbit_field(msg, f);
|
438
456
|
} else {
|
439
457
|
/* Field is in a oneof. */
|
440
|
-
|
458
|
+
return _upb_getoneofcase_field(msg, f) == f->number;
|
441
459
|
}
|
442
|
-
|
460
|
+
}
|
461
|
+
|
462
|
+
static void encode_field(upb_encstate *e, const upb_msg *msg,
|
463
|
+
const upb_msglayout_sub *subs,
|
464
|
+
const upb_msglayout_field *field) {
|
465
|
+
switch (_upb_getmode(field)) {
|
466
|
+
case _UPB_MODE_ARRAY:
|
467
|
+
encode_array(e, msg, subs, field);
|
468
|
+
break;
|
469
|
+
case _UPB_MODE_MAP:
|
470
|
+
encode_map(e, msg, subs, field);
|
471
|
+
break;
|
472
|
+
case _UPB_MODE_SCALAR:
|
473
|
+
encode_scalar(e, UPB_PTR_AT(msg, field->offset, void), subs, field);
|
474
|
+
break;
|
475
|
+
default:
|
476
|
+
UPB_UNREACHABLE();
|
477
|
+
}
|
478
|
+
}
|
479
|
+
|
480
|
+
/* message MessageSet {
|
481
|
+
* repeated group Item = 1 {
|
482
|
+
* required int32 type_id = 2;
|
483
|
+
* required string message = 3;
|
484
|
+
* }
|
485
|
+
* } */
|
486
|
+
static void encode_msgset_item(upb_encstate *e, const upb_msg_ext *ext) {
|
487
|
+
size_t size;
|
488
|
+
encode_tag(e, 1, UPB_WIRE_TYPE_END_GROUP);
|
489
|
+
encode_message(e, ext->data.ptr, ext->ext->sub.submsg, &size);
|
490
|
+
encode_varint(e, size);
|
491
|
+
encode_tag(e, 3, UPB_WIRE_TYPE_DELIMITED);
|
492
|
+
encode_varint(e, ext->ext->field.number);
|
493
|
+
encode_tag(e, 2, UPB_WIRE_TYPE_VARINT);
|
494
|
+
encode_tag(e, 1, UPB_WIRE_TYPE_START_GROUP);
|
443
495
|
}
|
444
496
|
|
445
497
|
static void encode_message(upb_encstate *e, const upb_msg *msg,
|
446
498
|
const upb_msglayout *m, size_t *size) {
|
447
499
|
size_t pre_len = e->limit - e->ptr;
|
448
|
-
const upb_msglayout_field *f = &m->fields[m->field_count];
|
449
|
-
const upb_msglayout_field *first = &m->fields[0];
|
450
500
|
|
451
501
|
if ((e->options & UPB_ENCODE_SKIPUNKNOWN) == 0) {
|
452
502
|
size_t unknown_size;
|
@@ -457,20 +507,30 @@ static void encode_message(upb_encstate *e, const upb_msg *msg,
|
|
457
507
|
}
|
458
508
|
}
|
459
509
|
|
510
|
+
if (m->ext != _UPB_MSGEXT_NONE) {
|
511
|
+
/* Encode all extensions together. Unlike C++, we do not attempt to keep
|
512
|
+
* these in field number order relative to normal fields or even to each
|
513
|
+
* other. */
|
514
|
+
size_t ext_count;
|
515
|
+
const upb_msg_ext *ext = _upb_msg_getexts(msg, &ext_count);
|
516
|
+
const upb_msg_ext *end = ext + ext_count;
|
517
|
+
if (ext_count) {
|
518
|
+
for (; ext != end; ext++) {
|
519
|
+
if (UPB_UNLIKELY(m->ext == _UPB_MSGEXT_MSGSET)) {
|
520
|
+
encode_msgset_item(e, ext);
|
521
|
+
} else {
|
522
|
+
encode_field(e, &ext->data, &ext->ext->sub, &ext->ext->field);
|
523
|
+
}
|
524
|
+
}
|
525
|
+
}
|
526
|
+
}
|
527
|
+
|
528
|
+
const upb_msglayout_field *f = &m->fields[m->field_count];
|
529
|
+
const upb_msglayout_field *first = &m->fields[0];
|
460
530
|
while (f != first) {
|
461
531
|
f--;
|
462
|
-
|
463
|
-
|
464
|
-
encode_array(e, msg, m, f);
|
465
|
-
break;
|
466
|
-
case _UPB_MODE_MAP:
|
467
|
-
encode_map(e, msg, m, f);
|
468
|
-
break;
|
469
|
-
case _UPB_MODE_SCALAR:
|
470
|
-
encode_scalarfield(e, msg, m, f);
|
471
|
-
break;
|
472
|
-
default:
|
473
|
-
UPB_UNREACHABLE();
|
532
|
+
if (encode_shouldencode(e, msg, m->subs, f)) {
|
533
|
+
encode_field(e, msg, m->subs, f);
|
474
534
|
}
|
475
535
|
}
|
476
536
|
|
data/third_party/upb/upb/msg.c
CHANGED
@@ -137,6 +137,18 @@ const upb_msg_ext *_upb_msg_getext(const upb_msg *msg,
|
|
137
137
|
return NULL;
|
138
138
|
}
|
139
139
|
|
140
|
+
void _upb_msg_clearext(upb_msg *msg, const upb_msglayout_ext *ext_l) {
|
141
|
+
upb_msg_internal *in = upb_msg_getinternal(msg);
|
142
|
+
if (!in->internal) return;
|
143
|
+
const upb_msg_ext *base =
|
144
|
+
UPB_PTR_AT(in->internal, in->internal->ext_begin, void);
|
145
|
+
upb_msg_ext *ext = (upb_msg_ext*)_upb_msg_getext(msg, ext_l);
|
146
|
+
if (ext) {
|
147
|
+
*ext = *base;
|
148
|
+
in->internal->ext_begin += sizeof(upb_msg_ext);
|
149
|
+
}
|
150
|
+
}
|
151
|
+
|
140
152
|
upb_msg_ext *_upb_msg_getorcreateext(upb_msg *msg, const upb_msglayout_ext *e,
|
141
153
|
upb_arena *arena) {
|
142
154
|
upb_msg_ext *ext = (upb_msg_ext*)_upb_msg_getext(msg, e);
|
@@ -361,14 +373,15 @@ upb_extreg *upb_extreg_new(upb_arena *arena) {
|
|
361
373
|
return r;
|
362
374
|
}
|
363
375
|
|
364
|
-
bool _upb_extreg_add(upb_extreg *r, const upb_msglayout_ext
|
376
|
+
bool _upb_extreg_add(upb_extreg *r, const upb_msglayout_ext **e, size_t count) {
|
365
377
|
char buf[EXTREG_KEY_SIZE];
|
366
|
-
const upb_msglayout_ext
|
367
|
-
const upb_msglayout_ext
|
378
|
+
const upb_msglayout_ext **start = e;
|
379
|
+
const upb_msglayout_ext **end = e + count;
|
368
380
|
for (; e < end; e++) {
|
369
|
-
|
381
|
+
const upb_msglayout_ext *ext = *e;
|
382
|
+
extreg_key(buf, ext->extendee, ext->field.number);
|
370
383
|
if (!upb_strtable_insert(&r->exts, buf, EXTREG_KEY_SIZE,
|
371
|
-
upb_value_constptr(
|
384
|
+
upb_value_constptr(ext), r->arena)) {
|
372
385
|
goto failure;
|
373
386
|
}
|
374
387
|
}
|
@@ -377,15 +390,15 @@ bool _upb_extreg_add(upb_extreg *r, const upb_msglayout_ext *e, size_t count) {
|
|
377
390
|
failure:
|
378
391
|
/* Back out the entries previously added. */
|
379
392
|
for (end = e, e = start; e < end; e++) {
|
380
|
-
|
393
|
+
const upb_msglayout_ext *ext = *e;
|
394
|
+
extreg_key(buf, ext->extendee, ext->field.number);
|
381
395
|
upb_strtable_remove(&r->exts, buf, EXTREG_KEY_SIZE, NULL);
|
382
396
|
}
|
383
397
|
return false;
|
384
398
|
}
|
385
399
|
|
386
|
-
const
|
387
|
-
|
388
|
-
uint32_t num) {
|
400
|
+
const upb_msglayout_ext *_upb_extreg_get(const upb_extreg *r,
|
401
|
+
const upb_msglayout *l, uint32_t num) {
|
389
402
|
char buf[EXTREG_KEY_SIZE];
|
390
403
|
upb_value v;
|
391
404
|
extreg_key(buf, l, num);
|
@@ -1,3 +1,30 @@
|
|
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
|
+
|
1
28
|
/*
|
2
29
|
** Our memory representation for parsing tables and messages themselves.
|
3
30
|
** Functions in this file are used by generated code and possibly reflection.
|
@@ -42,18 +69,39 @@ typedef struct {
|
|
42
69
|
int16_t presence; /* If >0, hasbit_index. If <0, ~oneof_index. */
|
43
70
|
uint16_t submsg_index; /* undefined if descriptortype != MESSAGE or GROUP. */
|
44
71
|
uint8_t descriptortype;
|
45
|
-
|
72
|
+
uint8_t mode; /* upb_fieldmode | upb_labelflags |
|
73
|
+
(upb_rep << _UPB_REP_SHIFT) */
|
46
74
|
} upb_msglayout_field;
|
47
75
|
|
48
76
|
typedef enum {
|
49
77
|
_UPB_MODE_MAP = 0,
|
50
78
|
_UPB_MODE_ARRAY = 1,
|
51
79
|
_UPB_MODE_SCALAR = 2,
|
80
|
+
|
81
|
+
_UPB_MODE_MASK = 3, /* Mask to isolate the mode from upb_rep. */
|
52
82
|
} upb_fieldmode;
|
53
83
|
|
54
84
|
/* Extra flags on the mode field. */
|
55
85
|
enum upb_labelflags {
|
56
86
|
_UPB_MODE_IS_PACKED = 4,
|
87
|
+
_UPB_MODE_IS_EXTENSION = 8,
|
88
|
+
};
|
89
|
+
|
90
|
+
/* Representation in the message. Derivable from descriptortype and mode, but
|
91
|
+
* fast access helps the serializer. */
|
92
|
+
enum upb_rep {
|
93
|
+
_UPB_REP_1BYTE = 0,
|
94
|
+
_UPB_REP_4BYTE = 1,
|
95
|
+
_UPB_REP_8BYTE = 2,
|
96
|
+
_UPB_REP_STRVIEW = 3,
|
97
|
+
|
98
|
+
#if UINTPTR_MAX == 0xffffffff
|
99
|
+
_UPB_REP_PTR = _UPB_REP_4BYTE,
|
100
|
+
#else
|
101
|
+
_UPB_REP_PTR = _UPB_REP_8BYTE,
|
102
|
+
#endif
|
103
|
+
|
104
|
+
_UPB_REP_SHIFT = 6, /* Bit offset of the rep in upb_msglayout_field.mode */
|
57
105
|
};
|
58
106
|
|
59
107
|
UPB_INLINE upb_fieldmode _upb_getmode(const upb_msglayout_field *field) {
|
@@ -82,14 +130,40 @@ typedef struct {
|
|
82
130
|
_upb_field_parser *field_parser;
|
83
131
|
} _upb_fasttable_entry;
|
84
132
|
|
133
|
+
typedef union {
|
134
|
+
const struct upb_msglayout *submsg;
|
135
|
+
// TODO: const upb_enumlayout *subenum;
|
136
|
+
} upb_msglayout_sub;
|
137
|
+
|
138
|
+
typedef enum {
|
139
|
+
_UPB_MSGEXT_NONE = 0, // Non-extendable message.
|
140
|
+
_UPB_MSGEXT_EXTENDABLE = 1, // Normal extendable message.
|
141
|
+
_UPB_MSGEXT_MSGSET = 2, // MessageSet message.
|
142
|
+
_UPB_MSGEXT_MSGSET_ITEM = 3, // MessageSet item (temporary only, see decode.c)
|
143
|
+
} upb_msgext_mode;
|
144
|
+
|
145
|
+
/* MessageSet wire format is:
|
146
|
+
* message MessageSet {
|
147
|
+
* repeated group Item = 1 {
|
148
|
+
* required int32 type_id = 2;
|
149
|
+
* required string message = 3;
|
150
|
+
* }
|
151
|
+
* }
|
152
|
+
*/
|
153
|
+
typedef enum {
|
154
|
+
_UPB_MSGSET_ITEM = 1,
|
155
|
+
_UPB_MSGSET_TYPEID = 2,
|
156
|
+
_UPB_MSGSET_MESSAGE = 3,
|
157
|
+
} upb_msgext_fieldnum;
|
158
|
+
|
85
159
|
struct upb_msglayout {
|
86
|
-
const
|
160
|
+
const upb_msglayout_sub *subs;
|
87
161
|
const upb_msglayout_field *fields;
|
88
162
|
/* Must be aligned to sizeof(void*). Doesn't include internal members like
|
89
163
|
* unknown fields, extension dict, pointer to msglayout, etc. */
|
90
164
|
uint16_t size;
|
91
165
|
uint16_t field_count;
|
92
|
-
|
166
|
+
uint8_t ext; // upb_msgext_mode, declared as uint8_t so sizeof(ext) == 1
|
93
167
|
uint8_t dense_below;
|
94
168
|
uint8_t table_mask;
|
95
169
|
/* To constant-initialize the tables of variable length, we need a flexible
|
@@ -100,22 +174,28 @@ struct upb_msglayout {
|
|
100
174
|
typedef struct {
|
101
175
|
upb_msglayout_field field;
|
102
176
|
const upb_msglayout *extendee;
|
103
|
-
|
177
|
+
upb_msglayout_sub sub; /* NULL unless submessage or proto2 enum */
|
104
178
|
} upb_msglayout_ext;
|
105
179
|
|
180
|
+
typedef struct {
|
181
|
+
const upb_msglayout **msgs;
|
182
|
+
const upb_msglayout_ext **exts;
|
183
|
+
int msg_count;
|
184
|
+
int ext_count;
|
185
|
+
} upb_msglayout_file;
|
186
|
+
|
106
187
|
/** upb_extreg ****************************************************************/
|
107
188
|
|
108
189
|
/* Adds the given extension info for message type |l| and field number |num|
|
109
190
|
* into the registry. Returns false if this message type and field number were
|
110
191
|
* already in the map, or if memory allocation fails. */
|
111
|
-
bool _upb_extreg_add(upb_extreg *r, const upb_msglayout_ext
|
192
|
+
bool _upb_extreg_add(upb_extreg *r, const upb_msglayout_ext **e, size_t count);
|
112
193
|
|
113
194
|
/* Looks up the extension (if any) defined for message type |l| and field
|
114
195
|
* number |num|. If an extension was found, copies the field info into |*ext|
|
115
196
|
* and returns true. Otherwise returns false. */
|
116
|
-
const
|
117
|
-
|
118
|
-
uint32_t num);
|
197
|
+
const upb_msglayout_ext *_upb_extreg_get(const upb_extreg *r,
|
198
|
+
const upb_msglayout *l, uint32_t num);
|
119
199
|
|
120
200
|
/** upb_msg *******************************************************************/
|
121
201
|
|
@@ -216,6 +296,8 @@ const upb_msg_ext *_upb_msg_getexts(const upb_msg *msg, size_t *count);
|
|
216
296
|
const upb_msg_ext *_upb_msg_getext(const upb_msg *msg,
|
217
297
|
const upb_msglayout_ext *ext);
|
218
298
|
|
299
|
+
void _upb_msg_clearext(upb_msg *msg, const upb_msglayout_ext *ext);
|
300
|
+
|
219
301
|
/** Hasbit access *************************************************************/
|
220
302
|
|
221
303
|
UPB_INLINE bool _upb_hasbit(const upb_msg *msg, size_t idx) {
|