Line data Source code
1 : #include "source/common/protobuf/utility.h"
2 :
3 : #if defined(ENVOY_ENABLE_FULL_PROTOS)
4 :
5 : namespace Envoy {
6 1798094 : Protobuf::ReflectableMessage createReflectableMessage(const Protobuf::Message& message) {
7 1798094 : return const_cast<Protobuf::ReflectableMessage>(&message);
8 1798094 : }
9 : } // namespace Envoy
10 :
11 : #else
12 :
13 : #include "bazel/cc_proto_descriptor_library/create_dynamic_message.h"
14 : #include "bazel/cc_proto_descriptor_library/text_format_transcoder.h"
15 : #include "bazel/cc_proto_descriptor_library/file_descriptor_info.h"
16 :
17 : #include "envoy/config/core/v3/base_descriptor.pb.h"
18 : #include "envoy/admin/v3/certs_descriptor.pb.h"
19 : #include "envoy/admin/v3/clusters_descriptor.pb.h"
20 : #include "envoy/admin/v3/config_dump_descriptor.pb.h"
21 : #include "envoy/admin/v3/config_dump_shared_descriptor.pb.h"
22 : #include "envoy/admin/v3/init_dump_descriptor.pb.h"
23 : #include "envoy/admin/v3/listeners_descriptor.pb.h"
24 : #include "envoy/admin/v3/memory_descriptor.pb.h"
25 : #include "envoy/admin/v3/metrics_descriptor.pb.h"
26 : #include "envoy/admin/v3/mutex_stats_descriptor.pb.h"
27 : #include "envoy/admin/v3/server_info_descriptor.pb.h"
28 : #include "envoy/admin/v3/tap_descriptor.pb.h"
29 : #include "envoy/annotations/deprecation_descriptor.pb.h"
30 : #include "envoy/annotations/resource_descriptor.pb.h"
31 : #include "envoy/config/accesslog/v3/accesslog_descriptor.pb.h"
32 : #include "envoy/config/bootstrap/v3/bootstrap_descriptor.pb.h"
33 : #include "envoy/config/cluster/v3/circuit_breaker_descriptor.pb.h"
34 : #include "envoy/config/cluster/v3/cluster_descriptor.pb.h"
35 : #include "envoy/config/cluster/v3/filter_descriptor.pb.h"
36 : #include "envoy/config/cluster/v3/outlier_detection_descriptor.pb.h"
37 : #include "envoy/config/common/key_value/v3/config_descriptor.pb.h"
38 : #include "envoy/config/common/matcher/v3/matcher_descriptor.pb.h"
39 : #include "envoy/config/core/v3/address_descriptor.pb.h"
40 : #include "envoy/config/core/v3/backoff_descriptor.pb.h"
41 : #include "envoy/config/core/v3/base_descriptor.pb.h"
42 : #include "envoy/config/core/v3/config_source_descriptor.pb.h"
43 : #include "envoy/config/core/v3/event_service_config_descriptor.pb.h"
44 : #include "envoy/config/core/v3/extension_descriptor.pb.h"
45 : #include "envoy/config/core/v3/grpc_method_list_descriptor.pb.h"
46 : #include "envoy/config/core/v3/grpc_service_descriptor.pb.h"
47 : #include "envoy/config/core/v3/health_check_descriptor.pb.h"
48 : #include "envoy/config/core/v3/http_uri_descriptor.pb.h"
49 : #include "envoy/config/core/v3/protocol_descriptor.pb.h"
50 : #include "envoy/config/core/v3/proxy_protocol_descriptor.pb.h"
51 : #include "envoy/config/core/v3/resolver_descriptor.pb.h"
52 : #include "envoy/config/core/v3/socket_option_descriptor.pb.h"
53 : #include "envoy/config/core/v3/substitution_format_string_descriptor.pb.h"
54 : #include "envoy/config/core/v3/udp_socket_config_descriptor.pb.h"
55 : #include "envoy/config/endpoint/v3/endpoint_descriptor.pb.h"
56 : #include "envoy/config/endpoint/v3/endpoint_components_descriptor.pb.h"
57 : #include "envoy/config/endpoint/v3/load_report_descriptor.pb.h"
58 : #include "envoy/config/listener/v3/api_listener_descriptor.pb.h"
59 : #include "envoy/config/listener/v3/listener_descriptor.pb.h"
60 : #include "envoy/config/listener/v3/listener_components_descriptor.pb.h"
61 : #include "envoy/config/listener/v3/quic_config_descriptor.pb.h"
62 : #include "envoy/config/listener/v3/udp_listener_config_descriptor.pb.h"
63 : #include "envoy/config/metrics/v3/metrics_service_descriptor.pb.h"
64 : #include "envoy/config/metrics/v3/stats_descriptor.pb.h"
65 : #include "envoy/config/overload/v3/overload_descriptor.pb.h"
66 : #include "envoy/config/route/v3/route_descriptor.pb.h"
67 : #include "envoy/config/route/v3/route_components_descriptor.pb.h"
68 : #include "envoy/config/route/v3/scoped_route_descriptor.pb.h"
69 : #include "envoy/config/trace/v3/datadog_descriptor.pb.h"
70 : #include "envoy/config/trace/v3/dynamic_ot_descriptor.pb.h"
71 : #include "envoy/config/trace/v3/http_tracer_descriptor.pb.h"
72 : #include "envoy/config/trace/v3/lightstep_descriptor.pb.h"
73 : #include "envoy/config/trace/v3/opencensus_descriptor.pb.h"
74 : #include "envoy/config/trace/v3/opentelemetry_descriptor.pb.h"
75 : #include "envoy/config/trace/v3/service_descriptor.pb.h"
76 : #include "envoy/config/trace/v3/skywalking_descriptor.pb.h"
77 : #include "envoy/config/trace/v3/trace_descriptor.pb.h"
78 : #include "envoy/config/trace/v3/xray_descriptor.pb.h"
79 : #include "envoy/config/trace/v3/zipkin_descriptor.pb.h"
80 : #include "envoy/config/upstream/local_address_selector/v3/default_local_address_selector_descriptor.pb.h"
81 : #include "envoy/data/accesslog/v3/accesslog_descriptor.pb.h"
82 : #include "envoy/data/cluster/v3/outlier_detection_event_descriptor.pb.h"
83 : #include "envoy/data/core/v3/health_check_event_descriptor.pb.h"
84 : #include "envoy/extensions/access_loggers/file/v3/file_descriptor.pb.h"
85 : #include "envoy/extensions/access_loggers/stream/v3/stream_descriptor.pb.h"
86 : #include "envoy/extensions/clusters/dynamic_forward_proxy/v3/cluster_descriptor.pb.h"
87 : #include "envoy/extensions/common/dynamic_forward_proxy/v3/dns_cache_descriptor.pb.h"
88 : #include "envoy/extensions/common/matching/v3/extension_matcher_descriptor.pb.h"
89 : #include "envoy/extensions/compression/brotli/compressor/v3/brotli_descriptor.pb.h"
90 : #include "envoy/extensions/compression/brotli/decompressor/v3/brotli_descriptor.pb.h"
91 : #include "envoy/extensions/compression/gzip/compressor/v3/gzip_descriptor.pb.h"
92 : #include "envoy/extensions/compression/gzip/decompressor/v3/gzip_descriptor.pb.h"
93 : #include "envoy/extensions/early_data/v3/default_early_data_policy_descriptor.pb.h"
94 : #include "envoy/extensions/filters/common/dependency/v3/dependency_descriptor.pb.h"
95 : #include "envoy/extensions/filters/common/matcher/action/v3/skip_action_descriptor.pb.h"
96 : #include "envoy/extensions/filters/http/alternate_protocols_cache/v3/alternate_protocols_cache_descriptor.pb.h"
97 : #include "envoy/extensions/filters/http/buffer/v3/buffer_descriptor.pb.h"
98 : #include "envoy/extensions/filters/http/composite/v3/composite_descriptor.pb.h"
99 : #include "envoy/extensions/filters/http/compressor/v3/compressor_descriptor.pb.h"
100 : #include "envoy/extensions/filters/http/decompressor/v3/decompressor_descriptor.pb.h"
101 : #include "envoy/extensions/filters/http/dynamic_forward_proxy/v3/dynamic_forward_proxy_descriptor.pb.h"
102 : #include "envoy/extensions/filters/http/health_check/v3/health_check_descriptor.pb.h"
103 : #include "envoy/extensions/filters/http/on_demand/v3/on_demand_descriptor.pb.h"
104 : #include "envoy/extensions/filters/http/router/v3/router_descriptor.pb.h"
105 : #include "envoy/extensions/filters/http/upstream_codec/v3/upstream_codec_descriptor.pb.h"
106 : #include "envoy/extensions/filters/listener/proxy_protocol/v3/proxy_protocol_descriptor.pb.h"
107 : #include "envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager_descriptor.pb.h"
108 : #include "envoy/extensions/filters/udp/dns_filter/v3/dns_filter_descriptor.pb.h"
109 : #include "envoy/extensions/http/header_formatters/preserve_case/v3/preserve_case_descriptor.pb.h"
110 : #include "envoy/extensions/http/header_validators/envoy_default/v3/header_validator_descriptor.pb.h"
111 : #include "envoy/extensions/http/original_ip_detection/xff/v3/xff_descriptor.pb.h"
112 : #include "envoy/extensions/load_balancing_policies/common/v3/common_descriptor.pb.h"
113 : #include "envoy/extensions/load_balancing_policies/cluster_provided/v3/cluster_provided_descriptor.pb.h"
114 : #include "envoy/extensions/load_balancing_policies/least_request/v3/least_request_descriptor.pb.h"
115 : #include "envoy/extensions/load_balancing_policies/random/v3/random_descriptor.pb.h"
116 : #include "envoy/extensions/load_balancing_policies/round_robin/v3/round_robin_descriptor.pb.h"
117 : #include "envoy/extensions/matching/common_inputs/network/v3/network_inputs_descriptor.pb.h"
118 : #include "envoy/extensions/network/dns_resolver/apple/v3/apple_dns_resolver_descriptor.pb.h"
119 : #include "envoy/extensions/network/dns_resolver/cares/v3/cares_dns_resolver_descriptor.pb.h"
120 : #include "envoy/extensions/network/dns_resolver/getaddrinfo/v3/getaddrinfo_dns_resolver_descriptor.pb.h"
121 : #include "envoy/extensions/network/socket_interface/v3/default_socket_interface_descriptor.pb.h"
122 : #include "envoy/extensions/path/match/uri_template/v3/uri_template_match_descriptor.pb.h"
123 : #include "envoy/extensions/path/rewrite/uri_template/v3/uri_template_rewrite_descriptor.pb.h"
124 : #include "envoy/extensions/quic/connection_id_generator/v3/envoy_deterministic_connection_id_generator_descriptor.pb.h"
125 : #include "envoy/extensions/quic/crypto_stream/v3/crypto_stream_descriptor.pb.h"
126 : #include "envoy/extensions/quic/proof_source/v3/proof_source_descriptor.pb.h"
127 : #include "envoy/extensions/regex_engines/v3/google_re2_descriptor.pb.h"
128 : #include "envoy/extensions/request_id/uuid/v3/uuid_descriptor.pb.h"
129 : #include "envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect_descriptor.pb.h"
130 : #include "envoy/extensions/transport_sockets/quic/v3/quic_transport_descriptor.pb.h"
131 : #include "envoy/extensions/transport_sockets/raw_buffer/v3/raw_buffer_descriptor.pb.h"
132 : #include "envoy/extensions/transport_sockets/tls/v3/cert_descriptor.pb.h"
133 : #include "envoy/extensions/transport_sockets/tls/v3/common_descriptor.pb.h"
134 : #include "envoy/extensions/transport_sockets/tls/v3/secret_descriptor.pb.h"
135 : #include "envoy/extensions/transport_sockets/tls/v3/tls_descriptor.pb.h"
136 : #include "envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config_descriptor.pb.h"
137 : #include "envoy/extensions/udp_packet_writer/v3/udp_default_writer_factory_descriptor.pb.h"
138 : #include "envoy/extensions/udp_packet_writer/v3/udp_gso_batch_writer_factory_descriptor.pb.h"
139 : #include "envoy/extensions/upstreams/http/generic/v3/generic_connection_pool_descriptor.pb.h"
140 : #include "envoy/extensions/upstreams/http/v3/http_protocol_options_descriptor.pb.h"
141 : #include "envoy/extensions/upstreams/tcp/v3/tcp_protocol_options_descriptor.pb.h"
142 : #include "envoy/service/cluster/v3/cds_descriptor.pb.h"
143 : #include "envoy/service/discovery/v3/ads_descriptor.pb.h"
144 : #include "envoy/service/discovery/v3/discovery_descriptor.pb.h"
145 : #include "envoy/service/endpoint/v3/eds_descriptor.pb.h"
146 : #include "envoy/service/endpoint/v3/leds_descriptor.pb.h"
147 : #include "envoy/service/extension/v3/config_discovery_descriptor.pb.h"
148 : #include "envoy/service/health/v3/hds_descriptor.pb.h"
149 : #include "envoy/service/listener/v3/lds_descriptor.pb.h"
150 : #include "envoy/service/load_stats/v3/lrs_descriptor.pb.h"
151 : #include "envoy/service/metrics/v3/metrics_service_descriptor.pb.h"
152 : #include "envoy/service/ratelimit/v3/rls_descriptor.pb.h"
153 : #include "envoy/service/route/v3/rds_descriptor.pb.h"
154 : #include "envoy/service/route/v3/srds_descriptor.pb.h"
155 : #include "envoy/service/runtime/v3/rtds_descriptor.pb.h"
156 : #include "envoy/service/secret/v3/sds_descriptor.pb.h"
157 : #include "envoy/type/matcher/metadata_descriptor.pb.h"
158 : #include "envoy/type/matcher/node_descriptor.pb.h"
159 : #include "envoy/type/matcher/number_descriptor.pb.h"
160 : #include "envoy/type/matcher/path_descriptor.pb.h"
161 : #include "envoy/type/matcher/regex_descriptor.pb.h"
162 : #include "envoy/type/matcher/string_descriptor.pb.h"
163 : #include "envoy/type/matcher/struct_descriptor.pb.h"
164 : #include "envoy/type/matcher/value_descriptor.pb.h"
165 : #include "envoy/type/matcher/v3/filter_state_descriptor.pb.h"
166 : #include "envoy/type/matcher/v3/http_inputs_descriptor.pb.h"
167 : #include "envoy/type/matcher/v3/metadata_descriptor.pb.h"
168 : #include "envoy/type/matcher/v3/node_descriptor.pb.h"
169 : #include "envoy/type/matcher/v3/number_descriptor.pb.h"
170 : #include "envoy/type/matcher/v3/path_descriptor.pb.h"
171 : #include "envoy/type/matcher/v3/regex_descriptor.pb.h"
172 : #include "envoy/type/matcher/v3/status_code_input_descriptor.pb.h"
173 : #include "envoy/type/matcher/v3/string_descriptor.pb.h"
174 : #include "envoy/type/matcher/v3/struct_descriptor.pb.h"
175 : #include "envoy/type/matcher/v3/value_descriptor.pb.h"
176 : #include "envoy/type/metadata/v3/metadata_descriptor.pb.h"
177 : #include "envoy/type/tracing/v3/custom_tag_descriptor.pb.h"
178 : #include "envoy/type/v3/hash_policy_descriptor.pb.h"
179 : #include "envoy/type/v3/http_descriptor.pb.h"
180 : #include "envoy/type/v3/http_status_descriptor.pb.h"
181 : #include "envoy/type/v3/percent_descriptor.pb.h"
182 : #include "envoy/type/v3/range_descriptor.pb.h"
183 : #include "envoy/type/v3/ratelimit_strategy_descriptor.pb.h"
184 : #include "envoy/type/v3/ratelimit_unit_descriptor.pb.h"
185 : #include "envoy/type/v3/semantic_version_descriptor.pb.h"
186 : #include "envoy/type/v3/token_bucket_descriptor.pb.h"
187 : #include "envoy/watchdog/v3/abort_action_descriptor.pb.h"
188 :
189 : using cc_proto_descriptor_library::TextFormatTranscoder;
190 : using cc_proto_descriptor_library::internal::FileDescriptorInfo;
191 :
192 : namespace {
193 :
194 : std::unique_ptr<TextFormatTranscoder> createTranscoder() {
195 : auto transcoder = std::make_unique<TextFormatTranscoder>(/*allow_global_fallback=*/false);
196 : std::vector<FileDescriptorInfo> file_descriptors = {
197 : protobuf::reflection::envoy_config_core_v3_base::kFileDescriptorInfo,
198 : protobuf::reflection::envoy_admin_v3_certs::kFileDescriptorInfo,
199 : protobuf::reflection::envoy_admin_v3_clusters::kFileDescriptorInfo,
200 : protobuf::reflection::envoy_admin_v3_config_dump::kFileDescriptorInfo,
201 : protobuf::reflection::envoy_admin_v3_config_dump_shared::kFileDescriptorInfo,
202 : protobuf::reflection::envoy_admin_v3_init_dump::kFileDescriptorInfo,
203 : protobuf::reflection::envoy_admin_v3_listeners::kFileDescriptorInfo,
204 : protobuf::reflection::envoy_admin_v3_memory::kFileDescriptorInfo,
205 : protobuf::reflection::envoy_admin_v3_metrics::kFileDescriptorInfo,
206 : protobuf::reflection::envoy_admin_v3_mutex_stats::kFileDescriptorInfo,
207 : protobuf::reflection::envoy_admin_v3_server_info::kFileDescriptorInfo,
208 : protobuf::reflection::envoy_admin_v3_tap::kFileDescriptorInfo,
209 : protobuf::reflection::envoy_annotations_deprecation::kFileDescriptorInfo,
210 : protobuf::reflection::envoy_annotations_resource::kFileDescriptorInfo,
211 : protobuf::reflection::envoy_config_accesslog_v3_accesslog::kFileDescriptorInfo,
212 : protobuf::reflection::envoy_config_bootstrap_v3_bootstrap::kFileDescriptorInfo,
213 : protobuf::reflection::envoy_config_cluster_v3_circuit_breaker::kFileDescriptorInfo,
214 : protobuf::reflection::envoy_config_cluster_v3_cluster::kFileDescriptorInfo,
215 : protobuf::reflection::envoy_config_cluster_v3_filter::kFileDescriptorInfo,
216 : protobuf::reflection::envoy_config_cluster_v3_outlier_detection::kFileDescriptorInfo,
217 : protobuf::reflection::envoy_config_common_key_value_v3_config::kFileDescriptorInfo,
218 : protobuf::reflection::envoy_config_common_matcher_v3_matcher::kFileDescriptorInfo,
219 : protobuf::reflection::envoy_config_core_v3_address::kFileDescriptorInfo,
220 : protobuf::reflection::envoy_config_core_v3_backoff::kFileDescriptorInfo,
221 : protobuf::reflection::envoy_config_core_v3_base::kFileDescriptorInfo,
222 : protobuf::reflection::envoy_config_core_v3_config_source::kFileDescriptorInfo,
223 : protobuf::reflection::envoy_config_core_v3_event_service_config::kFileDescriptorInfo,
224 : protobuf::reflection::envoy_config_core_v3_extension::kFileDescriptorInfo,
225 : protobuf::reflection::envoy_config_core_v3_grpc_method_list::kFileDescriptorInfo,
226 : protobuf::reflection::envoy_config_core_v3_grpc_service::kFileDescriptorInfo,
227 : protobuf::reflection::envoy_config_core_v3_health_check::kFileDescriptorInfo,
228 : protobuf::reflection::envoy_config_core_v3_http_uri::kFileDescriptorInfo,
229 : protobuf::reflection::envoy_config_core_v3_protocol::kFileDescriptorInfo,
230 : protobuf::reflection::envoy_config_core_v3_proxy_protocol::kFileDescriptorInfo,
231 : protobuf::reflection::envoy_config_core_v3_resolver::kFileDescriptorInfo,
232 : protobuf::reflection::envoy_config_core_v3_socket_option::kFileDescriptorInfo,
233 : protobuf::reflection::envoy_config_core_v3_substitution_format_string::kFileDescriptorInfo,
234 : protobuf::reflection::envoy_config_core_v3_udp_socket_config::kFileDescriptorInfo,
235 : protobuf::reflection::envoy_config_endpoint_v3_endpoint::kFileDescriptorInfo,
236 : protobuf::reflection::envoy_config_endpoint_v3_endpoint_components::kFileDescriptorInfo,
237 : protobuf::reflection::envoy_config_endpoint_v3_load_report::kFileDescriptorInfo,
238 : protobuf::reflection::envoy_config_listener_v3_api_listener::kFileDescriptorInfo,
239 : protobuf::reflection::envoy_config_listener_v3_listener::kFileDescriptorInfo,
240 : protobuf::reflection::envoy_config_listener_v3_listener_components::kFileDescriptorInfo,
241 : protobuf::reflection::envoy_config_listener_v3_quic_config::kFileDescriptorInfo,
242 : protobuf::reflection::envoy_config_listener_v3_udp_listener_config::kFileDescriptorInfo,
243 : protobuf::reflection::envoy_config_metrics_v3_metrics_service::kFileDescriptorInfo,
244 : protobuf::reflection::envoy_config_metrics_v3_stats::kFileDescriptorInfo,
245 : protobuf::reflection::envoy_config_overload_v3_overload::kFileDescriptorInfo,
246 : protobuf::reflection::envoy_config_route_v3_route::kFileDescriptorInfo,
247 : protobuf::reflection::envoy_config_route_v3_route_components::kFileDescriptorInfo,
248 : protobuf::reflection::envoy_config_route_v3_scoped_route::kFileDescriptorInfo,
249 : protobuf::reflection::envoy_config_trace_v3_datadog::kFileDescriptorInfo,
250 : protobuf::reflection::envoy_config_trace_v3_dynamic_ot::kFileDescriptorInfo,
251 : protobuf::reflection::envoy_config_trace_v3_http_tracer::kFileDescriptorInfo,
252 : protobuf::reflection::envoy_config_trace_v3_lightstep::kFileDescriptorInfo,
253 : protobuf::reflection::envoy_config_trace_v3_opencensus::kFileDescriptorInfo,
254 : protobuf::reflection::envoy_config_trace_v3_opentelemetry::kFileDescriptorInfo,
255 : protobuf::reflection::envoy_config_trace_v3_service::kFileDescriptorInfo,
256 : protobuf::reflection::envoy_config_trace_v3_skywalking::kFileDescriptorInfo,
257 : protobuf::reflection::envoy_config_trace_v3_trace::kFileDescriptorInfo,
258 : protobuf::reflection::envoy_config_trace_v3_xray::kFileDescriptorInfo,
259 : protobuf::reflection::envoy_config_trace_v3_zipkin::kFileDescriptorInfo,
260 : protobuf::reflection::
261 : envoy_config_upstream_local_address_selector_v3_default_local_address_selector::
262 : kFileDescriptorInfo,
263 : protobuf::reflection::envoy_data_accesslog_v3_accesslog::kFileDescriptorInfo,
264 : protobuf::reflection::envoy_data_cluster_v3_outlier_detection_event::kFileDescriptorInfo,
265 : protobuf::reflection::envoy_data_core_v3_health_check_event::kFileDescriptorInfo,
266 : protobuf::reflection::envoy_extensions_access_loggers_file_v3_file::kFileDescriptorInfo,
267 : protobuf::reflection::envoy_extensions_access_loggers_stream_v3_stream::kFileDescriptorInfo,
268 : protobuf::reflection::envoy_extensions_clusters_dynamic_forward_proxy_v3_cluster::
269 : kFileDescriptorInfo,
270 : protobuf::reflection::envoy_extensions_common_dynamic_forward_proxy_v3_dns_cache::
271 : kFileDescriptorInfo,
272 : protobuf::reflection::envoy_extensions_common_matching_v3_extension_matcher::
273 : kFileDescriptorInfo,
274 : protobuf::reflection::envoy_extensions_compression_brotli_compressor_v3_brotli::
275 : kFileDescriptorInfo,
276 : protobuf::reflection::envoy_extensions_compression_brotli_decompressor_v3_brotli::
277 : kFileDescriptorInfo,
278 : protobuf::reflection::envoy_extensions_compression_gzip_compressor_v3_gzip::
279 : kFileDescriptorInfo,
280 : protobuf::reflection::envoy_extensions_compression_gzip_decompressor_v3_gzip::
281 : kFileDescriptorInfo,
282 : protobuf::reflection::envoy_extensions_early_data_v3_default_early_data_policy::
283 : kFileDescriptorInfo,
284 : protobuf::reflection::envoy_extensions_filters_common_dependency_v3_dependency::
285 : kFileDescriptorInfo,
286 : protobuf::reflection::envoy_extensions_filters_common_matcher_action_v3_skip_action::
287 : kFileDescriptorInfo,
288 : protobuf::reflection::
289 : envoy_extensions_filters_http_alternate_protocols_cache_v3_alternate_protocols_cache::
290 : kFileDescriptorInfo,
291 : protobuf::reflection::envoy_extensions_filters_http_buffer_v3_buffer::kFileDescriptorInfo,
292 : protobuf::reflection::envoy_extensions_filters_http_composite_v3_composite::
293 : kFileDescriptorInfo,
294 : protobuf::reflection::envoy_extensions_filters_http_compressor_v3_compressor::
295 : kFileDescriptorInfo,
296 : protobuf::reflection::envoy_extensions_filters_http_decompressor_v3_decompressor::
297 : kFileDescriptorInfo,
298 : protobuf::reflection::
299 : envoy_extensions_filters_http_dynamic_forward_proxy_v3_dynamic_forward_proxy::
300 : kFileDescriptorInfo,
301 : protobuf::reflection::envoy_extensions_filters_http_health_check_v3_health_check::
302 : kFileDescriptorInfo,
303 : protobuf::reflection::envoy_extensions_filters_http_on_demand_v3_on_demand::
304 : kFileDescriptorInfo,
305 : protobuf::reflection::envoy_extensions_filters_http_router_v3_router::kFileDescriptorInfo,
306 : protobuf::reflection::envoy_extensions_filters_http_upstream_codec_v3_upstream_codec::
307 : kFileDescriptorInfo,
308 : protobuf::reflection::envoy_extensions_filters_listener_proxy_protocol_v3_proxy_protocol::
309 : kFileDescriptorInfo,
310 : protobuf::reflection::
311 : envoy_extensions_filters_network_http_connection_manager_v3_http_connection_manager::
312 : kFileDescriptorInfo,
313 : protobuf::reflection::envoy_extensions_filters_udp_dns_filter_v3_dns_filter::
314 : kFileDescriptorInfo,
315 : protobuf::reflection::envoy_extensions_http_header_formatters_preserve_case_v3_preserve_case::
316 : kFileDescriptorInfo,
317 : protobuf::reflection::
318 : envoy_extensions_http_header_validators_envoy_default_v3_header_validator::
319 : kFileDescriptorInfo,
320 : protobuf::reflection::envoy_extensions_http_original_ip_detection_xff_v3_xff::
321 : kFileDescriptorInfo,
322 : protobuf::reflection::
323 : envoy_extensions_load_balancing_policies_cluster_provided_v3_cluster_provided::
324 : kFileDescriptorInfo,
325 : protobuf::reflection::envoy_extensions_load_balancing_policies_common_v3_common::
326 : kFileDescriptorInfo,
327 : protobuf::reflection::
328 : envoy_extensions_load_balancing_policies_least_request_v3_least_request::
329 : kFileDescriptorInfo,
330 : protobuf::reflection::envoy_extensions_load_balancing_policies_random_v3_random::
331 : kFileDescriptorInfo,
332 : protobuf::reflection::envoy_extensions_load_balancing_policies_round_robin_v3_round_robin::
333 : kFileDescriptorInfo,
334 : protobuf::reflection::envoy_extensions_matching_common_inputs_network_v3_network_inputs::
335 : kFileDescriptorInfo,
336 : protobuf::reflection::envoy_extensions_network_dns_resolver_apple_v3_apple_dns_resolver::
337 : kFileDescriptorInfo,
338 : protobuf::reflection::envoy_extensions_network_dns_resolver_cares_v3_cares_dns_resolver::
339 : kFileDescriptorInfo,
340 : protobuf::reflection::
341 : envoy_extensions_network_dns_resolver_getaddrinfo_v3_getaddrinfo_dns_resolver::
342 : kFileDescriptorInfo,
343 : protobuf::reflection::envoy_extensions_network_socket_interface_v3_default_socket_interface::
344 : kFileDescriptorInfo,
345 : protobuf::reflection::envoy_extensions_path_match_uri_template_v3_uri_template_match::
346 : kFileDescriptorInfo,
347 : protobuf::reflection::envoy_extensions_path_rewrite_uri_template_v3_uri_template_rewrite::
348 : kFileDescriptorInfo,
349 : protobuf::reflection::
350 : envoy_extensions_quic_connection_id_generator_v3_envoy_deterministic_connection_id_generator::
351 : kFileDescriptorInfo,
352 : protobuf::reflection::envoy_extensions_quic_crypto_stream_v3_crypto_stream::
353 : kFileDescriptorInfo,
354 : protobuf::reflection::envoy_extensions_quic_proof_source_v3_proof_source::kFileDescriptorInfo,
355 : protobuf::reflection::envoy_extensions_regex_engines_v3_google_re2::kFileDescriptorInfo,
356 : protobuf::reflection::envoy_extensions_request_id_uuid_v3_uuid::kFileDescriptorInfo,
357 : protobuf::reflection::
358 : envoy_extensions_transport_sockets_http_11_proxy_v3_upstream_http_11_connect::
359 : kFileDescriptorInfo,
360 : protobuf::reflection::envoy_extensions_transport_sockets_quic_v3_quic_transport::
361 : kFileDescriptorInfo,
362 : protobuf::reflection::envoy_extensions_transport_sockets_raw_buffer_v3_raw_buffer::
363 : kFileDescriptorInfo,
364 : protobuf::reflection::envoy_extensions_transport_sockets_tls_v3_cert::kFileDescriptorInfo,
365 : protobuf::reflection::envoy_extensions_transport_sockets_tls_v3_common::kFileDescriptorInfo,
366 : protobuf::reflection::envoy_extensions_transport_sockets_tls_v3_secret::kFileDescriptorInfo,
367 : protobuf::reflection::envoy_extensions_transport_sockets_tls_v3_tls::kFileDescriptorInfo,
368 : protobuf::reflection::envoy_extensions_transport_sockets_tls_v3_tls_spiffe_validator_config::
369 : kFileDescriptorInfo,
370 : protobuf::reflection::envoy_extensions_udp_packet_writer_v3_udp_default_writer_factory::
371 : kFileDescriptorInfo,
372 : protobuf::reflection::envoy_extensions_udp_packet_writer_v3_udp_gso_batch_writer_factory::
373 : kFileDescriptorInfo,
374 : protobuf::reflection::envoy_extensions_upstreams_http_generic_v3_generic_connection_pool::
375 : kFileDescriptorInfo,
376 : protobuf::reflection::envoy_extensions_upstreams_http_v3_http_protocol_options::
377 : kFileDescriptorInfo,
378 : protobuf::reflection::envoy_extensions_upstreams_tcp_v3_tcp_protocol_options::
379 : kFileDescriptorInfo,
380 : protobuf::reflection::envoy_service_cluster_v3_cds::kFileDescriptorInfo,
381 : protobuf::reflection::envoy_service_discovery_v3_ads::kFileDescriptorInfo,
382 : protobuf::reflection::envoy_service_discovery_v3_discovery::kFileDescriptorInfo,
383 : protobuf::reflection::envoy_service_endpoint_v3_eds::kFileDescriptorInfo,
384 : protobuf::reflection::envoy_service_endpoint_v3_leds::kFileDescriptorInfo,
385 : protobuf::reflection::envoy_service_extension_v3_config_discovery::kFileDescriptorInfo,
386 : protobuf::reflection::envoy_service_health_v3_hds::kFileDescriptorInfo,
387 : protobuf::reflection::envoy_service_listener_v3_lds::kFileDescriptorInfo,
388 : protobuf::reflection::envoy_service_load_stats_v3_lrs::kFileDescriptorInfo,
389 : protobuf::reflection::envoy_service_metrics_v3_metrics_service::kFileDescriptorInfo,
390 : protobuf::reflection::envoy_service_ratelimit_v3_rls::kFileDescriptorInfo,
391 : protobuf::reflection::envoy_service_route_v3_rds::kFileDescriptorInfo,
392 : protobuf::reflection::envoy_service_route_v3_srds::kFileDescriptorInfo,
393 : protobuf::reflection::envoy_service_runtime_v3_rtds::kFileDescriptorInfo,
394 : protobuf::reflection::envoy_service_secret_v3_sds::kFileDescriptorInfo,
395 : protobuf::reflection::envoy_type_matcher_metadata::kFileDescriptorInfo,
396 : protobuf::reflection::envoy_type_matcher_node::kFileDescriptorInfo,
397 : protobuf::reflection::envoy_type_matcher_number::kFileDescriptorInfo,
398 : protobuf::reflection::envoy_type_matcher_path::kFileDescriptorInfo,
399 : protobuf::reflection::envoy_type_matcher_regex::kFileDescriptorInfo,
400 : protobuf::reflection::envoy_type_matcher_string::kFileDescriptorInfo,
401 : protobuf::reflection::envoy_type_matcher_struct::kFileDescriptorInfo,
402 : protobuf::reflection::envoy_type_matcher_value::kFileDescriptorInfo,
403 : protobuf::reflection::envoy_type_matcher_v3_filter_state::kFileDescriptorInfo,
404 : protobuf::reflection::envoy_type_matcher_v3_http_inputs::kFileDescriptorInfo,
405 : protobuf::reflection::envoy_type_matcher_v3_metadata::kFileDescriptorInfo,
406 : protobuf::reflection::envoy_type_matcher_v3_node::kFileDescriptorInfo,
407 : protobuf::reflection::envoy_type_matcher_v3_number::kFileDescriptorInfo,
408 : protobuf::reflection::envoy_type_matcher_v3_path::kFileDescriptorInfo,
409 : protobuf::reflection::envoy_type_matcher_v3_regex::kFileDescriptorInfo,
410 : protobuf::reflection::envoy_type_matcher_v3_status_code_input::kFileDescriptorInfo,
411 : protobuf::reflection::envoy_type_matcher_v3_string::kFileDescriptorInfo,
412 : protobuf::reflection::envoy_type_matcher_v3_struct::kFileDescriptorInfo,
413 : protobuf::reflection::envoy_type_matcher_v3_value::kFileDescriptorInfo,
414 : protobuf::reflection::envoy_type_metadata_v3_metadata::kFileDescriptorInfo,
415 : protobuf::reflection::envoy_type_tracing_v3_custom_tag::kFileDescriptorInfo,
416 : protobuf::reflection::envoy_type_v3_hash_policy::kFileDescriptorInfo,
417 : protobuf::reflection::envoy_type_v3_http::kFileDescriptorInfo,
418 : protobuf::reflection::envoy_type_v3_http_status::kFileDescriptorInfo,
419 : protobuf::reflection::envoy_type_v3_percent::kFileDescriptorInfo,
420 : protobuf::reflection::envoy_type_v3_range::kFileDescriptorInfo,
421 : protobuf::reflection::envoy_type_v3_ratelimit_strategy::kFileDescriptorInfo,
422 : protobuf::reflection::envoy_type_v3_ratelimit_unit::kFileDescriptorInfo,
423 : protobuf::reflection::envoy_type_v3_semantic_version::kFileDescriptorInfo,
424 : protobuf::reflection::envoy_type_v3_token_bucket::kFileDescriptorInfo,
425 : protobuf::reflection::envoy_watchdog_v3_abort_action::kFileDescriptorInfo,
426 : };
427 : for (const FileDescriptorInfo& descriptor : file_descriptors) {
428 : transcoder->loadFileDescriptors(descriptor);
429 : }
430 : return transcoder;
431 : }
432 :
433 : TextFormatTranscoder& getTranscoder() {
434 : // This transcoder is used by createDynamicMessage() to convert an instance of a MessageLite
435 : // subclass into an instance of Message. This Message instance has reflection capabilities
436 : // but does not have the per-field accessors that the generated C++ subclasses have.
437 : // As such it is only useful for reflection uses.
438 : static std::unique_ptr<TextFormatTranscoder> transcoder = createTranscoder();
439 : return *transcoder;
440 : }
441 :
442 : } // namespace
443 :
444 : namespace Envoy {
445 :
446 : void loadFileDescriptors(const FileDescriptorInfo& file_descriptor_info) {
447 : getTranscoder().loadFileDescriptors(file_descriptor_info);
448 : }
449 :
450 : Protobuf::ReflectableMessage createReflectableMessage(const Protobuf::Message& message) {
451 : Protobuf::ReflectableMessage reflectable_message = createDynamicMessage(getTranscoder(), message);
452 : ASSERT(reflectable_message, "Unable to create dyanmic message for: " + message.GetTypeName());
453 : return reflectable_message;
454 : }
455 :
456 : } // namespace Envoy
457 : #endif
|