/proc/self/cwd/source/common/config/utility.h
Line | Count | Source (jump to first uncovered line) |
1 | | #pragma once |
2 | | |
3 | | #include "envoy/api/api.h" |
4 | | #include "envoy/common/random_generator.h" |
5 | | #include "envoy/config/bootstrap/v3/bootstrap.pb.h" |
6 | | #include "envoy/config/cluster/v3/cluster.pb.h" |
7 | | #include "envoy/config/core/v3/address.pb.h" |
8 | | #include "envoy/config/core/v3/config_source.pb.h" |
9 | | #include "envoy/config/endpoint/v3/endpoint.pb.h" |
10 | | #include "envoy/config/grpc_mux.h" |
11 | | #include "envoy/config/subscription.h" |
12 | | #include "envoy/local_info/local_info.h" |
13 | | #include "envoy/registry/registry.h" |
14 | | #include "envoy/server/filter_config.h" |
15 | | #include "envoy/stats/histogram.h" |
16 | | #include "envoy/stats/scope.h" |
17 | | #include "envoy/stats/stats_macros.h" |
18 | | #include "envoy/stats/stats_matcher.h" |
19 | | #include "envoy/stats/tag_producer.h" |
20 | | #include "envoy/upstream/cluster_manager.h" |
21 | | |
22 | | #include "source/common/common/assert.h" |
23 | | #include "source/common/common/backoff_strategy.h" |
24 | | #include "source/common/common/hash.h" |
25 | | #include "source/common/common/hex.h" |
26 | | #include "source/common/common/utility.h" |
27 | | #include "source/common/grpc/common.h" |
28 | | #include "source/common/protobuf/protobuf.h" |
29 | | #include "source/common/protobuf/utility.h" |
30 | | #include "source/common/runtime/runtime_features.h" |
31 | | #include "source/common/singleton/const_singleton.h" |
32 | | #include "source/common/version/api_version.h" |
33 | | #include "source/common/version/api_version_struct.h" |
34 | | |
35 | | #include "absl/types/optional.h" |
36 | | #include "udpa/type/v1/typed_struct.pb.h" |
37 | | #include "xds/type/v3/typed_struct.pb.h" |
38 | | |
39 | | namespace Envoy { |
40 | | namespace Config { |
41 | | |
42 | | constexpr absl::string_view Wildcard = "*"; |
43 | | |
44 | | /** |
45 | | * Constant Api Type Values, used by envoy::config::core::v3::ApiConfigSource. |
46 | | */ |
47 | | class ApiTypeValues { |
48 | | public: |
49 | | const std::string UnsupportedRestLegacy{"REST_LEGACY"}; |
50 | | const std::string Rest{"REST"}; |
51 | | const std::string Grpc{"GRPC"}; |
52 | | }; |
53 | | |
54 | | /** |
55 | | * RateLimitSettings for discovery requests. |
56 | | */ |
57 | | struct RateLimitSettings { |
58 | | // Default Max Tokens. |
59 | | static const uint32_t DefaultMaxTokens = 100; |
60 | | // Default Fill Rate. |
61 | | static constexpr double DefaultFillRate = 10; |
62 | | |
63 | | uint32_t max_tokens_{DefaultMaxTokens}; |
64 | | double fill_rate_{DefaultFillRate}; |
65 | | bool enabled_{false}; |
66 | | }; |
67 | | |
68 | | using ApiType = ConstSingleton<ApiTypeValues>; |
69 | | |
70 | | /** |
71 | | * General config API utilities. |
72 | | */ |
73 | | class Utility { |
74 | | public: |
75 | | /** |
76 | | * Legacy APIs uses JSON and do not have an explicit version. |
77 | | * @param input the input to hash. |
78 | | * @return std::pair<std::string, uint64_t> the string is the hash converted into |
79 | | * a hex string, pre-pended by a user friendly prefix. The uint64_t is the |
80 | | * raw hash. |
81 | | */ |
82 | 0 | static std::pair<std::string, uint64_t> computeHashedVersion(const std::string& input) { |
83 | 0 | uint64_t hash = HashUtil::xxHash64(input); |
84 | 0 | return std::make_pair("hash_" + Hex::uint64ToHex(hash), hash); |
85 | 0 | } |
86 | | |
87 | | /** |
88 | | * Extract refresh_delay as a std::chrono::milliseconds from |
89 | | * envoy::config::core::v3::ApiConfigSource. |
90 | | */ |
91 | | static std::chrono::milliseconds |
92 | | apiConfigSourceRefreshDelay(const envoy::config::core::v3::ApiConfigSource& api_config_source); |
93 | | |
94 | | /** |
95 | | * Extract request_timeout as a std::chrono::milliseconds from |
96 | | * envoy::config::core::v3::ApiConfigSource. If request_timeout isn't set in the config source, a |
97 | | * default value of 1s will be returned. |
98 | | */ |
99 | | static std::chrono::milliseconds |
100 | | apiConfigSourceRequestTimeout(const envoy::config::core::v3::ApiConfigSource& api_config_source); |
101 | | |
102 | | /** |
103 | | * Extract initial_fetch_timeout as a std::chrono::milliseconds from |
104 | | * envoy::config::core::v3::ApiConfigSource. If request_timeout isn't set in the config source, a |
105 | | * default value of 15s will be returned. |
106 | | */ |
107 | | static std::chrono::milliseconds |
108 | | configSourceInitialFetchTimeout(const envoy::config::core::v3::ConfigSource& config_source); |
109 | | |
110 | | /** |
111 | | * Check cluster info for API config sanity. Throws on error. |
112 | | * @param error_prefix supplies the prefix to use in error messages. |
113 | | * @param cluster_name supplies the cluster name to check. |
114 | | * @param cm supplies the cluster manager. |
115 | | * @param allow_added_via_api indicates whether a cluster is allowed to be added via api |
116 | | * rather than be a static resource from the bootstrap config. |
117 | | * @return the main thread cluster if it exists. |
118 | | */ |
119 | | static Upstream::ClusterConstOptRef checkCluster(absl::string_view error_prefix, |
120 | | absl::string_view cluster_name, |
121 | | Upstream::ClusterManager& cm, |
122 | | bool allow_added_via_api = false); |
123 | | |
124 | | /** |
125 | | * Check cluster/local info for API config sanity. Throws on error. |
126 | | * @param error_prefix supplies the prefix to use in error messages. |
127 | | * @param cluster_name supplies the cluster name to check. |
128 | | * @param cm supplies the cluster manager. |
129 | | * @param local_info supplies the local info. |
130 | | * @return the main thread cluster if it exists. |
131 | | */ |
132 | | static Upstream::ClusterConstOptRef |
133 | | checkClusterAndLocalInfo(absl::string_view error_prefix, absl::string_view cluster_name, |
134 | | Upstream::ClusterManager& cm, const LocalInfo::LocalInfo& local_info); |
135 | | |
136 | | /** |
137 | | * Check local info for API config sanity. Throws on error. |
138 | | * @param error_prefix supplies the prefix to use in error messages. |
139 | | * @param local_info supplies the local info. |
140 | | */ |
141 | | static void checkLocalInfo(absl::string_view error_prefix, |
142 | | const LocalInfo::LocalInfo& local_info); |
143 | | |
144 | | /** |
145 | | * Check the existence of a path for a filesystem subscription. Throws on error. |
146 | | * @param path the path to validate. |
147 | | * @param api reference to the Api object |
148 | | */ |
149 | | static void checkFilesystemSubscriptionBackingPath(const std::string& path, Api::Api& api); |
150 | | |
151 | | /** |
152 | | * Check the validity of a cluster backing an api config source. Throws on error. |
153 | | * @param primary_clusters the API config source eligible clusters. |
154 | | * @param cluster_name the cluster name to validate. |
155 | | * @param config_source the config source typed name. |
156 | | * @throws EnvoyException when an API config doesn't have a statically defined non-EDS cluster. |
157 | | */ |
158 | | static void validateClusterName(const Upstream::ClusterManager::ClusterSet& primary_clusters, |
159 | | const std::string& cluster_name, |
160 | | const std::string& config_source); |
161 | | |
162 | | /** |
163 | | * Potentially calls Utility::validateClusterName, if a cluster name can be found. |
164 | | * @param primary_clusters the API config source eligible clusters. |
165 | | * @param api_config_source the config source to validate. |
166 | | * @throws EnvoyException when an API config doesn't have a statically defined non-EDS cluster. |
167 | | */ |
168 | | static void checkApiConfigSourceSubscriptionBackingCluster( |
169 | | const Upstream::ClusterManager::ClusterSet& primary_clusters, |
170 | | const envoy::config::core::v3::ApiConfigSource& api_config_source); |
171 | | |
172 | | /** |
173 | | * Gets the gRPC control plane management server from the API config source. The result is either |
174 | | * a cluster name or a host name. |
175 | | * @param api_config_source the config source to validate. |
176 | | * @return the gRPC control plane server, or absl::nullopt if it couldn't be extracted. |
177 | | */ |
178 | | static absl::optional<std::string> |
179 | | getGrpcControlPlane(const envoy::config::core::v3::ApiConfigSource& api_config_source); |
180 | | |
181 | | /** |
182 | | * Validate transport_api_version field in ApiConfigSource. |
183 | | * @param api_config_source the config source to extract transport API version from. |
184 | | * @returns a failure status when the transport version is disabled. |
185 | | */ |
186 | 1.61k | template <class Proto> static absl::Status checkTransportVersion(const Proto& api_config_source) { |
187 | 1.61k | const auto transport_api_version = api_config_source.transport_api_version(); |
188 | 1.61k | ASSERT_IS_MAIN_OR_TEST_THREAD(); |
189 | 1.61k | if (transport_api_version != envoy::config::core::v3::ApiVersion::V3) { |
190 | 68 | const std::string& warning = fmt::format( |
191 | 68 | "V2 (and AUTO) xDS transport protocol versions are deprecated in {}. " |
192 | 68 | "The v2 xDS major version has been removed and is no longer supported. " |
193 | 68 | "You may be missing explicit V3 configuration of the transport API version, " |
194 | 68 | "see the advice in https://www.envoyproxy.io/docs/envoy/latest/faq/api/envoy_v3.", |
195 | 68 | api_config_source.DebugString()); |
196 | 68 | ENVOY_LOG_MISC(warn, warning); |
197 | 68 | return absl::InvalidArgumentError(warning); |
198 | 68 | } |
199 | 1.55k | return absl::OkStatus(); |
200 | 1.61k | } absl::Status Envoy::Config::Utility::checkTransportVersion<envoy::config::core::v3::ApiConfigSource>(envoy::config::core::v3::ApiConfigSource const&) Line | Count | Source | 186 | 1.58k | template <class Proto> static absl::Status checkTransportVersion(const Proto& api_config_source) { | 187 | 1.58k | const auto transport_api_version = api_config_source.transport_api_version(); | 188 | 1.58k | ASSERT_IS_MAIN_OR_TEST_THREAD(); | 189 | 1.58k | if (transport_api_version != envoy::config::core::v3::ApiVersion::V3) { | 190 | 54 | const std::string& warning = fmt::format( | 191 | 54 | "V2 (and AUTO) xDS transport protocol versions are deprecated in {}. " | 192 | 54 | "The v2 xDS major version has been removed and is no longer supported. " | 193 | 54 | "You may be missing explicit V3 configuration of the transport API version, " | 194 | 54 | "see the advice in https://www.envoyproxy.io/docs/envoy/latest/faq/api/envoy_v3.", | 195 | 54 | api_config_source.DebugString()); | 196 | 54 | ENVOY_LOG_MISC(warn, warning); | 197 | 54 | return absl::InvalidArgumentError(warning); | 198 | 54 | } | 199 | 1.53k | return absl::OkStatus(); | 200 | 1.58k | } |
absl::Status Envoy::Config::Utility::checkTransportVersion<envoy::extensions::filters::network::ext_authz::v3::ExtAuthz>(envoy::extensions::filters::network::ext_authz::v3::ExtAuthz const&) Line | Count | Source | 186 | 8 | template <class Proto> static absl::Status checkTransportVersion(const Proto& api_config_source) { | 187 | 8 | const auto transport_api_version = api_config_source.transport_api_version(); | 188 | 8 | ASSERT_IS_MAIN_OR_TEST_THREAD(); | 189 | 8 | if (transport_api_version != envoy::config::core::v3::ApiVersion::V3) { | 190 | 3 | const std::string& warning = fmt::format( | 191 | 3 | "V2 (and AUTO) xDS transport protocol versions are deprecated in {}. " | 192 | 3 | "The v2 xDS major version has been removed and is no longer supported. " | 193 | 3 | "You may be missing explicit V3 configuration of the transport API version, " | 194 | 3 | "see the advice in https://www.envoyproxy.io/docs/envoy/latest/faq/api/envoy_v3.", | 195 | 3 | api_config_source.DebugString()); | 196 | 3 | ENVOY_LOG_MISC(warn, warning); | 197 | 3 | return absl::InvalidArgumentError(warning); | 198 | 3 | } | 199 | 5 | return absl::OkStatus(); | 200 | 8 | } |
absl::Status Envoy::Config::Utility::checkTransportVersion<envoy::config::ratelimit::v3::RateLimitServiceConfig>(envoy::config::ratelimit::v3::RateLimitServiceConfig const&) Line | Count | Source | 186 | 24 | template <class Proto> static absl::Status checkTransportVersion(const Proto& api_config_source) { | 187 | 24 | const auto transport_api_version = api_config_source.transport_api_version(); | 188 | 24 | ASSERT_IS_MAIN_OR_TEST_THREAD(); | 189 | 24 | if (transport_api_version != envoy::config::core::v3::ApiVersion::V3) { | 190 | 11 | const std::string& warning = fmt::format( | 191 | 11 | "V2 (and AUTO) xDS transport protocol versions are deprecated in {}. " | 192 | 11 | "The v2 xDS major version has been removed and is no longer supported. " | 193 | 11 | "You may be missing explicit V3 configuration of the transport API version, " | 194 | 11 | "see the advice in https://www.envoyproxy.io/docs/envoy/latest/faq/api/envoy_v3.", | 195 | 11 | api_config_source.DebugString()); | 196 | 11 | ENVOY_LOG_MISC(warn, warning); | 197 | 11 | return absl::InvalidArgumentError(warning); | 198 | 11 | } | 199 | 13 | return absl::OkStatus(); | 200 | 24 | } |
Unexecuted instantiation: absl::Status Envoy::Config::Utility::checkTransportVersion<envoy::extensions::access_loggers::grpc::v3::CommonGrpcAccessLogConfig>(envoy::extensions::access_loggers::grpc::v3::CommonGrpcAccessLogConfig const&) Unexecuted instantiation: absl::Status Envoy::Config::Utility::checkTransportVersion<envoy::extensions::filters::http::ext_authz::v3::ExtAuthz>(envoy::extensions::filters::http::ext_authz::v3::ExtAuthz const&) Unexecuted instantiation: absl::Status Envoy::Config::Utility::checkTransportVersion<envoy::config::metrics::v3::MetricsServiceConfig>(envoy::config::metrics::v3::MetricsServiceConfig const&) |
201 | | |
202 | | /** |
203 | | * Parses RateLimit configuration from envoy::config::core::v3::ApiConfigSource to |
204 | | * RateLimitSettings. |
205 | | * @param api_config_source ApiConfigSource. |
206 | | * @return RateLimitSettings. |
207 | | */ |
208 | | static RateLimitSettings |
209 | | parseRateLimitSettings(const envoy::config::core::v3::ApiConfigSource& api_config_source); |
210 | | |
211 | | /** |
212 | | * Generate a ControlPlaneStats object from stats scope. |
213 | | * @param scope for stats. |
214 | | * @return ControlPlaneStats for scope. |
215 | | */ |
216 | 1.16k | static ControlPlaneStats generateControlPlaneStats(Stats::Scope& scope) { |
217 | 1.16k | const std::string control_plane_prefix = "control_plane."; |
218 | 1.16k | return {ALL_CONTROL_PLANE_STATS(POOL_COUNTER_PREFIX(scope, control_plane_prefix), |
219 | 1.16k | POOL_GAUGE_PREFIX(scope, control_plane_prefix), |
220 | 1.16k | POOL_TEXT_READOUT_PREFIX(scope, control_plane_prefix))}; |
221 | 1.16k | } |
222 | | |
223 | | /** |
224 | | * Generate a SubscriptionStats object from stats scope. |
225 | | * @param scope for stats. |
226 | | * @return SubscriptionStats for scope. |
227 | | */ |
228 | 4.30k | static SubscriptionStats generateStats(Stats::Scope& scope) { |
229 | 4.30k | return {ALL_SUBSCRIPTION_STATS(POOL_COUNTER(scope), POOL_GAUGE(scope), POOL_TEXT_READOUT(scope), |
230 | 4.30k | POOL_HISTOGRAM(scope))}; |
231 | 4.30k | } |
232 | | |
233 | | /** |
234 | | * Get a Factory from the registry with a particular name (and templated type) with error checking |
235 | | * to ensure the name and factory are valid. |
236 | | * @param name string identifier for the particular implementation. |
237 | | * @param is_optional exception will be throw when the value is false and no factory found. |
238 | | * @return factory the factory requested or nullptr if it does not exist. |
239 | | */ |
240 | | template <class Factory> |
241 | 23.5k | static Factory* getAndCheckFactoryByName(const std::string& name, bool is_optional) { |
242 | 23.5k | if (name.empty()) { |
243 | 0 | ExceptionUtil::throwEnvoyException("Provided name for static registration lookup was empty."); |
244 | 0 | } |
245 | | |
246 | 23.5k | Factory* factory = Registry::FactoryRegistry<Factory>::getFactory(name); |
247 | | |
248 | 23.5k | if (factory == nullptr && !is_optional) { |
249 | 3.56k | ExceptionUtil::throwEnvoyException( |
250 | 3.56k | fmt::format("Didn't find a registered implementation for name: '{}'", name)); |
251 | 3.56k | } |
252 | | |
253 | 23.5k | return factory; |
254 | 23.5k | } Unexecuted instantiation: Envoy::Upstream::HealthCheckEventSinkFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Upstream::HealthCheckEventSinkFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Upstream::UpstreamLocalAddressSelectorFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Upstream::UpstreamLocalAddressSelectorFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Server::Configuration::NamedUpstreamNetworkFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::NamedUpstreamNetworkFilterConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Server::Configuration::UpstreamHttpFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::UpstreamHttpFilterConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Upstream::TypedLoadBalancerFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Upstream::TypedLoadBalancerFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Server::Configuration::UpstreamTransportSocketConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::UpstreamTransportSocketConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Server::Configuration::CustomHealthCheckerFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::CustomHealthCheckerFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Ssl::HandshakerFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Ssl::HandshakerFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Envoy::Server::Configuration::NamedHttpFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::NamedHttpFilterConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Line | Count | Source | 241 | 6.35k | static Factory* getAndCheckFactoryByName(const std::string& name, bool is_optional) { | 242 | 6.35k | if (name.empty()) { | 243 | 0 | ExceptionUtil::throwEnvoyException("Provided name for static registration lookup was empty."); | 244 | 0 | } | 245 | | | 246 | 6.35k | Factory* factory = Registry::FactoryRegistry<Factory>::getFactory(name); | 247 | | | 248 | 6.35k | if (factory == nullptr && !is_optional) { | 249 | 0 | ExceptionUtil::throwEnvoyException( | 250 | 0 | fmt::format("Didn't find a registered implementation for name: '{}'", name)); | 251 | 0 | } | 252 | | | 253 | 6.35k | return factory; | 254 | 6.35k | } |
Unexecuted instantiation: Envoy::QuicHttpServerConnectionFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::QuicHttpServerConnectionFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Http::Matching::HttpFilterActionContext>* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Matcher::ActionFactory<Envoy::Http::Matching::HttpFilterActionContext> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Matcher::CommonProtocolInputFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Matcher::CommonProtocolInputFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Http::HttpMatchingData>* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Matcher::CustomMatcherFactory<Envoy::Http::HttpMatchingData> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Matcher::InputMatcherFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Matcher::InputMatcherFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::AccessLog::ExtensionFilterFactoryBase<Envoy::Formatter::HttpFormatterContext>* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::AccessLog::ExtensionFilterFactoryBase<Envoy::Formatter::HttpFormatterContext> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Formatter::HttpFormatterContext>* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Formatter::HttpFormatterContext> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Config::ConfigValidatorFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Config::ConfigValidatorFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Router::RouteActionContext>* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Matcher::ActionFactory<Envoy::Router::RouteActionContext> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Upstream::RetryHostPredicateFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Upstream::RetryHostPredicateFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Upstream::RetryPriorityFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Upstream::RetryPriorityFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Upstream::RetryOptionsPredicateFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Upstream::RetryOptionsPredicateFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Router::InternalRedirectPredicateFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Router::InternalRedirectPredicateFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Router::EarlyDataPolicyFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Router::EarlyDataPolicyFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Router::PathRewriterFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Router::PathRewriterFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Router::PathMatcherFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Router::PathMatcherFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Server::Configuration::TracerFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::TracerFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Http::StatefulHeaderKeyFormatterFactoryConfig* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Http::StatefulHeaderKeyFormatterFactoryConfig>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Envoy::Network::DnsResolverFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Network::DnsResolverFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Line | Count | Source | 241 | 1 | static Factory* getAndCheckFactoryByName(const std::string& name, bool is_optional) { | 242 | 1 | if (name.empty()) { | 243 | 0 | ExceptionUtil::throwEnvoyException("Provided name for static registration lookup was empty."); | 244 | 0 | } | 245 | | | 246 | 1 | Factory* factory = Registry::FactoryRegistry<Factory>::getFactory(name); | 247 | | | 248 | 1 | if (factory == nullptr && !is_optional) { | 249 | 0 | ExceptionUtil::throwEnvoyException( | 250 | 0 | fmt::format("Didn't find a registered implementation for name: '{}'", name)); | 251 | 0 | } | 252 | | | 253 | 1 | return factory; | 254 | 1 | } |
Unexecuted instantiation: Envoy::Server::Configuration::DownstreamTransportSocketConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::DownstreamTransportSocketConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Server::Configuration::BootstrapExtensionFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::BootstrapExtensionFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Server::Configuration::FatalActionFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::FatalActionFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Envoy::Server::ListenerManagerFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::ListenerManagerFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Line | Count | Source | 241 | 8.89k | static Factory* getAndCheckFactoryByName(const std::string& name, bool is_optional) { | 242 | 8.89k | if (name.empty()) { | 243 | 0 | ExceptionUtil::throwEnvoyException("Provided name for static registration lookup was empty."); | 244 | 0 | } | 245 | | | 246 | 8.89k | Factory* factory = Registry::FactoryRegistry<Factory>::getFactory(name); | 247 | | | 248 | 8.89k | if (factory == nullptr && !is_optional) { | 249 | 3.55k | ExceptionUtil::throwEnvoyException( | 250 | 3.55k | fmt::format("Didn't find a registered implementation for name: '{}'", name)); | 251 | 3.55k | } | 252 | | | 253 | 8.89k | return factory; | 254 | 8.89k | } |
Unexecuted instantiation: Envoy::Server::Configuration::GuardDogActionFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::GuardDogActionFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Regex::EngineFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Regex::EngineFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Config::XdsResourcesDelegateFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Config::XdsResourcesDelegateFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Config::XdsConfigTrackerFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Config::XdsConfigTrackerFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Upstream::NonThreadAwareLoadBalancerFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Upstream::NonThreadAwareLoadBalancerFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::KeyValueStoreFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::KeyValueStoreFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Server::Configuration::ProactiveResourceMonitorFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::ProactiveResourceMonitorFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Server::Configuration::ResourceMonitorFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::ResourceMonitorFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Envoy::Server::Configuration::NamedListenerFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::NamedListenerFilterConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Line | Count | Source | 241 | 148 | static Factory* getAndCheckFactoryByName(const std::string& name, bool is_optional) { | 242 | 148 | if (name.empty()) { | 243 | 0 | ExceptionUtil::throwEnvoyException("Provided name for static registration lookup was empty."); | 244 | 0 | } | 245 | | | 246 | 148 | Factory* factory = Registry::FactoryRegistry<Factory>::getFactory(name); | 247 | | | 248 | 148 | if (factory == nullptr && !is_optional) { | 249 | 0 | ExceptionUtil::throwEnvoyException( | 250 | 0 | fmt::format("Didn't find a registered implementation for name: '{}'", name)); | 251 | 0 | } | 252 | | | 253 | 148 | return factory; | 254 | 148 | } |
Envoy::Server::Configuration::NamedNetworkFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::NamedNetworkFilterConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Line | Count | Source | 241 | 8.13k | static Factory* getAndCheckFactoryByName(const std::string& name, bool is_optional) { | 242 | 8.13k | if (name.empty()) { | 243 | 0 | ExceptionUtil::throwEnvoyException("Provided name for static registration lookup was empty."); | 244 | 0 | } | 245 | | | 246 | 8.13k | Factory* factory = Registry::FactoryRegistry<Factory>::getFactory(name); | 247 | | | 248 | 8.13k | if (factory == nullptr && !is_optional) { | 249 | 0 | ExceptionUtil::throwEnvoyException( | 250 | 0 | fmt::format("Didn't find a registered implementation for name: '{}'", name)); | 251 | 0 | } | 252 | | | 253 | 8.13k | return factory; | 254 | 8.13k | } |
Unexecuted instantiation: Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Server::Configuration::NamedUdpListenerFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::NamedUdpListenerFilterConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Server::Configuration::ServerFactoryContext>* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Matcher::ActionFactory<Envoy::Server::Configuration::ServerFactoryContext> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Network::MatchingData>* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Matcher::CustomMatcherFactory<Envoy::Network::MatchingData> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Server::Configuration::StatsSinkFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::StatsSinkFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Quic::EnvoyQuicCryptoServerStreamFactoryInterface* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Quic::EnvoyQuicCryptoServerStreamFactoryInterface>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Quic::EnvoyQuicProofSourceFactoryInterface* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Quic::EnvoyQuicProofSourceFactoryInterface>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Quic::EnvoyQuicConnectionIdGeneratorConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Quic::EnvoyQuicConnectionIdGeneratorConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Quic::EnvoyQuicServerPreferredAddressConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Quic::EnvoyQuicServerPreferredAddressConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::Filters::Common::RBAC::ActionContext>* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Matcher::ActionFactory<Envoy::Extensions::Filters::Common::RBAC::ActionContext> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Extensions::Filters::Common::RBAC::MatcherExtensionFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Extensions::Filters::Common::RBAC::MatcherExtensionFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Extensions::NetworkFilters::ThriftProxy::NamedTransportConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Extensions::NetworkFilters::ThriftProxy::NamedTransportConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Extensions::NetworkFilters::ThriftProxy::NamedProtocolConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Extensions::NetworkFilters::ThriftProxy::NamedProtocolConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Geolocation::GeoipProviderFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Geolocation::GeoipProviderFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::RateLimitQuota::RateLimitOnMatchActionContext>* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::RateLimitQuota::RateLimitOnMatchActionContext> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Envoy::Http::SessionStateFactoryConfig* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Http::SessionStateFactoryConfig>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Line | Count | Source | 241 | 2 | static Factory* getAndCheckFactoryByName(const std::string& name, bool is_optional) { | 242 | 2 | if (name.empty()) { | 243 | 0 | ExceptionUtil::throwEnvoyException("Provided name for static registration lookup was empty."); | 244 | 0 | } | 245 | | | 246 | 2 | Factory* factory = Registry::FactoryRegistry<Factory>::getFactory(name); | 247 | | | 248 | 2 | if (factory == nullptr && !is_optional) { | 249 | 2 | ExceptionUtil::throwEnvoyException( | 250 | 2 | fmt::format("Didn't find a registered implementation for name: '{}'", name)); | 251 | 2 | } | 252 | | | 253 | 2 | return factory; | 254 | 2 | } |
Unexecuted instantiation: Envoy::Extensions::NetworkFilters::DubboProxy::NamedProtocolConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Extensions::NetworkFilters::DubboProxy::NamedProtocolConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Extensions::NetworkFilters::DubboProxy::DubboFilters::NamedDubboFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Extensions::NetworkFilters::DubboProxy::DubboFilters::NamedDubboFilterConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Extensions::NetworkFilters::DubboProxy::NamedSerializerConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Extensions::NetworkFilters::DubboProxy::NamedSerializerConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Extensions::NetworkFilters::ThriftProxy::ThriftFilters::NamedThriftFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Extensions::NetworkFilters::ThriftProxy::ThriftFilters::NamedThriftFilterConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Extensions::UdpFilters::UdpProxy::SessionFilters::NamedUdpSessionFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Extensions::UdpFilters::UdpProxy::SessionFilters::NamedUdpSessionFilterConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::UdpFilters::UdpProxy::Router::RouteActionContext>* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Matcher::ActionFactory<Envoy::Extensions::UdpFilters::UdpProxy::Router::RouteActionContext> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Network::UdpMatchingData>* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Matcher::CustomMatcherFactory<Envoy::Network::UdpMatchingData> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Extensions::Common::Tap::TapSinkFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Extensions::Common::Tap::TapSinkFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Extensions::Http::CustomResponse::ModifyRequestHeadersActionFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Extensions::Http::CustomResponse::ModifyRequestHeadersActionFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::CustomResponse::CustomResponseActionFactoryContext>* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::CustomResponse::CustomResponseActionFactoryContext> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) |
255 | | |
256 | | /** |
257 | | * Get a Factory from the registry with a particular name (and templated type) with error checking |
258 | | * to ensure the name and factory are valid. |
259 | | * @param name string identifier for the particular implementation. |
260 | | * @return factory the factory requested or nullptr if it does not exist. |
261 | | */ |
262 | 23.5k | template <class Factory> static Factory& getAndCheckFactoryByName(const std::string& name) { |
263 | 23.5k | return *getAndCheckFactoryByName<Factory>(name, false); |
264 | 23.5k | } Unexecuted instantiation: Envoy::Server::Configuration::CustomHealthCheckerFactory& Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::CustomHealthCheckerFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: Envoy::QuicHttpServerConnectionFactory& Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::QuicHttpServerConnectionFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: Envoy::Server::Configuration::DownstreamTransportSocketConfigFactory& Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::DownstreamTransportSocketConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Envoy::Server::ListenerManagerFactory& Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::ListenerManagerFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Line | Count | Source | 262 | 8.89k | template <class Factory> static Factory& getAndCheckFactoryByName(const std::string& name) { | 263 | 8.89k | return *getAndCheckFactoryByName<Factory>(name, false); | 264 | 8.89k | } |
Unexecuted instantiation: Envoy::Upstream::TypedLoadBalancerFactory& Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Upstream::TypedLoadBalancerFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: Envoy::Upstream::NonThreadAwareLoadBalancerFactory& Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Upstream::NonThreadAwareLoadBalancerFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Envoy::Server::Configuration::NamedListenerFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::NamedListenerFilterConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Line | Count | Source | 262 | 148 | template <class Factory> static Factory& getAndCheckFactoryByName(const std::string& name) { | 263 | 148 | return *getAndCheckFactoryByName<Factory>(name, false); | 264 | 148 | } |
Envoy::Server::Configuration::NamedNetworkFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::NamedNetworkFilterConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Line | Count | Source | 262 | 8.13k | template <class Factory> static Factory& getAndCheckFactoryByName(const std::string& name) { | 263 | 8.13k | return *getAndCheckFactoryByName<Factory>(name, false); | 264 | 8.13k | } |
Unexecuted instantiation: Envoy::Extensions::NetworkFilters::ThriftProxy::NamedTransportConfigFactory& Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Extensions::NetworkFilters::ThriftProxy::NamedTransportConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: Envoy::Extensions::NetworkFilters::ThriftProxy::NamedProtocolConfigFactory& Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Extensions::NetworkFilters::ThriftProxy::NamedProtocolConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Envoy::Http::SessionStateFactoryConfig& Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Http::SessionStateFactoryConfig>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Line | Count | Source | 262 | 2 | template <class Factory> static Factory& getAndCheckFactoryByName(const std::string& name) { | 263 | 2 | return *getAndCheckFactoryByName<Factory>(name, false); | 264 | 2 | } |
Unexecuted instantiation: Envoy::Extensions::NetworkFilters::DubboProxy::NamedProtocolConfigFactory& Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Extensions::NetworkFilters::DubboProxy::NamedProtocolConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: Envoy::Extensions::NetworkFilters::DubboProxy::DubboFilters::NamedDubboFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Extensions::NetworkFilters::DubboProxy::DubboFilters::NamedDubboFilterConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: Envoy::Extensions::NetworkFilters::DubboProxy::NamedSerializerConfigFactory& Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Extensions::NetworkFilters::DubboProxy::NamedSerializerConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: Envoy::Server::Configuration::UpstreamTransportSocketConfigFactory& Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::UpstreamTransportSocketConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Envoy::Server::Configuration::NamedHttpFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::NamedHttpFilterConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Line | Count | Source | 262 | 6.35k | template <class Factory> static Factory& getAndCheckFactoryByName(const std::string& name) { | 263 | 6.35k | return *getAndCheckFactoryByName<Factory>(name, false); | 264 | 6.35k | } |
|
265 | | |
266 | | /** |
267 | | * Get a Factory from the registry with a particular name or return nullptr. |
268 | | * @param name string identifier for the particular implementation. |
269 | | */ |
270 | 72.3k | template <class Factory> static Factory* getFactoryByName(const std::string& name) { |
271 | 72.3k | if (name.empty()) { |
272 | 0 | return nullptr; |
273 | 0 | } |
274 | | |
275 | 72.3k | return Registry::FactoryRegistry<Factory>::getFactory(name); |
276 | 72.3k | } Envoy::Upstream::TypedLoadBalancerFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Upstream::TypedLoadBalancerFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Line | Count | Source | 270 | 3.26k | template <class Factory> static Factory* getFactoryByName(const std::string& name) { | 271 | 3.26k | if (name.empty()) { | 272 | 0 | return nullptr; | 273 | 0 | } | 274 | | | 275 | 3.26k | return Registry::FactoryRegistry<Factory>::getFactory(name); | 276 | 3.26k | } |
Envoy::Router::GenericConnPoolFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Router::GenericConnPoolFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Line | Count | Source | 270 | 28.6k | template <class Factory> static Factory* getFactoryByName(const std::string& name) { | 271 | 28.6k | if (name.empty()) { | 272 | 0 | return nullptr; | 273 | 0 | } | 274 | | | 275 | 28.6k | return Registry::FactoryRegistry<Factory>::getFactory(name); | 276 | 28.6k | } |
Unexecuted instantiation: Envoy::Http::OriginalIPDetectionFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Http::OriginalIPDetectionFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: Envoy::Http::EarlyHeaderMutationFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Http::EarlyHeaderMutationFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: Envoy::Matcher::DataInputFactory<Envoy::Http::HttpMatchingData>* Envoy::Config::Utility::getFactoryByName<Envoy::Matcher::DataInputFactory<Envoy::Http::HttpMatchingData> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: Envoy::Formatter::CommandParserFactoryBase<Envoy::Formatter::HttpFormatterContext>* Envoy::Config::Utility::getFactoryByName<Envoy::Formatter::CommandParserFactoryBase<Envoy::Formatter::HttpFormatterContext> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: Envoy::Router::ClusterSpecifierPluginFactoryConfig* Envoy::Config::Utility::getFactoryByName<Envoy::Router::ClusterSpecifierPluginFactoryConfig>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: Envoy::RateLimit::DescriptorProducerFactory* Envoy::Config::Utility::getFactoryByName<Envoy::RateLimit::DescriptorProducerFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Envoy::Network::ClientConnectionFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Network::ClientConnectionFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Line | Count | Source | 270 | 7.60k | template <class Factory> static Factory* getFactoryByName(const std::string& name) { | 271 | 7.60k | if (name.empty()) { | 272 | 0 | return nullptr; | 273 | 0 | } | 274 | | | 275 | 7.60k | return Registry::FactoryRegistry<Factory>::getFactory(name); | 276 | 7.60k | } |
Envoy::Server::ConnectionHandlerFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Server::ConnectionHandlerFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Line | Count | Source | 270 | 10.8k | template <class Factory> static Factory* getFactoryByName(const std::string& name) { | 271 | 10.8k | if (name.empty()) { | 272 | 0 | return nullptr; | 273 | 0 | } | 274 | | | 275 | 10.8k | return Registry::FactoryRegistry<Factory>::getFactory(name); | 276 | 10.8k | } |
Envoy::Config::MuxFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Config::MuxFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Line | Count | Source | 270 | 22.0k | template <class Factory> static Factory* getFactoryByName(const std::string& name) { | 271 | 22.0k | if (name.empty()) { | 272 | 0 | return nullptr; | 273 | 0 | } | 274 | | | 275 | 22.0k | return Registry::FactoryRegistry<Factory>::getFactory(name); | 276 | 22.0k | } |
Unexecuted instantiation: Envoy::Network::UdpPacketWriterFactoryFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Network::UdpPacketWriterFactoryFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: Envoy::Matcher::DataInputFactory<Envoy::Network::MatchingData>* Envoy::Config::Utility::getFactoryByName<Envoy::Matcher::DataInputFactory<Envoy::Network::MatchingData> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: Envoy::TcpProxy::GenericConnPoolFactory* Envoy::Config::Utility::getFactoryByName<Envoy::TcpProxy::GenericConnPoolFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: Envoy::Matcher::DataInputFactory<Envoy::Network::UdpMatchingData>* Envoy::Config::Utility::getFactoryByName<Envoy::Matcher::DataInputFactory<Envoy::Network::UdpMatchingData> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: Envoy::Extensions::Tracers::OpenTelemetry::SamplerFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Extensions::Tracers::OpenTelemetry::SamplerFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: Envoy::Extensions::Tracers::OpenTelemetry::ResourceDetectorFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Extensions::Tracers::OpenTelemetry::ResourceDetectorFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) |
277 | | |
278 | | /** |
279 | | * Get a Factory from the registry or return nullptr. |
280 | | * @param message proto that contains fields 'name' and 'typed_config'. |
281 | | */ |
282 | | template <class Factory, class ProtoMessage> |
283 | 59.4k | static Factory* getFactory(const ProtoMessage& message) { |
284 | 59.4k | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); |
285 | 59.4k | if (factory != nullptr || |
286 | 59.4k | Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { |
287 | 59.4k | return factory; |
288 | 59.4k | } |
289 | | |
290 | 2 | return Utility::getFactoryByName<Factory>(message.name()); |
291 | 59.4k | } Envoy::Router::GenericConnPoolFactory* Envoy::Config::Utility::getFactory<Envoy::Router::GenericConnPoolFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 283 | 25 | static Factory* getFactory(const ProtoMessage& message) { | 284 | 25 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 285 | 25 | if (factory != nullptr || | 286 | 25 | Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 287 | 25 | return factory; | 288 | 25 | } | 289 | | | 290 | 0 | return Utility::getFactoryByName<Factory>(message.name()); | 291 | 25 | } |
Envoy::Http::OriginalIPDetectionFactory* Envoy::Config::Utility::getFactory<Envoy::Http::OriginalIPDetectionFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 283 | 6.13k | static Factory* getFactory(const ProtoMessage& message) { | 284 | 6.13k | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 285 | 6.13k | if (factory != nullptr || | 286 | 6.13k | Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 287 | 6.13k | return factory; | 288 | 6.13k | } | 289 | | | 290 | 0 | return Utility::getFactoryByName<Factory>(message.name()); | 291 | 6.13k | } |
Envoy::Http::EarlyHeaderMutationFactory* Envoy::Config::Utility::getFactory<Envoy::Http::EarlyHeaderMutationFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 283 | 13 | static Factory* getFactory(const ProtoMessage& message) { | 284 | 13 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 285 | 13 | if (factory != nullptr || | 286 | 13 | Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 287 | 13 | return factory; | 288 | 13 | } | 289 | | | 290 | 0 | return Utility::getFactoryByName<Factory>(message.name()); | 291 | 13 | } |
Envoy::Matcher::DataInputFactory<Envoy::Http::HttpMatchingData>* Envoy::Config::Utility::getFactory<Envoy::Matcher::DataInputFactory<Envoy::Http::HttpMatchingData>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&) Line | Count | Source | 283 | 30.6k | static Factory* getFactory(const ProtoMessage& message) { | 284 | 30.6k | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 285 | 30.6k | if (factory != nullptr || | 286 | 30.6k | Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 287 | 30.6k | return factory; | 288 | 30.6k | } | 289 | | | 290 | 0 | return Utility::getFactoryByName<Factory>(message.name()); | 291 | 30.6k | } |
Envoy::Matcher::DataInputFactory<Envoy::Http::HttpMatchingData>* Envoy::Config::Utility::getFactory<Envoy::Matcher::DataInputFactory<Envoy::Http::HttpMatchingData>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 283 | 1.67k | static Factory* getFactory(const ProtoMessage& message) { | 284 | 1.67k | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 285 | 1.67k | if (factory != nullptr || | 286 | 1.67k | Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 287 | 1.67k | return factory; | 288 | 1.67k | } | 289 | | | 290 | 0 | return Utility::getFactoryByName<Factory>(message.name()); | 291 | 1.67k | } |
Envoy::Formatter::CommandParserFactoryBase<Envoy::Formatter::HttpFormatterContext>* Envoy::Config::Utility::getFactory<Envoy::Formatter::CommandParserFactoryBase<Envoy::Formatter::HttpFormatterContext>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 283 | 4 | static Factory* getFactory(const ProtoMessage& message) { | 284 | 4 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 285 | 4 | if (factory != nullptr || | 286 | 4 | Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 287 | 4 | return factory; | 288 | 4 | } | 289 | | | 290 | 0 | return Utility::getFactoryByName<Factory>(message.name()); | 291 | 4 | } |
Envoy::Router::ClusterSpecifierPluginFactoryConfig* Envoy::Config::Utility::getFactory<Envoy::Router::ClusterSpecifierPluginFactoryConfig, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 283 | 19.2k | static Factory* getFactory(const ProtoMessage& message) { | 284 | 19.2k | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 285 | 19.2k | if (factory != nullptr || | 286 | 19.2k | Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 287 | 19.2k | return factory; | 288 | 19.2k | } | 289 | | | 290 | 0 | return Utility::getFactoryByName<Factory>(message.name()); | 291 | 19.2k | } |
Envoy::RateLimit::DescriptorProducerFactory* Envoy::Config::Utility::getFactory<Envoy::RateLimit::DescriptorProducerFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 283 | 1.68k | static Factory* getFactory(const ProtoMessage& message) { | 284 | 1.68k | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 285 | 1.68k | if (factory != nullptr || | 286 | 1.68k | Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 287 | 1.67k | return factory; | 288 | 1.67k | } | 289 | | | 290 | 2 | return Utility::getFactoryByName<Factory>(message.name()); | 291 | 1.68k | } |
Unexecuted instantiation: Envoy::Network::UdpPacketWriterFactoryFactory* Envoy::Config::Utility::getFactory<Envoy::Network::UdpPacketWriterFactoryFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Matcher::DataInputFactory<Envoy::Network::MatchingData>* Envoy::Config::Utility::getFactory<Envoy::Matcher::DataInputFactory<Envoy::Network::MatchingData>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Matcher::DataInputFactory<Envoy::Network::MatchingData>* Envoy::Config::Utility::getFactory<Envoy::Matcher::DataInputFactory<Envoy::Network::MatchingData>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::TcpProxy::GenericConnPoolFactory* Envoy::Config::Utility::getFactory<Envoy::TcpProxy::GenericConnPoolFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Matcher::DataInputFactory<Envoy::Network::UdpMatchingData>* Envoy::Config::Utility::getFactory<Envoy::Matcher::DataInputFactory<Envoy::Network::UdpMatchingData>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Matcher::DataInputFactory<Envoy::Network::UdpMatchingData>* Envoy::Config::Utility::getFactory<Envoy::Matcher::DataInputFactory<Envoy::Network::UdpMatchingData>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Extensions::Tracers::OpenTelemetry::SamplerFactory* Envoy::Config::Utility::getFactory<Envoy::Extensions::Tracers::OpenTelemetry::SamplerFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Extensions::Tracers::OpenTelemetry::ResourceDetectorFactory* Envoy::Config::Utility::getFactory<Envoy::Extensions::Tracers::OpenTelemetry::ResourceDetectorFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) |
292 | | |
293 | | /** |
294 | | * Get a Factory from the registry with error checking to ensure the name and the factory are |
295 | | * valid. And a flag to control return nullptr or throw an exception. |
296 | | * @param message proto that contains fields 'name' and 'typed_config'. |
297 | | * @param is_optional an exception will be throw when the value is false and no factory found. |
298 | | * @return factory the factory requested or nullptr if it does not exist. |
299 | | */ |
300 | | template <class Factory, class ProtoMessage> |
301 | 96.3k | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { |
302 | 96.3k | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); |
303 | 96.3k | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { |
304 | 72.5k | if (factory == nullptr && !is_optional) { |
305 | 3.54k | ExceptionUtil::throwEnvoyException( |
306 | 3.54k | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", |
307 | 3.54k | message.name(), getFactoryType(message.typed_config()))); |
308 | 3.54k | } |
309 | 72.5k | return factory; |
310 | 72.5k | } else if (factory != nullptr) { |
311 | 23.8k | return factory; |
312 | 23.8k | } |
313 | | |
314 | 14 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); |
315 | 96.3k | } Unexecuted instantiation: Envoy::Upstream::HealthCheckEventSinkFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Upstream::HealthCheckEventSinkFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Envoy::Upstream::UpstreamLocalAddressSelectorFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Upstream::UpstreamLocalAddressSelectorFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 3.26k | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 3.26k | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 3.26k | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 0 | if (factory == nullptr && !is_optional) { | 305 | 0 | ExceptionUtil::throwEnvoyException( | 306 | 0 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 0 | message.name(), getFactoryType(message.typed_config()))); | 308 | 0 | } | 309 | 0 | return factory; | 310 | 3.26k | } else if (factory != nullptr) { | 311 | 3.26k | return factory; | 312 | 3.26k | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 3.26k | } |
Unexecuted instantiation: Envoy::Server::Configuration::NamedUpstreamNetworkFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedUpstreamNetworkFilterConfigFactory, envoy::config::cluster::v3::Filter>(envoy::config::cluster::v3::Filter const&, bool) Envoy::Server::Configuration::UpstreamHttpFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::UpstreamHttpFilterConfigFactory, envoy::extensions::filters::network::http_connection_manager::v3::HttpFilter>(envoy::extensions::filters::network::http_connection_manager::v3::HttpFilter const&, bool) Line | Count | Source | 301 | 3.51k | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 3.51k | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 3.51k | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 251 | if (factory == nullptr && !is_optional) { | 305 | 8 | ExceptionUtil::throwEnvoyException( | 306 | 8 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 8 | message.name(), getFactoryType(message.typed_config()))); | 308 | 8 | } | 309 | 251 | return factory; | 310 | 3.26k | } else if (factory != nullptr) { | 311 | 3.26k | return factory; | 312 | 3.26k | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 3.51k | } |
Unexecuted instantiation: Envoy::Upstream::TypedLoadBalancerFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Upstream::TypedLoadBalancerFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Envoy::Server::Configuration::UpstreamTransportSocketConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::UpstreamTransportSocketConfigFactory, envoy::config::core::v3::TransportSocket>(envoy::config::core::v3::TransportSocket const&, bool) Line | Count | Source | 301 | 3.26k | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 3.26k | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 3.26k | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 0 | if (factory == nullptr && !is_optional) { | 305 | 0 | ExceptionUtil::throwEnvoyException( | 306 | 0 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 0 | message.name(), getFactoryType(message.typed_config()))); | 308 | 0 | } | 309 | 0 | return factory; | 310 | 3.26k | } else if (factory != nullptr) { | 311 | 3.26k | return factory; | 312 | 3.26k | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 3.26k | } |
Unexecuted instantiation: Envoy::Server::Configuration::NamedUpstreamNetworkFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedUpstreamNetworkFilterConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Unexecuted instantiation: Envoy::Server::Configuration::CustomHealthCheckerFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::CustomHealthCheckerFactory, envoy::config::core::v3::HealthCheck_CustomHealthCheck>(envoy::config::core::v3::HealthCheck_CustomHealthCheck const&, bool) Unexecuted instantiation: Envoy::Ssl::HandshakerFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Ssl::HandshakerFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Envoy::Server::Configuration::NamedHttpFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedHttpFilterConfigFactory, envoy::extensions::filters::network::http_connection_manager::v3::HttpFilter>(envoy::extensions::filters::network::http_connection_manager::v3::HttpFilter const&, bool) Line | Count | Source | 301 | 4.16k | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 4.16k | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 4.16k | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 862 | if (factory == nullptr && !is_optional) { | 305 | 674 | ExceptionUtil::throwEnvoyException( | 306 | 674 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 674 | message.name(), getFactoryType(message.typed_config()))); | 308 | 674 | } | 309 | 862 | return factory; | 310 | 3.30k | } else if (factory != nullptr) { | 311 | 3.30k | return factory; | 312 | 3.30k | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 4.16k | } |
Envoy::Matcher::ActionFactory<Envoy::Http::Matching::HttpFilterActionContext>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Http::Matching::HttpFilterActionContext>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 1 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 1 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 1 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 1 | if (factory == nullptr && !is_optional) { | 305 | 1 | ExceptionUtil::throwEnvoyException( | 306 | 1 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 1 | message.name(), getFactoryType(message.typed_config()))); | 308 | 1 | } | 309 | 1 | return factory; | 310 | 1 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 1 | } |
Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Http::Matching::HttpFilterActionContext>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Http::Matching::HttpFilterActionContext>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Envoy::Server::Configuration::NamedHttpFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedHttpFilterConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 761 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 761 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 761 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 761 | if (factory == nullptr && !is_optional) { | 305 | 11 | ExceptionUtil::throwEnvoyException( | 306 | 11 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 11 | message.name(), getFactoryType(message.typed_config()))); | 308 | 11 | } | 309 | 761 | return factory; | 310 | 761 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 761 | } |
Envoy::Matcher::CommonProtocolInputFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CommonProtocolInputFactory, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 66 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 66 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 66 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 66 | if (factory == nullptr && !is_optional) { | 305 | 66 | ExceptionUtil::throwEnvoyException( | 306 | 66 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 66 | message.name(), getFactoryType(message.typed_config()))); | 308 | 66 | } | 309 | 66 | return factory; | 310 | 66 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 66 | } |
Envoy::Matcher::CustomMatcherFactory<Envoy::Http::HttpMatchingData>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CustomMatcherFactory<Envoy::Http::HttpMatchingData>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 26 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 26 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 26 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 26 | if (factory == nullptr && !is_optional) { | 305 | 26 | ExceptionUtil::throwEnvoyException( | 306 | 26 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 26 | message.name(), getFactoryType(message.typed_config()))); | 308 | 26 | } | 309 | 26 | return factory; | 310 | 26 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 26 | } |
Envoy::Matcher::InputMatcherFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::InputMatcherFactory, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 20 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 20 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 20 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 20 | if (factory == nullptr && !is_optional) { | 305 | 20 | ExceptionUtil::throwEnvoyException( | 306 | 20 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 20 | message.name(), getFactoryType(message.typed_config()))); | 308 | 20 | } | 309 | 20 | return factory; | 310 | 20 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 20 | } |
Envoy::Matcher::CommonProtocolInputFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CommonProtocolInputFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 63 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 63 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 63 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 63 | if (factory == nullptr && !is_optional) { | 305 | 63 | ExceptionUtil::throwEnvoyException( | 306 | 63 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 63 | message.name(), getFactoryType(message.typed_config()))); | 308 | 63 | } | 309 | 63 | return factory; | 310 | 63 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 63 | } |
Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Http::HttpMatchingData>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CustomMatcherFactory<Envoy::Http::HttpMatchingData>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Unexecuted instantiation: Envoy::Matcher::InputMatcherFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::InputMatcherFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Unexecuted instantiation: Envoy::Server::Configuration::UpstreamHttpFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::UpstreamHttpFilterConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Envoy::AccessLog::ExtensionFilterFactoryBase<Envoy::Formatter::HttpFormatterContext>* Envoy::Config::Utility::getAndCheckFactory<Envoy::AccessLog::ExtensionFilterFactoryBase<Envoy::Formatter::HttpFormatterContext>, envoy::config::accesslog::v3::ExtensionFilter>(envoy::config::accesslog::v3::ExtensionFilter const&, bool) Line | Count | Source | 301 | 359 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 359 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 359 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 359 | if (factory == nullptr && !is_optional) { | 305 | 359 | ExceptionUtil::throwEnvoyException( | 306 | 359 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 359 | message.name(), getFactoryType(message.typed_config()))); | 308 | 359 | } | 309 | 359 | return factory; | 310 | 359 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 359 | } |
Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Formatter::HttpFormatterContext>* Envoy::Config::Utility::getAndCheckFactory<Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Formatter::HttpFormatterContext>, envoy::config::accesslog::v3::AccessLog>(envoy::config::accesslog::v3::AccessLog const&, bool) Line | Count | Source | 301 | 6.95k | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 6.95k | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 6.95k | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 1.66k | if (factory == nullptr && !is_optional) { | 305 | 1.66k | ExceptionUtil::throwEnvoyException( | 306 | 1.66k | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 1.66k | message.name(), getFactoryType(message.typed_config()))); | 308 | 1.66k | } | 309 | 1.66k | return factory; | 310 | 5.28k | } else if (factory != nullptr) { | 311 | 5.28k | return factory; | 312 | 5.28k | } | 313 | | | 314 | 6 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 6.95k | } |
Envoy::Config::ConfigValidatorFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Config::ConfigValidatorFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 2 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 2 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 2 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 2 | if (factory == nullptr && !is_optional) { | 305 | 2 | ExceptionUtil::throwEnvoyException( | 306 | 2 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 2 | message.name(), getFactoryType(message.typed_config()))); | 308 | 2 | } | 309 | 2 | return factory; | 310 | 2 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 2 | } |
Envoy::Matcher::ActionFactory<Envoy::Router::RouteActionContext>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Router::RouteActionContext>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 56.0k | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 56.0k | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 56.0k | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 56.0k | if (factory == nullptr && !is_optional) { | 305 | 6 | ExceptionUtil::throwEnvoyException( | 306 | 6 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 6 | message.name(), getFactoryType(message.typed_config()))); | 308 | 6 | } | 309 | 56.0k | return factory; | 310 | 56.0k | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 56.0k | } |
Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Router::RouteActionContext>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Router::RouteActionContext>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Envoy::Upstream::RetryHostPredicateFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Upstream::RetryHostPredicateFactory, envoy::config::route::v3::RetryPolicy_RetryHostPredicate>(envoy::config::route::v3::RetryPolicy_RetryHostPredicate const&, bool) Line | Count | Source | 301 | 11 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 11 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 11 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 11 | if (factory == nullptr && !is_optional) { | 305 | 11 | ExceptionUtil::throwEnvoyException( | 306 | 11 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 11 | message.name(), getFactoryType(message.typed_config()))); | 308 | 11 | } | 309 | 11 | return factory; | 310 | 11 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 11 | } |
Envoy::Upstream::RetryPriorityFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Upstream::RetryPriorityFactory, envoy::config::route::v3::RetryPolicy_RetryPriority>(envoy::config::route::v3::RetryPolicy_RetryPriority const&, bool) Line | Count | Source | 301 | 19 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 19 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 19 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 19 | if (factory == nullptr && !is_optional) { | 305 | 19 | ExceptionUtil::throwEnvoyException( | 306 | 19 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 19 | message.name(), getFactoryType(message.typed_config()))); | 308 | 19 | } | 309 | 19 | return factory; | 310 | 19 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 19 | } |
Envoy::Upstream::RetryOptionsPredicateFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Upstream::RetryOptionsPredicateFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 11 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 11 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 11 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 11 | if (factory == nullptr && !is_optional) { | 305 | 11 | ExceptionUtil::throwEnvoyException( | 306 | 11 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 11 | message.name(), getFactoryType(message.typed_config()))); | 308 | 11 | } | 309 | 11 | return factory; | 310 | 11 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 11 | } |
Envoy::Router::InternalRedirectPredicateFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Router::InternalRedirectPredicateFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 18 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 18 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 18 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 18 | if (factory == nullptr && !is_optional) { | 305 | 18 | ExceptionUtil::throwEnvoyException( | 306 | 18 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 18 | message.name(), getFactoryType(message.typed_config()))); | 308 | 18 | } | 309 | 18 | return factory; | 310 | 18 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 18 | } |
Envoy::Router::EarlyDataPolicyFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Router::EarlyDataPolicyFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 134 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 134 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 134 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 134 | if (factory == nullptr && !is_optional) { | 305 | 37 | ExceptionUtil::throwEnvoyException( | 306 | 37 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 37 | message.name(), getFactoryType(message.typed_config()))); | 308 | 37 | } | 309 | 134 | return factory; | 310 | 134 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 134 | } |
Envoy::Router::PathRewriterFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Router::PathRewriterFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 841 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 841 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 841 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 841 | if (factory == nullptr && !is_optional) { | 305 | 27 | ExceptionUtil::throwEnvoyException( | 306 | 27 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 27 | message.name(), getFactoryType(message.typed_config()))); | 308 | 27 | } | 309 | 841 | return factory; | 310 | 841 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 841 | } |
Envoy::Router::PathMatcherFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Router::PathMatcherFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 1.89k | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 1.89k | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 1.89k | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 1.89k | if (factory == nullptr && !is_optional) { | 305 | 25 | ExceptionUtil::throwEnvoyException( | 306 | 25 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 25 | message.name(), getFactoryType(message.typed_config()))); | 308 | 25 | } | 309 | 1.89k | return factory; | 310 | 1.89k | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 1.89k | } |
Envoy::Server::Configuration::TracerFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::TracerFactory, envoy::config::trace::v3::Tracing_Http>(envoy::config::trace::v3::Tracing_Http const&, bool) Line | Count | Source | 301 | 66 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 66 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 66 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 66 | if (factory == nullptr && !is_optional) { | 305 | 66 | ExceptionUtil::throwEnvoyException( | 306 | 66 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 66 | message.name(), getFactoryType(message.typed_config()))); | 308 | 66 | } | 309 | 66 | return factory; | 310 | 66 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 66 | } |
Envoy::Http::StatefulHeaderKeyFormatterFactoryConfig* Envoy::Config::Utility::getAndCheckFactory<Envoy::Http::StatefulHeaderKeyFormatterFactoryConfig, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 7 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 7 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 7 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 7 | if (factory == nullptr && !is_optional) { | 305 | 7 | ExceptionUtil::throwEnvoyException( | 306 | 7 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 7 | message.name(), getFactoryType(message.typed_config()))); | 308 | 7 | } | 309 | 7 | return factory; | 310 | 7 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 7 | } |
Envoy::Network::DnsResolverFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Network::DnsResolverFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 2 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 2 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 2 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 2 | if (factory == nullptr && !is_optional) { | 305 | 2 | ExceptionUtil::throwEnvoyException( | 306 | 2 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 2 | message.name(), getFactoryType(message.typed_config()))); | 308 | 2 | } | 309 | 2 | return factory; | 310 | 2 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 2 | } |
Envoy::Server::Configuration::BootstrapExtensionFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::BootstrapExtensionFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 5 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 5 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 5 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 5 | if (factory == nullptr && !is_optional) { | 305 | 5 | ExceptionUtil::throwEnvoyException( | 306 | 5 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 5 | message.name(), getFactoryType(message.typed_config()))); | 308 | 5 | } | 309 | 5 | return factory; | 310 | 5 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 5 | } |
Envoy::Server::Configuration::FatalActionFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::FatalActionFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 9 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 9 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 9 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 9 | if (factory == nullptr && !is_optional) { | 305 | 9 | ExceptionUtil::throwEnvoyException( | 306 | 9 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 9 | message.name(), getFactoryType(message.typed_config()))); | 308 | 9 | } | 309 | 9 | return factory; | 310 | 9 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 9 | } |
Unexecuted instantiation: Envoy::Server::ListenerManagerFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::ListenerManagerFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Envoy::Server::Configuration::GuardDogActionFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::GuardDogActionFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 27 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 27 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 27 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 27 | if (factory == nullptr && !is_optional) { | 305 | 7 | ExceptionUtil::throwEnvoyException( | 306 | 7 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 7 | message.name(), getFactoryType(message.typed_config()))); | 308 | 7 | } | 309 | 27 | return factory; | 310 | 27 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 27 | } |
Envoy::Regex::EngineFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Regex::EngineFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 174 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 174 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 174 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 166 | if (factory == nullptr && !is_optional) { | 305 | 166 | ExceptionUtil::throwEnvoyException( | 306 | 166 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 166 | message.name(), getFactoryType(message.typed_config()))); | 308 | 166 | } | 309 | 166 | return factory; | 310 | 166 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 8 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 174 | } |
Envoy::Config::XdsResourcesDelegateFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Config::XdsResourcesDelegateFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 5 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 5 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 5 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 5 | if (factory == nullptr && !is_optional) { | 305 | 5 | ExceptionUtil::throwEnvoyException( | 306 | 5 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 5 | message.name(), getFactoryType(message.typed_config()))); | 308 | 5 | } | 309 | 5 | return factory; | 310 | 5 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 5 | } |
Envoy::Config::XdsConfigTrackerFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Config::XdsConfigTrackerFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 2 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 2 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 2 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 2 | if (factory == nullptr && !is_optional) { | 305 | 2 | ExceptionUtil::throwEnvoyException( | 306 | 2 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 2 | message.name(), getFactoryType(message.typed_config()))); | 308 | 2 | } | 309 | 2 | return factory; | 310 | 2 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 2 | } |
Unexecuted instantiation: Envoy::KeyValueStoreFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::KeyValueStoreFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Unexecuted instantiation: Envoy::Server::Configuration::ProactiveResourceMonitorFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::ProactiveResourceMonitorFactory, envoy::config::overload::v3::ResourceMonitor>(envoy::config::overload::v3::ResourceMonitor const&, bool) Envoy::Server::Configuration::ResourceMonitorFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::ResourceMonitorFactory, envoy::config::overload::v3::ResourceMonitor>(envoy::config::overload::v3::ResourceMonitor const&, bool) Line | Count | Source | 301 | 90 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 90 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 90 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 90 | if (factory == nullptr && !is_optional) { | 305 | 90 | ExceptionUtil::throwEnvoyException( | 306 | 90 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 90 | message.name(), getFactoryType(message.typed_config()))); | 308 | 90 | } | 309 | 90 | return factory; | 310 | 90 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 90 | } |
Unexecuted instantiation: Envoy::Server::Configuration::NamedNetworkFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedNetworkFilterConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Unexecuted instantiation: Envoy::Server::Configuration::NamedListenerFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedListenerFilterConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Unexecuted instantiation: Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Envoy::Server::Configuration::NamedNetworkFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedNetworkFilterConfigFactory, envoy::config::listener::v3::Filter>(envoy::config::listener::v3::Filter const&, bool) Line | Count | Source | 301 | 2.72k | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 2.72k | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 2.72k | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 7 | if (factory == nullptr && !is_optional) { | 305 | 7 | ExceptionUtil::throwEnvoyException( | 306 | 7 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 7 | message.name(), getFactoryType(message.typed_config()))); | 308 | 7 | } | 309 | 7 | return factory; | 310 | 2.71k | } else if (factory != nullptr) { | 311 | 2.71k | return factory; | 312 | 2.71k | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 2.72k | } |
Envoy::Server::Configuration::NamedListenerFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedListenerFilterConfigFactory, envoy::config::listener::v3::ListenerFilter>(envoy::config::listener::v3::ListenerFilter const&, bool) Line | Count | Source | 301 | 4 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 4 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 4 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 4 | if (factory == nullptr && !is_optional) { | 305 | 4 | ExceptionUtil::throwEnvoyException( | 306 | 4 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 4 | message.name(), getFactoryType(message.typed_config()))); | 308 | 4 | } | 309 | 4 | return factory; | 310 | 4 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 4 | } |
Envoy::Server::Configuration::NamedUdpListenerFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedUdpListenerFilterConfigFactory, envoy::config::listener::v3::ListenerFilter>(envoy::config::listener::v3::ListenerFilter const&, bool) Line | Count | Source | 301 | 3 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 3 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 3 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 3 | if (factory == nullptr && !is_optional) { | 305 | 3 | ExceptionUtil::throwEnvoyException( | 306 | 3 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 3 | message.name(), getFactoryType(message.typed_config()))); | 308 | 3 | } | 309 | 3 | return factory; | 310 | 3 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 3 | } |
Unexecuted instantiation: Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory, envoy::config::listener::v3::ListenerFilter>(envoy::config::listener::v3::ListenerFilter const&, bool) Envoy::Server::Configuration::DownstreamTransportSocketConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::DownstreamTransportSocketConfigFactory, envoy::config::core::v3::TransportSocket>(envoy::config::core::v3::TransportSocket const&, bool) Line | Count | Source | 301 | 11.6k | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 11.6k | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 11.6k | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 8.92k | if (factory == nullptr && !is_optional) { | 305 | 4 | ExceptionUtil::throwEnvoyException( | 306 | 4 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 4 | message.name(), getFactoryType(message.typed_config()))); | 308 | 4 | } | 309 | 8.92k | return factory; | 310 | 8.92k | } else if (factory != nullptr) { | 311 | 2.71k | return factory; | 312 | 2.71k | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 11.6k | } |
Envoy::Matcher::ActionFactory<Envoy::Server::Configuration::ServerFactoryContext>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Server::Configuration::ServerFactoryContext>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 2 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 2 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 2 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 2 | if (factory == nullptr && !is_optional) { | 305 | 2 | ExceptionUtil::throwEnvoyException( | 306 | 2 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 2 | message.name(), getFactoryType(message.typed_config()))); | 308 | 2 | } | 309 | 2 | return factory; | 310 | 2 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 2 | } |
Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Network::MatchingData>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CustomMatcherFactory<Envoy::Network::MatchingData>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Server::Configuration::ServerFactoryContext>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Server::Configuration::ServerFactoryContext>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Network::MatchingData>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CustomMatcherFactory<Envoy::Network::MatchingData>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&, bool) Envoy::Server::Configuration::StatsSinkFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::StatsSinkFactory, envoy::config::metrics::v3::StatsSink>(envoy::config::metrics::v3::StatsSink const&, bool) Line | Count | Source | 301 | 98 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 98 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 98 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 98 | if (factory == nullptr && !is_optional) { | 305 | 98 | ExceptionUtil::throwEnvoyException( | 306 | 98 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 98 | message.name(), getFactoryType(message.typed_config()))); | 308 | 98 | } | 309 | 98 | return factory; | 310 | 98 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 98 | } |
Envoy::Quic::EnvoyQuicCryptoServerStreamFactoryInterface* Envoy::Config::Utility::getAndCheckFactory<Envoy::Quic::EnvoyQuicCryptoServerStreamFactoryInterface, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 19 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 19 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 19 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 19 | if (factory == nullptr && !is_optional) { | 305 | 5 | ExceptionUtil::throwEnvoyException( | 306 | 5 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 5 | message.name(), getFactoryType(message.typed_config()))); | 308 | 5 | } | 309 | 19 | return factory; | 310 | 19 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 19 | } |
Envoy::Quic::EnvoyQuicProofSourceFactoryInterface* Envoy::Config::Utility::getAndCheckFactory<Envoy::Quic::EnvoyQuicProofSourceFactoryInterface, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 14 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 14 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 14 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 14 | if (factory == nullptr && !is_optional) { | 305 | 5 | ExceptionUtil::throwEnvoyException( | 306 | 5 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 5 | message.name(), getFactoryType(message.typed_config()))); | 308 | 5 | } | 309 | 14 | return factory; | 310 | 14 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 14 | } |
Envoy::Quic::EnvoyQuicConnectionIdGeneratorConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Quic::EnvoyQuicConnectionIdGeneratorConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 9 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 9 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 9 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 9 | if (factory == nullptr && !is_optional) { | 305 | 1 | ExceptionUtil::throwEnvoyException( | 306 | 1 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 1 | message.name(), getFactoryType(message.typed_config()))); | 308 | 1 | } | 309 | 9 | return factory; | 310 | 9 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 9 | } |
Envoy::Quic::EnvoyQuicServerPreferredAddressConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Quic::EnvoyQuicServerPreferredAddressConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 5 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 5 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 5 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 5 | if (factory == nullptr && !is_optional) { | 305 | 5 | ExceptionUtil::throwEnvoyException( | 306 | 5 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 5 | message.name(), getFactoryType(message.typed_config()))); | 308 | 5 | } | 309 | 5 | return factory; | 310 | 5 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 5 | } |
Envoy::Matcher::ActionFactory<Envoy::Extensions::Filters::Common::RBAC::ActionContext>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Extensions::Filters::Common::RBAC::ActionContext>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 1 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 1 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 1 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 1 | if (factory == nullptr && !is_optional) { | 305 | 1 | ExceptionUtil::throwEnvoyException( | 306 | 1 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 1 | message.name(), getFactoryType(message.typed_config()))); | 308 | 1 | } | 309 | 1 | return factory; | 310 | 1 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 1 | } |
Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::Filters::Common::RBAC::ActionContext>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Extensions::Filters::Common::RBAC::ActionContext>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Unexecuted instantiation: Envoy::Extensions::Filters::Common::RBAC::MatcherExtensionFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Extensions::Filters::Common::RBAC::MatcherExtensionFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Envoy::Geolocation::GeoipProviderFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Geolocation::GeoipProviderFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 1 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 1 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 1 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 1 | if (factory == nullptr && !is_optional) { | 305 | 1 | ExceptionUtil::throwEnvoyException( | 306 | 1 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 1 | message.name(), getFactoryType(message.typed_config()))); | 308 | 1 | } | 309 | 1 | return factory; | 310 | 1 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 1 | } |
Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::RateLimitQuota::RateLimitOnMatchActionContext>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::RateLimitQuota::RateLimitOnMatchActionContext>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&, bool) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::RateLimitQuota::RateLimitOnMatchActionContext>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::RateLimitQuota::RateLimitOnMatchActionContext>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Unexecuted instantiation: Envoy::Extensions::NetworkFilters::ThriftProxy::ThriftFilters::NamedThriftFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Extensions::NetworkFilters::ThriftProxy::ThriftFilters::NamedThriftFilterConfigFactory, envoy::extensions::filters::network::thrift_proxy::v3::ThriftFilter>(envoy::extensions::filters::network::thrift_proxy::v3::ThriftFilter const&, bool) Unexecuted instantiation: Envoy::Extensions::UdpFilters::UdpProxy::SessionFilters::NamedUdpSessionFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Extensions::UdpFilters::UdpProxy::SessionFilters::NamedUdpSessionFilterConfigFactory, envoy::extensions::filters::udp::udp_proxy::v3::UdpProxyConfig_SessionFilter>(envoy::extensions::filters::udp::udp_proxy::v3::UdpProxyConfig_SessionFilter const&, bool) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::UdpFilters::UdpProxy::Router::RouteActionContext>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Extensions::UdpFilters::UdpProxy::Router::RouteActionContext>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&, bool) Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Network::UdpMatchingData>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CustomMatcherFactory<Envoy::Network::UdpMatchingData>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::UdpFilters::UdpProxy::Router::RouteActionContext>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Extensions::UdpFilters::UdpProxy::Router::RouteActionContext>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Network::UdpMatchingData>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CustomMatcherFactory<Envoy::Network::UdpMatchingData>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&, bool) Envoy::Extensions::Common::Tap::TapSinkFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Extensions::Common::Tap::TapSinkFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Line | Count | Source | 301 | 1 | static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) { | 302 | 1 | Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config()); | 303 | 1 | if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) { | 304 | 1 | if (factory == nullptr && !is_optional) { | 305 | 1 | ExceptionUtil::throwEnvoyException( | 306 | 1 | fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'", | 307 | 1 | message.name(), getFactoryType(message.typed_config()))); | 308 | 1 | } | 309 | 1 | return factory; | 310 | 1 | } else if (factory != nullptr) { | 311 | 0 | return factory; | 312 | 0 | } | 313 | | | 314 | 0 | return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional); | 315 | 1 | } |
Unexecuted instantiation: Envoy::Extensions::Http::CustomResponse::ModifyRequestHeadersActionFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Extensions::Http::CustomResponse::ModifyRequestHeadersActionFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::CustomResponse::CustomResponseActionFactoryContext>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::CustomResponse::CustomResponseActionFactoryContext>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&, bool) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::CustomResponse::CustomResponseActionFactoryContext>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::CustomResponse::CustomResponseActionFactoryContext>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool) |
316 | | |
317 | | /** |
318 | | * Get a Factory from the registry with error checking to ensure the name and the factory are |
319 | | * valid. |
320 | | * @param message proto that contains fields 'name' and 'typed_config'. |
321 | | */ |
322 | | template <class Factory, class ProtoMessage> |
323 | 85.4k | static Factory& getAndCheckFactory(const ProtoMessage& message) { |
324 | 85.4k | return *getAndCheckFactory<Factory>(message, false); |
325 | 85.4k | } Unexecuted instantiation: Envoy::Upstream::HealthCheckEventSinkFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Upstream::HealthCheckEventSinkFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Server::Configuration::NamedUpstreamNetworkFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedUpstreamNetworkFilterConfigFactory, envoy::config::cluster::v3::Filter>(envoy::config::cluster::v3::Filter const&) Envoy::Server::Configuration::UpstreamTransportSocketConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::UpstreamTransportSocketConfigFactory, envoy::config::core::v3::TransportSocket>(envoy::config::core::v3::TransportSocket const&) Line | Count | Source | 323 | 3.26k | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 3.26k | return *getAndCheckFactory<Factory>(message, false); | 325 | 3.26k | } |
Unexecuted instantiation: Envoy::Server::Configuration::NamedUpstreamNetworkFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedUpstreamNetworkFilterConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Server::Configuration::CustomHealthCheckerFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::CustomHealthCheckerFactory, envoy::config::core::v3::HealthCheck_CustomHealthCheck>(envoy::config::core::v3::HealthCheck_CustomHealthCheck const&) Unexecuted instantiation: Envoy::Ssl::HandshakerFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Ssl::HandshakerFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Envoy::Matcher::ActionFactory<Envoy::Http::Matching::HttpFilterActionContext>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Http::Matching::HttpFilterActionContext>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 1 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 1 | return *getAndCheckFactory<Factory>(message, false); | 325 | 1 | } |
Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Http::Matching::HttpFilterActionContext>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Http::Matching::HttpFilterActionContext>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Envoy::Server::Configuration::NamedHttpFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedHttpFilterConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 761 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 761 | return *getAndCheckFactory<Factory>(message, false); | 325 | 761 | } |
Envoy::Matcher::CommonProtocolInputFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CommonProtocolInputFactory, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 66 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 66 | return *getAndCheckFactory<Factory>(message, false); | 325 | 66 | } |
Envoy::Matcher::CustomMatcherFactory<Envoy::Http::HttpMatchingData>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CustomMatcherFactory<Envoy::Http::HttpMatchingData>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 26 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 26 | return *getAndCheckFactory<Factory>(message, false); | 325 | 26 | } |
Envoy::Matcher::InputMatcherFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::InputMatcherFactory, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 20 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 20 | return *getAndCheckFactory<Factory>(message, false); | 325 | 20 | } |
Envoy::Matcher::CommonProtocolInputFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CommonProtocolInputFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 63 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 63 | return *getAndCheckFactory<Factory>(message, false); | 325 | 63 | } |
Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Http::HttpMatchingData>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CustomMatcherFactory<Envoy::Http::HttpMatchingData>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Matcher::InputMatcherFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::InputMatcherFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Server::Configuration::UpstreamHttpFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::UpstreamHttpFilterConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Envoy::AccessLog::ExtensionFilterFactoryBase<Envoy::Formatter::HttpFormatterContext>& Envoy::Config::Utility::getAndCheckFactory<Envoy::AccessLog::ExtensionFilterFactoryBase<Envoy::Formatter::HttpFormatterContext>, envoy::config::accesslog::v3::ExtensionFilter>(envoy::config::accesslog::v3::ExtensionFilter const&) Line | Count | Source | 323 | 359 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 359 | return *getAndCheckFactory<Factory>(message, false); | 325 | 359 | } |
Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Formatter::HttpFormatterContext>& Envoy::Config::Utility::getAndCheckFactory<Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Formatter::HttpFormatterContext>, envoy::config::accesslog::v3::AccessLog>(envoy::config::accesslog::v3::AccessLog const&) Line | Count | Source | 323 | 6.95k | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 6.95k | return *getAndCheckFactory<Factory>(message, false); | 325 | 6.95k | } |
Envoy::Config::ConfigValidatorFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Config::ConfigValidatorFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 2 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 2 | return *getAndCheckFactory<Factory>(message, false); | 325 | 2 | } |
Envoy::Matcher::ActionFactory<Envoy::Router::RouteActionContext>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Router::RouteActionContext>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 56.0k | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 56.0k | return *getAndCheckFactory<Factory>(message, false); | 325 | 56.0k | } |
Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Router::RouteActionContext>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Router::RouteActionContext>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Envoy::Upstream::RetryHostPredicateFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Upstream::RetryHostPredicateFactory, envoy::config::route::v3::RetryPolicy_RetryHostPredicate>(envoy::config::route::v3::RetryPolicy_RetryHostPredicate const&) Line | Count | Source | 323 | 11 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 11 | return *getAndCheckFactory<Factory>(message, false); | 325 | 11 | } |
Envoy::Upstream::RetryPriorityFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Upstream::RetryPriorityFactory, envoy::config::route::v3::RetryPolicy_RetryPriority>(envoy::config::route::v3::RetryPolicy_RetryPriority const&) Line | Count | Source | 323 | 19 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 19 | return *getAndCheckFactory<Factory>(message, false); | 325 | 19 | } |
Envoy::Upstream::RetryOptionsPredicateFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Upstream::RetryOptionsPredicateFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 11 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 11 | return *getAndCheckFactory<Factory>(message, false); | 325 | 11 | } |
Envoy::Router::InternalRedirectPredicateFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Router::InternalRedirectPredicateFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 18 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 18 | return *getAndCheckFactory<Factory>(message, false); | 325 | 18 | } |
Envoy::Router::EarlyDataPolicyFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Router::EarlyDataPolicyFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 134 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 134 | return *getAndCheckFactory<Factory>(message, false); | 325 | 134 | } |
Envoy::Router::PathRewriterFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Router::PathRewriterFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 841 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 841 | return *getAndCheckFactory<Factory>(message, false); | 325 | 841 | } |
Envoy::Router::PathMatcherFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Router::PathMatcherFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 1.89k | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 1.89k | return *getAndCheckFactory<Factory>(message, false); | 325 | 1.89k | } |
Envoy::Server::Configuration::TracerFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::TracerFactory, envoy::config::trace::v3::Tracing_Http>(envoy::config::trace::v3::Tracing_Http const&) Line | Count | Source | 323 | 66 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 66 | return *getAndCheckFactory<Factory>(message, false); | 325 | 66 | } |
Envoy::Http::StatefulHeaderKeyFormatterFactoryConfig& Envoy::Config::Utility::getAndCheckFactory<Envoy::Http::StatefulHeaderKeyFormatterFactoryConfig, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 7 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 7 | return *getAndCheckFactory<Factory>(message, false); | 325 | 7 | } |
Envoy::Network::DnsResolverFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Network::DnsResolverFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 2 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 2 | return *getAndCheckFactory<Factory>(message, false); | 325 | 2 | } |
Envoy::Server::Configuration::BootstrapExtensionFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::BootstrapExtensionFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 5 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 5 | return *getAndCheckFactory<Factory>(message, false); | 325 | 5 | } |
Envoy::Server::Configuration::FatalActionFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::FatalActionFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 9 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 9 | return *getAndCheckFactory<Factory>(message, false); | 325 | 9 | } |
Envoy::Server::Configuration::GuardDogActionFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::GuardDogActionFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 27 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 27 | return *getAndCheckFactory<Factory>(message, false); | 325 | 27 | } |
Envoy::Regex::EngineFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Regex::EngineFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 174 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 174 | return *getAndCheckFactory<Factory>(message, false); | 325 | 174 | } |
Envoy::Config::XdsResourcesDelegateFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Config::XdsResourcesDelegateFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 5 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 5 | return *getAndCheckFactory<Factory>(message, false); | 325 | 5 | } |
Envoy::Config::XdsConfigTrackerFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Config::XdsConfigTrackerFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 2 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 2 | return *getAndCheckFactory<Factory>(message, false); | 325 | 2 | } |
Unexecuted instantiation: Envoy::KeyValueStoreFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::KeyValueStoreFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Server::Configuration::ProactiveResourceMonitorFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::ProactiveResourceMonitorFactory, envoy::config::overload::v3::ResourceMonitor>(envoy::config::overload::v3::ResourceMonitor const&) Envoy::Server::Configuration::ResourceMonitorFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::ResourceMonitorFactory, envoy::config::overload::v3::ResourceMonitor>(envoy::config::overload::v3::ResourceMonitor const&) Line | Count | Source | 323 | 90 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 90 | return *getAndCheckFactory<Factory>(message, false); | 325 | 90 | } |
Unexecuted instantiation: Envoy::Server::Configuration::NamedNetworkFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedNetworkFilterConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Server::Configuration::NamedListenerFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedListenerFilterConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Envoy::Server::Configuration::NamedNetworkFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedNetworkFilterConfigFactory, envoy::config::listener::v3::Filter>(envoy::config::listener::v3::Filter const&) Line | Count | Source | 323 | 2.72k | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 2.72k | return *getAndCheckFactory<Factory>(message, false); | 325 | 2.72k | } |
Envoy::Server::Configuration::NamedListenerFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedListenerFilterConfigFactory, envoy::config::listener::v3::ListenerFilter>(envoy::config::listener::v3::ListenerFilter const&) Line | Count | Source | 323 | 4 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 4 | return *getAndCheckFactory<Factory>(message, false); | 325 | 4 | } |
Envoy::Server::Configuration::NamedUdpListenerFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedUdpListenerFilterConfigFactory, envoy::config::listener::v3::ListenerFilter>(envoy::config::listener::v3::ListenerFilter const&) Line | Count | Source | 323 | 3 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 3 | return *getAndCheckFactory<Factory>(message, false); | 325 | 3 | } |
Unexecuted instantiation: Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory, envoy::config::listener::v3::ListenerFilter>(envoy::config::listener::v3::ListenerFilter const&) Envoy::Server::Configuration::DownstreamTransportSocketConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::DownstreamTransportSocketConfigFactory, envoy::config::core::v3::TransportSocket>(envoy::config::core::v3::TransportSocket const&) Line | Count | Source | 323 | 11.6k | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 11.6k | return *getAndCheckFactory<Factory>(message, false); | 325 | 11.6k | } |
Envoy::Matcher::ActionFactory<Envoy::Server::Configuration::ServerFactoryContext>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Server::Configuration::ServerFactoryContext>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 2 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 2 | return *getAndCheckFactory<Factory>(message, false); | 325 | 2 | } |
Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Network::MatchingData>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CustomMatcherFactory<Envoy::Network::MatchingData>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Server::Configuration::ServerFactoryContext>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Server::Configuration::ServerFactoryContext>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Network::MatchingData>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CustomMatcherFactory<Envoy::Network::MatchingData>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&) Envoy::Server::Configuration::StatsSinkFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::StatsSinkFactory, envoy::config::metrics::v3::StatsSink>(envoy::config::metrics::v3::StatsSink const&) Line | Count | Source | 323 | 98 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 98 | return *getAndCheckFactory<Factory>(message, false); | 325 | 98 | } |
Envoy::Quic::EnvoyQuicCryptoServerStreamFactoryInterface& Envoy::Config::Utility::getAndCheckFactory<Envoy::Quic::EnvoyQuicCryptoServerStreamFactoryInterface, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 19 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 19 | return *getAndCheckFactory<Factory>(message, false); | 325 | 19 | } |
Envoy::Quic::EnvoyQuicProofSourceFactoryInterface& Envoy::Config::Utility::getAndCheckFactory<Envoy::Quic::EnvoyQuicProofSourceFactoryInterface, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 14 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 14 | return *getAndCheckFactory<Factory>(message, false); | 325 | 14 | } |
Envoy::Quic::EnvoyQuicConnectionIdGeneratorConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Quic::EnvoyQuicConnectionIdGeneratorConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 9 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 9 | return *getAndCheckFactory<Factory>(message, false); | 325 | 9 | } |
Envoy::Quic::EnvoyQuicServerPreferredAddressConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Quic::EnvoyQuicServerPreferredAddressConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 5 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 5 | return *getAndCheckFactory<Factory>(message, false); | 325 | 5 | } |
Envoy::Matcher::ActionFactory<Envoy::Extensions::Filters::Common::RBAC::ActionContext>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Extensions::Filters::Common::RBAC::ActionContext>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 1 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 1 | return *getAndCheckFactory<Factory>(message, false); | 325 | 1 | } |
Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::Filters::Common::RBAC::ActionContext>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Extensions::Filters::Common::RBAC::ActionContext>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Extensions::Filters::Common::RBAC::MatcherExtensionFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Extensions::Filters::Common::RBAC::MatcherExtensionFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Envoy::Geolocation::GeoipProviderFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Geolocation::GeoipProviderFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 1 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 1 | return *getAndCheckFactory<Factory>(message, false); | 325 | 1 | } |
Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::RateLimitQuota::RateLimitOnMatchActionContext>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::RateLimitQuota::RateLimitOnMatchActionContext>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::RateLimitQuota::RateLimitOnMatchActionContext>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::RateLimitQuota::RateLimitOnMatchActionContext>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Extensions::NetworkFilters::ThriftProxy::ThriftFilters::NamedThriftFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Extensions::NetworkFilters::ThriftProxy::ThriftFilters::NamedThriftFilterConfigFactory, envoy::extensions::filters::network::thrift_proxy::v3::ThriftFilter>(envoy::extensions::filters::network::thrift_proxy::v3::ThriftFilter const&) Unexecuted instantiation: Envoy::Extensions::UdpFilters::UdpProxy::SessionFilters::NamedUdpSessionFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Extensions::UdpFilters::UdpProxy::SessionFilters::NamedUdpSessionFilterConfigFactory, envoy::extensions::filters::udp::udp_proxy::v3::UdpProxyConfig_SessionFilter>(envoy::extensions::filters::udp::udp_proxy::v3::UdpProxyConfig_SessionFilter const&) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::UdpFilters::UdpProxy::Router::RouteActionContext>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Extensions::UdpFilters::UdpProxy::Router::RouteActionContext>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Network::UdpMatchingData>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CustomMatcherFactory<Envoy::Network::UdpMatchingData>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::UdpFilters::UdpProxy::Router::RouteActionContext>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Extensions::UdpFilters::UdpProxy::Router::RouteActionContext>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Network::UdpMatchingData>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CustomMatcherFactory<Envoy::Network::UdpMatchingData>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&) Envoy::Extensions::Common::Tap::TapSinkFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Extensions::Common::Tap::TapSinkFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Line | Count | Source | 323 | 1 | static Factory& getAndCheckFactory(const ProtoMessage& message) { | 324 | 1 | return *getAndCheckFactory<Factory>(message, false); | 325 | 1 | } |
Unexecuted instantiation: Envoy::Extensions::Http::CustomResponse::ModifyRequestHeadersActionFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Extensions::Http::CustomResponse::ModifyRequestHeadersActionFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::CustomResponse::CustomResponseActionFactoryContext>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::CustomResponse::CustomResponseActionFactoryContext>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::CustomResponse::CustomResponseActionFactoryContext>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::CustomResponse::CustomResponseActionFactoryContext>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&) |
326 | | |
327 | | /** |
328 | | * Get type URL from a typed config. |
329 | | * @param typed_config for the extension config. |
330 | | */ |
331 | 146k | static std::string getFactoryType(const ProtobufWkt::Any& typed_config) { |
332 | 146k | static const std::string& typed_struct_type = |
333 | 146k | xds::type::v3::TypedStruct::default_instance().GetTypeName(); |
334 | 146k | static const std::string& legacy_typed_struct_type = |
335 | 146k | udpa::type::v1::TypedStruct::default_instance().GetTypeName(); |
336 | | // Unpack methods will only use the fully qualified type name after the last '/'. |
337 | | // https://github.com/protocolbuffers/protobuf/blob/3.6.x/src/google/protobuf/any.proto#L87 |
338 | 146k | auto type = std::string(TypeUtil::typeUrlToDescriptorFullName(typed_config.type_url())); |
339 | 146k | if (type == typed_struct_type) { |
340 | 884 | xds::type::v3::TypedStruct typed_struct; |
341 | 884 | MessageUtil::unpackTo(typed_config, typed_struct); |
342 | | // Not handling nested structs or typed structs in typed structs |
343 | 884 | return std::string(TypeUtil::typeUrlToDescriptorFullName(typed_struct.type_url())); |
344 | 145k | } else if (type == legacy_typed_struct_type) { |
345 | 393 | udpa::type::v1::TypedStruct typed_struct; |
346 | 393 | MessageUtil::unpackTo(typed_config, typed_struct); |
347 | | // Not handling nested structs or typed structs in typed structs |
348 | 393 | return std::string(TypeUtil::typeUrlToDescriptorFullName(typed_struct.type_url())); |
349 | 393 | } |
350 | 144k | return type; |
351 | 146k | } |
352 | | |
353 | | /** |
354 | | * Get a Factory from the registry by type URL. |
355 | | * @param typed_config for the extension config. |
356 | | */ |
357 | 157k | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { |
358 | 157k | if (typed_config.type_url().empty()) { |
359 | 15.8k | return nullptr; |
360 | 15.8k | } |
361 | 141k | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); |
362 | 157k | } Unexecuted instantiation: Envoy::Upstream::HealthCheckEventSinkFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Upstream::HealthCheckEventSinkFactory>(google::protobuf::Any const&) Envoy::Upstream::UpstreamLocalAddressSelectorFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Upstream::UpstreamLocalAddressSelectorFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 3.26k | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 3.26k | if (typed_config.type_url().empty()) { | 359 | 0 | return nullptr; | 360 | 0 | } | 361 | 3.26k | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 3.26k | } |
Unexecuted instantiation: Envoy::Server::Configuration::NamedUpstreamNetworkFilterConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::NamedUpstreamNetworkFilterConfigFactory>(google::protobuf::Any const&) Envoy::Server::Configuration::UpstreamHttpFilterConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::UpstreamHttpFilterConfigFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 3.51k | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 3.51k | if (typed_config.type_url().empty()) { | 359 | 51 | return nullptr; | 360 | 51 | } | 361 | 3.46k | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 3.51k | } |
Unexecuted instantiation: Envoy::Upstream::TypedLoadBalancerFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Upstream::TypedLoadBalancerFactory>(google::protobuf::Any const&) Envoy::Server::Configuration::UpstreamTransportSocketConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::UpstreamTransportSocketConfigFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 3.26k | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 3.26k | if (typed_config.type_url().empty()) { | 359 | 0 | return nullptr; | 360 | 0 | } | 361 | 3.26k | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 3.26k | } |
Unexecuted instantiation: Envoy::Server::Configuration::CustomHealthCheckerFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::CustomHealthCheckerFactory>(google::protobuf::Any const&) Envoy::Router::GenericConnPoolFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Router::GenericConnPoolFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 25 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 25 | if (typed_config.type_url().empty()) { | 359 | 25 | return nullptr; | 360 | 25 | } | 361 | 0 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 25 | } |
Unexecuted instantiation: Envoy::Ssl::HandshakerFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Ssl::HandshakerFactory>(google::protobuf::Any const&) Envoy::Http::OriginalIPDetectionFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Http::OriginalIPDetectionFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 6.13k | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 6.13k | if (typed_config.type_url().empty()) { | 359 | 7 | return nullptr; | 360 | 7 | } | 361 | 6.12k | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 6.13k | } |
Envoy::Http::EarlyHeaderMutationFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Http::EarlyHeaderMutationFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 13 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 13 | if (typed_config.type_url().empty()) { | 359 | 4 | return nullptr; | 360 | 4 | } | 361 | 9 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 13 | } |
Envoy::Server::Configuration::NamedHttpFilterConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::NamedHttpFilterConfigFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 6.97k | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 6.97k | if (typed_config.type_url().empty()) { | 359 | 1.03k | return nullptr; | 360 | 1.03k | } | 361 | 5.94k | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 6.97k | } |
Envoy::Matcher::ActionFactory<Envoy::Http::Matching::HttpFilterActionContext>* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::ActionFactory<Envoy::Http::Matching::HttpFilterActionContext> >(google::protobuf::Any const&) Line | Count | Source | 357 | 1 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 1 | if (typed_config.type_url().empty()) { | 359 | 0 | return nullptr; | 360 | 0 | } | 361 | 1 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 1 | } |
Envoy::Matcher::DataInputFactory<Envoy::Http::HttpMatchingData>* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::DataInputFactory<Envoy::Http::HttpMatchingData> >(google::protobuf::Any const&) Line | Count | Source | 357 | 32.3k | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 32.3k | if (typed_config.type_url().empty()) { | 359 | 22 | return nullptr; | 360 | 22 | } | 361 | 32.3k | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 32.3k | } |
Envoy::Matcher::CommonProtocolInputFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::CommonProtocolInputFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 129 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 129 | if (typed_config.type_url().empty()) { | 359 | 22 | return nullptr; | 360 | 22 | } | 361 | 107 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 129 | } |
Envoy::Matcher::CustomMatcherFactory<Envoy::Http::HttpMatchingData>* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::CustomMatcherFactory<Envoy::Http::HttpMatchingData> >(google::protobuf::Any const&) Line | Count | Source | 357 | 26 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 26 | if (typed_config.type_url().empty()) { | 359 | 6 | return nullptr; | 360 | 6 | } | 361 | 20 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 26 | } |
Envoy::Matcher::InputMatcherFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::InputMatcherFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 20 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 20 | if (typed_config.type_url().empty()) { | 359 | 1 | return nullptr; | 360 | 1 | } | 361 | 19 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 20 | } |
Envoy::Formatter::CommandParserFactoryBase<Envoy::Formatter::HttpFormatterContext>* Envoy::Config::Utility::getFactoryByType<Envoy::Formatter::CommandParserFactoryBase<Envoy::Formatter::HttpFormatterContext> >(google::protobuf::Any const&) Line | Count | Source | 357 | 4 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 4 | if (typed_config.type_url().empty()) { | 359 | 2 | return nullptr; | 360 | 2 | } | 361 | 2 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 4 | } |
Envoy::AccessLog::ExtensionFilterFactoryBase<Envoy::Formatter::HttpFormatterContext>* Envoy::Config::Utility::getFactoryByType<Envoy::AccessLog::ExtensionFilterFactoryBase<Envoy::Formatter::HttpFormatterContext> >(google::protobuf::Any const&) Line | Count | Source | 357 | 359 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 359 | if (typed_config.type_url().empty()) { | 359 | 109 | return nullptr; | 360 | 109 | } | 361 | 250 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 359 | } |
Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Formatter::HttpFormatterContext>* Envoy::Config::Utility::getFactoryByType<Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Formatter::HttpFormatterContext> >(google::protobuf::Any const&) Line | Count | Source | 357 | 6.95k | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 6.95k | if (typed_config.type_url().empty()) { | 359 | 1.34k | return nullptr; | 360 | 1.34k | } | 361 | 5.61k | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 6.95k | } |
Envoy::Config::ConfigValidatorFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Config::ConfigValidatorFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 2 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 2 | if (typed_config.type_url().empty()) { | 359 | 0 | return nullptr; | 360 | 0 | } | 361 | 2 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 2 | } |
Envoy::Router::ClusterSpecifierPluginFactoryConfig* Envoy::Config::Utility::getFactoryByType<Envoy::Router::ClusterSpecifierPluginFactoryConfig>(google::protobuf::Any const&) Line | Count | Source | 357 | 19.2k | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 19.2k | if (typed_config.type_url().empty()) { | 359 | 13.0k | return nullptr; | 360 | 13.0k | } | 361 | 6.21k | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 19.2k | } |
Envoy::Matcher::ActionFactory<Envoy::Router::RouteActionContext>* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::ActionFactory<Envoy::Router::RouteActionContext> >(google::protobuf::Any const&) Line | Count | Source | 357 | 56.0k | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 56.0k | if (typed_config.type_url().empty()) { | 359 | 1 | return nullptr; | 360 | 1 | } | 361 | 56.0k | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 56.0k | } |
Envoy::Upstream::RetryHostPredicateFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Upstream::RetryHostPredicateFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 11 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 11 | if (typed_config.type_url().empty()) { | 359 | 6 | return nullptr; | 360 | 6 | } | 361 | 5 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 11 | } |
Envoy::Upstream::RetryPriorityFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Upstream::RetryPriorityFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 19 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 19 | if (typed_config.type_url().empty()) { | 359 | 12 | return nullptr; | 360 | 12 | } | 361 | 7 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 19 | } |
Envoy::Upstream::RetryOptionsPredicateFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Upstream::RetryOptionsPredicateFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 11 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 11 | if (typed_config.type_url().empty()) { | 359 | 2 | return nullptr; | 360 | 2 | } | 361 | 9 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 11 | } |
Envoy::Router::InternalRedirectPredicateFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Router::InternalRedirectPredicateFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 18 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 18 | if (typed_config.type_url().empty()) { | 359 | 11 | return nullptr; | 360 | 11 | } | 361 | 7 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 18 | } |
Envoy::Router::EarlyDataPolicyFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Router::EarlyDataPolicyFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 134 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 134 | if (typed_config.type_url().empty()) { | 359 | 11 | return nullptr; | 360 | 11 | } | 361 | 123 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 134 | } |
Envoy::Router::PathRewriterFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Router::PathRewriterFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 841 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 841 | if (typed_config.type_url().empty()) { | 359 | 4 | return nullptr; | 360 | 4 | } | 361 | 837 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 841 | } |
Envoy::Router::PathMatcherFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Router::PathMatcherFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 1.89k | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 1.89k | if (typed_config.type_url().empty()) { | 359 | 6 | return nullptr; | 360 | 6 | } | 361 | 1.88k | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 1.89k | } |
Envoy::RateLimit::DescriptorProducerFactory* Envoy::Config::Utility::getFactoryByType<Envoy::RateLimit::DescriptorProducerFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 1.68k | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 1.68k | if (typed_config.type_url().empty()) { | 359 | 11 | return nullptr; | 360 | 11 | } | 361 | 1.66k | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 1.68k | } |
Envoy::Server::Configuration::TracerFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::TracerFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 66 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 66 | if (typed_config.type_url().empty()) { | 359 | 42 | return nullptr; | 360 | 42 | } | 361 | 24 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 66 | } |
Envoy::Http::StatefulHeaderKeyFormatterFactoryConfig* Envoy::Config::Utility::getFactoryByType<Envoy::Http::StatefulHeaderKeyFormatterFactoryConfig>(google::protobuf::Any const&) Line | Count | Source | 357 | 7 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 7 | if (typed_config.type_url().empty()) { | 359 | 2 | return nullptr; | 360 | 2 | } | 361 | 5 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 7 | } |
Envoy::Network::DnsResolverFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Network::DnsResolverFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 2 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 2 | if (typed_config.type_url().empty()) { | 359 | 1 | return nullptr; | 360 | 1 | } | 361 | 1 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 2 | } |
Envoy::Server::Configuration::BootstrapExtensionFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::BootstrapExtensionFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 5 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 5 | if (typed_config.type_url().empty()) { | 359 | 1 | return nullptr; | 360 | 1 | } | 361 | 4 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 5 | } |
Envoy::Server::Configuration::FatalActionFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::FatalActionFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 9 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 9 | if (typed_config.type_url().empty()) { | 359 | 8 | return nullptr; | 360 | 8 | } | 361 | 1 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 9 | } |
Unexecuted instantiation: Envoy::Server::ListenerManagerFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::ListenerManagerFactory>(google::protobuf::Any const&) Envoy::Server::Configuration::GuardDogActionFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::GuardDogActionFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 27 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 27 | if (typed_config.type_url().empty()) { | 359 | 5 | return nullptr; | 360 | 5 | } | 361 | 22 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 27 | } |
Envoy::Regex::EngineFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Regex::EngineFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 174 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 174 | if (typed_config.type_url().empty()) { | 359 | 12 | return nullptr; | 360 | 12 | } | 361 | 162 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 174 | } |
Envoy::Config::XdsResourcesDelegateFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Config::XdsResourcesDelegateFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 5 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 5 | if (typed_config.type_url().empty()) { | 359 | 2 | return nullptr; | 360 | 2 | } | 361 | 3 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 5 | } |
Envoy::Config::XdsConfigTrackerFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Config::XdsConfigTrackerFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 2 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 2 | if (typed_config.type_url().empty()) { | 359 | 0 | return nullptr; | 360 | 0 | } | 361 | 2 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 2 | } |
Unexecuted instantiation: Envoy::KeyValueStoreFactory* Envoy::Config::Utility::getFactoryByType<Envoy::KeyValueStoreFactory>(google::protobuf::Any const&) Unexecuted instantiation: Envoy::Server::Configuration::ProactiveResourceMonitorFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::ProactiveResourceMonitorFactory>(google::protobuf::Any const&) Envoy::Server::Configuration::ResourceMonitorFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::ResourceMonitorFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 90 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 90 | if (typed_config.type_url().empty()) { | 359 | 48 | return nullptr; | 360 | 48 | } | 361 | 42 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 90 | } |
Unexecuted instantiation: Envoy::Network::UdpPacketWriterFactoryFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Network::UdpPacketWriterFactoryFactory>(google::protobuf::Any const&) Envoy::Server::Configuration::NamedNetworkFilterConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::NamedNetworkFilterConfigFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 2.72k | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 2.72k | if (typed_config.type_url().empty()) { | 359 | 3 | return nullptr; | 360 | 3 | } | 361 | 2.71k | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 2.72k | } |
Envoy::Server::Configuration::NamedListenerFilterConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::NamedListenerFilterConfigFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 4 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 4 | if (typed_config.type_url().empty()) { | 359 | 1 | return nullptr; | 360 | 1 | } | 361 | 3 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 4 | } |
Unexecuted instantiation: Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory>(google::protobuf::Any const&) Envoy::Server::Configuration::NamedUdpListenerFilterConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::NamedUdpListenerFilterConfigFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 3 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 3 | if (typed_config.type_url().empty()) { | 359 | 0 | return nullptr; | 360 | 0 | } | 361 | 3 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 3 | } |
Envoy::Server::Configuration::DownstreamTransportSocketConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::DownstreamTransportSocketConfigFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 11.6k | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 11.6k | if (typed_config.type_url().empty()) { | 359 | 4 | return nullptr; | 360 | 4 | } | 361 | 11.6k | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 11.6k | } |
Envoy::Matcher::ActionFactory<Envoy::Server::Configuration::ServerFactoryContext>* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::ActionFactory<Envoy::Server::Configuration::ServerFactoryContext> >(google::protobuf::Any const&) Line | Count | Source | 357 | 2 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 2 | if (typed_config.type_url().empty()) { | 359 | 0 | return nullptr; | 360 | 0 | } | 361 | 2 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 2 | } |
Unexecuted instantiation: Envoy::Matcher::DataInputFactory<Envoy::Network::MatchingData>* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::DataInputFactory<Envoy::Network::MatchingData> >(google::protobuf::Any const&) Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Network::MatchingData>* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::CustomMatcherFactory<Envoy::Network::MatchingData> >(google::protobuf::Any const&) Envoy::Server::Configuration::StatsSinkFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::StatsSinkFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 98 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 98 | if (typed_config.type_url().empty()) { | 359 | 58 | return nullptr; | 360 | 58 | } | 361 | 40 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 98 | } |
Envoy::Quic::EnvoyQuicCryptoServerStreamFactoryInterface* Envoy::Config::Utility::getFactoryByType<Envoy::Quic::EnvoyQuicCryptoServerStreamFactoryInterface>(google::protobuf::Any const&) Line | Count | Source | 357 | 19 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 19 | if (typed_config.type_url().empty()) { | 359 | 1 | return nullptr; | 360 | 1 | } | 361 | 18 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 19 | } |
Envoy::Quic::EnvoyQuicProofSourceFactoryInterface* Envoy::Config::Utility::getFactoryByType<Envoy::Quic::EnvoyQuicProofSourceFactoryInterface>(google::protobuf::Any const&) Line | Count | Source | 357 | 14 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 14 | if (typed_config.type_url().empty()) { | 359 | 0 | return nullptr; | 360 | 0 | } | 361 | 14 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 14 | } |
Envoy::Quic::EnvoyQuicConnectionIdGeneratorConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Quic::EnvoyQuicConnectionIdGeneratorConfigFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 9 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 9 | if (typed_config.type_url().empty()) { | 359 | 0 | return nullptr; | 360 | 0 | } | 361 | 9 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 9 | } |
Envoy::Quic::EnvoyQuicServerPreferredAddressConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Quic::EnvoyQuicServerPreferredAddressConfigFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 5 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 5 | if (typed_config.type_url().empty()) { | 359 | 3 | return nullptr; | 360 | 3 | } | 361 | 2 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 5 | } |
Envoy::Matcher::ActionFactory<Envoy::Extensions::Filters::Common::RBAC::ActionContext>* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::ActionFactory<Envoy::Extensions::Filters::Common::RBAC::ActionContext> >(google::protobuf::Any const&) Line | Count | Source | 357 | 1 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 1 | if (typed_config.type_url().empty()) { | 359 | 0 | return nullptr; | 360 | 0 | } | 361 | 1 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 1 | } |
Unexecuted instantiation: Envoy::Extensions::Filters::Common::RBAC::MatcherExtensionFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Extensions::Filters::Common::RBAC::MatcherExtensionFactory>(google::protobuf::Any const&) Envoy::Geolocation::GeoipProviderFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Geolocation::GeoipProviderFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 1 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 1 | if (typed_config.type_url().empty()) { | 359 | 0 | return nullptr; | 360 | 0 | } | 361 | 1 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 1 | } |
Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::RateLimitQuota::RateLimitOnMatchActionContext>* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::RateLimitQuota::RateLimitOnMatchActionContext> >(google::protobuf::Any const&) Unexecuted instantiation: Envoy::Extensions::NetworkFilters::ThriftProxy::ThriftFilters::NamedThriftFilterConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Extensions::NetworkFilters::ThriftProxy::ThriftFilters::NamedThriftFilterConfigFactory>(google::protobuf::Any const&) Unexecuted instantiation: Envoy::TcpProxy::GenericConnPoolFactory* Envoy::Config::Utility::getFactoryByType<Envoy::TcpProxy::GenericConnPoolFactory>(google::protobuf::Any const&) Unexecuted instantiation: Envoy::Extensions::UdpFilters::UdpProxy::SessionFilters::NamedUdpSessionFilterConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Extensions::UdpFilters::UdpProxy::SessionFilters::NamedUdpSessionFilterConfigFactory>(google::protobuf::Any const&) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::UdpFilters::UdpProxy::Router::RouteActionContext>* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::ActionFactory<Envoy::Extensions::UdpFilters::UdpProxy::Router::RouteActionContext> >(google::protobuf::Any const&) Unexecuted instantiation: Envoy::Matcher::DataInputFactory<Envoy::Network::UdpMatchingData>* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::DataInputFactory<Envoy::Network::UdpMatchingData> >(google::protobuf::Any const&) Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Network::UdpMatchingData>* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::CustomMatcherFactory<Envoy::Network::UdpMatchingData> >(google::protobuf::Any const&) Unexecuted instantiation: Envoy::Extensions::Tracers::OpenTelemetry::SamplerFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Extensions::Tracers::OpenTelemetry::SamplerFactory>(google::protobuf::Any const&) Unexecuted instantiation: Envoy::Extensions::Tracers::OpenTelemetry::ResourceDetectorFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Extensions::Tracers::OpenTelemetry::ResourceDetectorFactory>(google::protobuf::Any const&) Envoy::Extensions::Common::Tap::TapSinkFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Extensions::Common::Tap::TapSinkFactory>(google::protobuf::Any const&) Line | Count | Source | 357 | 1 | template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) { | 358 | 1 | if (typed_config.type_url().empty()) { | 359 | 0 | return nullptr; | 360 | 0 | } | 361 | 1 | return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config)); | 362 | 1 | } |
Unexecuted instantiation: Envoy::Extensions::Http::CustomResponse::ModifyRequestHeadersActionFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Extensions::Http::CustomResponse::ModifyRequestHeadersActionFactory>(google::protobuf::Any const&) Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::CustomResponse::CustomResponseActionFactoryContext>* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::CustomResponse::CustomResponseActionFactoryContext> >(google::protobuf::Any const&) |
363 | | |
364 | | /** |
365 | | * Translate a nested config into a proto message provided by the implementation factory. |
366 | | * @param enclosing_message proto that contains a field 'typed_config'. Note: the enclosing proto |
367 | | * is provided because for statically registered implementations, a custom config is generally |
368 | | * optional, which means the conversion must be done conditionally. |
369 | | * @param validation_visitor message validation visitor instance. |
370 | | * @param factory implementation factory with the method 'createEmptyConfigProto' to produce a |
371 | | * proto to be filled with the translated configuration. |
372 | | */ |
373 | | template <class ProtoMessage, class Factory> |
374 | | static ProtobufTypes::MessagePtr |
375 | | translateToFactoryConfig(const ProtoMessage& enclosing_message, |
376 | | ProtobufMessage::ValidationVisitor& validation_visitor, |
377 | 44.2k | Factory& factory) { |
378 | 44.2k | ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto(); |
379 | | |
380 | | // Fail in an obvious way if a plugin does not return a proto. |
381 | 44.2k | RELEASE_ASSERT(config != nullptr, ""); |
382 | | |
383 | | // Check that the config type is not google.protobuf.Empty |
384 | 44.2k | RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", ""); |
385 | | |
386 | 44.2k | translateOpaqueConfig(enclosing_message.typed_config(), validation_visitor, *config); |
387 | 44.2k | return config; |
388 | 44.2k | } std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::extensions::filters::network::http_connection_manager::v3::HttpFilter, Envoy::Server::Configuration::UpstreamHttpFilterConfigFactory>(envoy::extensions::filters::network::http_connection_manager::v3::HttpFilter const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::UpstreamHttpFilterConfigFactory&) Line | Count | Source | 377 | 3.46k | Factory& factory) { | 378 | 3.46k | ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto(); | 379 | | | 380 | | // Fail in an obvious way if a plugin does not return a proto. | 381 | 3.46k | RELEASE_ASSERT(config != nullptr, ""); | 382 | | | 383 | | // Check that the config type is not google.protobuf.Empty | 384 | 3.46k | RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", ""); | 385 | | | 386 | 3.46k | translateOpaqueConfig(enclosing_message.typed_config(), validation_visitor, *config); | 387 | 3.46k | return config; | 388 | 3.46k | } |
std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::core::v3::TransportSocket, Envoy::Server::Configuration::UpstreamTransportSocketConfigFactory>(envoy::config::core::v3::TransportSocket const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::UpstreamTransportSocketConfigFactory&) Line | Count | Source | 377 | 3.26k | Factory& factory) { | 378 | 3.26k | ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto(); | 379 | | | 380 | | // Fail in an obvious way if a plugin does not return a proto. | 381 | 3.26k | RELEASE_ASSERT(config != nullptr, ""); | 382 | | | 383 | | // Check that the config type is not google.protobuf.Empty | 384 | 3.26k | RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", ""); | 385 | | | 386 | 3.26k | translateOpaqueConfig(enclosing_message.typed_config(), validation_visitor, *config); | 387 | 3.26k | return config; | 388 | 3.26k | } |
std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::extensions::filters::network::http_connection_manager::v3::HttpFilter, Envoy::Server::Configuration::NamedHttpFilterConfigFactory>(envoy::extensions::filters::network::http_connection_manager::v3::HttpFilter const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::NamedHttpFilterConfigFactory&) Line | Count | Source | 377 | 9.66k | Factory& factory) { | 378 | 9.66k | ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto(); | 379 | | | 380 | | // Fail in an obvious way if a plugin does not return a proto. | 381 | 9.66k | RELEASE_ASSERT(config != nullptr, ""); | 382 | | | 383 | | // Check that the config type is not google.protobuf.Empty | 384 | 9.66k | RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", ""); | 385 | | | 386 | 9.66k | translateOpaqueConfig(enclosing_message.typed_config(), validation_visitor, *config); | 387 | 9.66k | return config; | 388 | 9.66k | } |
std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::accesslog::v3::AccessLog, Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Formatter::HttpFormatterContext> >(envoy::config::accesslog::v3::AccessLog const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Formatter::HttpFormatterContext>&) Line | Count | Source | 377 | 5.28k | Factory& factory) { | 378 | 5.28k | ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto(); | 379 | | | 380 | | // Fail in an obvious way if a plugin does not return a proto. | 381 | 5.28k | RELEASE_ASSERT(config != nullptr, ""); | 382 | | | 383 | | // Check that the config type is not google.protobuf.Empty | 384 | 5.28k | RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", ""); | 385 | | | 386 | 5.28k | translateOpaqueConfig(enclosing_message.typed_config(), validation_visitor, *config); | 387 | 5.28k | return config; | 388 | 5.28k | } |
Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::core::v3::TypedExtensionConfig, Envoy::Router::ClusterSpecifierPluginFactoryConfig>(envoy::config::core::v3::TypedExtensionConfig const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Router::ClusterSpecifierPluginFactoryConfig&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::route::v3::RetryPolicy_RetryHostPredicate, Envoy::Upstream::RetryHostPredicateFactory>(envoy::config::route::v3::RetryPolicy_RetryHostPredicate const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Upstream::RetryHostPredicateFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::route::v3::RetryPolicy_RetryPriority, Envoy::Upstream::RetryPriorityFactory>(envoy::config::route::v3::RetryPolicy_RetryPriority const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Upstream::RetryPriorityFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::core::v3::TypedExtensionConfig, Envoy::Upstream::RetryOptionsPredicateFactory>(envoy::config::core::v3::TypedExtensionConfig const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Upstream::RetryOptionsPredicateFactory&) std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::core::v3::TypedExtensionConfig, Envoy::Router::EarlyDataPolicyFactory>(envoy::config::core::v3::TypedExtensionConfig const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Router::EarlyDataPolicyFactory&) Line | Count | Source | 377 | 97 | Factory& factory) { | 378 | 97 | ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto(); | 379 | | | 380 | | // Fail in an obvious way if a plugin does not return a proto. | 381 | 97 | RELEASE_ASSERT(config != nullptr, ""); | 382 | | | 383 | | // Check that the config type is not google.protobuf.Empty | 384 | 97 | RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", ""); | 385 | | | 386 | 97 | translateOpaqueConfig(enclosing_message.typed_config(), validation_visitor, *config); | 387 | 97 | return config; | 388 | 97 | } |
Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::trace::v3::Tracing_Http, Envoy::Server::Configuration::TracerFactory>(envoy::config::trace::v3::Tracing_Http const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::TracerFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::overload::v3::ResourceMonitor, Envoy::Server::Configuration::ProactiveResourceMonitorFactory>(envoy::config::overload::v3::ResourceMonitor const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::ProactiveResourceMonitorFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::overload::v3::ResourceMonitor, Envoy::Server::Configuration::ResourceMonitorFactory>(envoy::config::overload::v3::ResourceMonitor const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::ResourceMonitorFactory&) std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::listener::v3::Filter, Envoy::Server::Configuration::NamedNetworkFilterConfigFactory>(envoy::config::listener::v3::Filter const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::NamedNetworkFilterConfigFactory&) Line | Count | Source | 377 | 10.8k | Factory& factory) { | 378 | 10.8k | ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto(); | 379 | | | 380 | | // Fail in an obvious way if a plugin does not return a proto. | 381 | 10.8k | RELEASE_ASSERT(config != nullptr, ""); | 382 | | | 383 | | // Check that the config type is not google.protobuf.Empty | 384 | 10.8k | RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", ""); | 385 | | | 386 | 10.8k | translateOpaqueConfig(enclosing_message.typed_config(), validation_visitor, *config); | 387 | 10.8k | return config; | 388 | 10.8k | } |
Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::listener::v3::ListenerFilter, Envoy::Server::Configuration::NamedListenerFilterConfigFactory>(envoy::config::listener::v3::ListenerFilter const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::NamedListenerFilterConfigFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::listener::v3::ListenerFilter, Envoy::Server::Configuration::NamedUdpListenerFilterConfigFactory>(envoy::config::listener::v3::ListenerFilter const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::NamedUdpListenerFilterConfigFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::listener::v3::ListenerFilter, Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory>(envoy::config::listener::v3::ListenerFilter const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory&) std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::core::v3::TransportSocket, Envoy::Server::Configuration::DownstreamTransportSocketConfigFactory>(envoy::config::core::v3::TransportSocket const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::DownstreamTransportSocketConfigFactory&) Line | Count | Source | 377 | 11.6k | Factory& factory) { | 378 | 11.6k | ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto(); | 379 | | | 380 | | // Fail in an obvious way if a plugin does not return a proto. | 381 | 11.6k | RELEASE_ASSERT(config != nullptr, ""); | 382 | | | 383 | | // Check that the config type is not google.protobuf.Empty | 384 | 11.6k | RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", ""); | 385 | | | 386 | 11.6k | translateOpaqueConfig(enclosing_message.typed_config(), validation_visitor, *config); | 387 | 11.6k | return config; | 388 | 11.6k | } |
Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::metrics::v3::StatsSink, Envoy::Server::Configuration::StatsSinkFactory>(envoy::config::metrics::v3::StatsSink const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::StatsSinkFactory&) std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::core::v3::TypedExtensionConfig, Envoy::Quic::EnvoyQuicConnectionIdGeneratorConfigFactory>(envoy::config::core::v3::TypedExtensionConfig const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Quic::EnvoyQuicConnectionIdGeneratorConfigFactory&) Line | Count | Source | 377 | 8 | Factory& factory) { | 378 | 8 | ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto(); | 379 | | | 380 | | // Fail in an obvious way if a plugin does not return a proto. | 381 | 8 | RELEASE_ASSERT(config != nullptr, ""); | 382 | | | 383 | | // Check that the config type is not google.protobuf.Empty | 384 | 8 | RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", ""); | 385 | | | 386 | 8 | translateOpaqueConfig(enclosing_message.typed_config(), validation_visitor, *config); | 387 | 8 | return config; | 388 | 8 | } |
Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::core::v3::TypedExtensionConfig, Envoy::Quic::EnvoyQuicServerPreferredAddressConfigFactory>(envoy::config::core::v3::TypedExtensionConfig const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Quic::EnvoyQuicServerPreferredAddressConfigFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::accesslog::v3::ExtensionFilter, Envoy::Extensions::AccessLoggers::Filters::CEL::CELAccessLogExtensionFilterFactory>(envoy::config::accesslog::v3::ExtensionFilter const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Extensions::AccessLoggers::Filters::CEL::CELAccessLogExtensionFilterFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::core::v3::GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin, Envoy::Extensions::GrpcCredentials::FileBasedMetadata::FileBasedMetadataGrpcCredentialsFactory>(envoy::config::core::v3::GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Extensions::GrpcCredentials::FileBasedMetadata::FileBasedMetadataGrpcCredentialsFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::core::v3::GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin, Envoy::Extensions::GrpcCredentials::AwsIam::AwsIamGrpcCredentialsFactory>(envoy::config::core::v3::GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Extensions::GrpcCredentials::AwsIam::AwsIamGrpcCredentialsFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::config::core::v3::TypedExtensionConfig, Envoy::Geolocation::GeoipProviderFactory>(envoy::config::core::v3::TypedExtensionConfig const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Geolocation::GeoipProviderFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::extensions::filters::network::thrift_proxy::v3::ThriftFilter, Envoy::Extensions::NetworkFilters::ThriftProxy::ThriftFilters::NamedThriftFilterConfigFactory>(envoy::extensions::filters::network::thrift_proxy::v3::ThriftFilter const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Extensions::NetworkFilters::ThriftProxy::ThriftFilters::NamedThriftFilterConfigFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateToFactoryConfig<envoy::extensions::filters::udp::udp_proxy::v3::UdpProxyConfig_SessionFilter, Envoy::Extensions::UdpFilters::UdpProxy::SessionFilters::NamedUdpSessionFilterConfigFactory>(envoy::extensions::filters::udp::udp_proxy::v3::UdpProxyConfig_SessionFilter const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Extensions::UdpFilters::UdpProxy::SessionFilters::NamedUdpSessionFilterConfigFactory&) |
389 | | |
390 | | /** |
391 | | * Translate the typed any field into a proto message provided by the implementation factory. |
392 | | * @param typed_config typed configuration. |
393 | | * @param validation_visitor message validation visitor instance. |
394 | | * @param factory implementation factory with the method 'createEmptyConfigProto' to produce a |
395 | | * proto to be filled with the translated configuration. |
396 | | */ |
397 | | template <class Factory> |
398 | | static ProtobufTypes::MessagePtr |
399 | | translateAnyToFactoryConfig(const ProtobufWkt::Any& typed_config, |
400 | | ProtobufMessage::ValidationVisitor& validation_visitor, |
401 | 103k | Factory& factory) { |
402 | 103k | ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto(); |
403 | | |
404 | | // Fail in an obvious way if a plugin does not return a proto. |
405 | 103k | RELEASE_ASSERT(config != nullptr, ""); |
406 | | |
407 | | // Check that the config type is not google.protobuf.Empty |
408 | 103k | RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", ""); |
409 | | |
410 | 103k | translateOpaqueConfig(typed_config, validation_visitor, *config); |
411 | 103k | return config; |
412 | 103k | } Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Server::Configuration::NamedUpstreamNetworkFilterConfigFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::NamedUpstreamNetworkFilterConfigFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Matcher::ActionFactory<Envoy::Http::Matching::HttpFilterActionContext> >(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Matcher::ActionFactory<Envoy::Http::Matching::HttpFilterActionContext>&) std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Server::Configuration::NamedHttpFilterConfigFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::NamedHttpFilterConfigFactory&) Line | Count | Source | 401 | 750 | Factory& factory) { | 402 | 750 | ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto(); | 403 | | | 404 | | // Fail in an obvious way if a plugin does not return a proto. | 405 | 750 | RELEASE_ASSERT(config != nullptr, ""); | 406 | | | 407 | | // Check that the config type is not google.protobuf.Empty | 408 | 750 | RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", ""); | 409 | | | 410 | 750 | translateOpaqueConfig(typed_config, validation_visitor, *config); | 411 | 750 | return config; | 412 | 750 | } |
std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Matcher::DataInputFactory<Envoy::Http::HttpMatchingData> >(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Matcher::DataInputFactory<Envoy::Http::HttpMatchingData>&) Line | Count | Source | 401 | 32.2k | Factory& factory) { | 402 | 32.2k | ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto(); | 403 | | | 404 | | // Fail in an obvious way if a plugin does not return a proto. | 405 | 32.2k | RELEASE_ASSERT(config != nullptr, ""); | 406 | | | 407 | | // Check that the config type is not google.protobuf.Empty | 408 | 32.2k | RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", ""); | 409 | | | 410 | 32.2k | translateOpaqueConfig(typed_config, validation_visitor, *config); | 411 | 32.2k | return config; | 412 | 32.2k | } |
Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Matcher::CommonProtocolInputFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Matcher::CommonProtocolInputFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Matcher::CustomMatcherFactory<Envoy::Http::HttpMatchingData> >(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Matcher::CustomMatcherFactory<Envoy::Http::HttpMatchingData>&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Matcher::InputMatcherFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Matcher::InputMatcherFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Server::Configuration::UpstreamHttpFilterConfigFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::UpstreamHttpFilterConfigFactory&) std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Server::Configuration::RequestIDExtensionFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::RequestIDExtensionFactory&) Line | Count | Source | 401 | 6.14k | Factory& factory) { | 402 | 6.14k | ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto(); | 403 | | | 404 | | // Fail in an obvious way if a plugin does not return a proto. | 405 | 6.14k | RELEASE_ASSERT(config != nullptr, ""); | 406 | | | 407 | | // Check that the config type is not google.protobuf.Empty | 408 | 6.14k | RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", ""); | 409 | | | 410 | 6.14k | translateOpaqueConfig(typed_config, validation_visitor, *config); | 411 | 6.14k | return config; | 412 | 6.14k | } |
Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Formatter::CommandParserFactoryBase<Envoy::Formatter::HttpFormatterContext> >(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Formatter::CommandParserFactoryBase<Envoy::Formatter::HttpFormatterContext>&) std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Matcher::ActionFactory<Envoy::Router::RouteActionContext> >(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Matcher::ActionFactory<Envoy::Router::RouteActionContext>&) Line | Count | Source | 401 | 56.0k | Factory& factory) { | 402 | 56.0k | ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto(); | 403 | | | 404 | | // Fail in an obvious way if a plugin does not return a proto. | 405 | 56.0k | RELEASE_ASSERT(config != nullptr, ""); | 406 | | | 407 | | // Check that the config type is not google.protobuf.Empty | 408 | 56.0k | RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", ""); | 409 | | | 410 | 56.0k | translateOpaqueConfig(typed_config, validation_visitor, *config); | 411 | 56.0k | return config; | 412 | 56.0k | } |
std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Router::PathRewriterFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Router::PathRewriterFactory&) Line | Count | Source | 401 | 814 | Factory& factory) { | 402 | 814 | ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto(); | 403 | | | 404 | | // Fail in an obvious way if a plugin does not return a proto. | 405 | 814 | RELEASE_ASSERT(config != nullptr, ""); | 406 | | | 407 | | // Check that the config type is not google.protobuf.Empty | 408 | 814 | RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", ""); | 409 | | | 410 | 814 | translateOpaqueConfig(typed_config, validation_visitor, *config); | 411 | 814 | return config; | 412 | 814 | } |
std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Router::PathMatcherFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Router::PathMatcherFactory&) Line | Count | Source | 401 | 1.87k | Factory& factory) { | 402 | 1.87k | ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto(); | 403 | | | 404 | | // Fail in an obvious way if a plugin does not return a proto. | 405 | 1.87k | RELEASE_ASSERT(config != nullptr, ""); | 406 | | | 407 | | // Check that the config type is not google.protobuf.Empty | 408 | 1.87k | RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", ""); | 409 | | | 410 | 1.87k | translateOpaqueConfig(typed_config, validation_visitor, *config); | 411 | 1.87k | return config; | 412 | 1.87k | } |
Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::RateLimit::DescriptorProducerFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::RateLimit::DescriptorProducerFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Extensions::Http::HeaderValidators::EnvoyDefault::HeaderValidatorFactoryConfig>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Extensions::Http::HeaderValidators::EnvoyDefault::HeaderValidatorFactoryConfig&) std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Extensions::Http::OriginalIPDetection::Xff::XffIPDetectionFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Extensions::Http::OriginalIPDetection::Xff::XffIPDetectionFactory&) Line | Count | Source | 401 | 6.11k | Factory& factory) { | 402 | 6.11k | ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto(); | 403 | | | 404 | | // Fail in an obvious way if a plugin does not return a proto. | 405 | 6.11k | RELEASE_ASSERT(config != nullptr, ""); | 406 | | | 407 | | // Check that the config type is not google.protobuf.Empty | 408 | 6.11k | RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", ""); | 409 | | | 410 | 6.11k | translateOpaqueConfig(typed_config, validation_visitor, *config); | 411 | 6.11k | return config; | 412 | 6.11k | } |
Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Http::StatefulHeaderKeyFormatterFactoryConfig>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Http::StatefulHeaderKeyFormatterFactoryConfig&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Server::Configuration::BootstrapExtensionFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::BootstrapExtensionFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Regex::EngineFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Regex::EngineFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Server::Configuration::NamedNetworkFilterConfigFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::NamedNetworkFilterConfigFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Server::Configuration::NamedListenerFilterConfigFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::NamedListenerFilterConfigFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Matcher::ActionFactory<Envoy::Server::Configuration::ServerFactoryContext> >(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Matcher::ActionFactory<Envoy::Server::Configuration::ServerFactoryContext>&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Matcher::DataInputFactory<Envoy::Network::MatchingData> >(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Matcher::DataInputFactory<Envoy::Network::MatchingData>&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Matcher::CustomMatcherFactory<Envoy::Network::MatchingData> >(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Matcher::CustomMatcherFactory<Envoy::Network::MatchingData>&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Extensions::Http::EarlyHeaderMutation::HeaderMutation::Factory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Extensions::Http::EarlyHeaderMutation::HeaderMutation::Factory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Extensions::Http::OriginalIPDetection::CustomHeader::CustomHeaderIPDetectionFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Extensions::Http::OriginalIPDetection::CustomHeader::CustomHeaderIPDetectionFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Matcher::ActionFactory<Envoy::Extensions::Filters::Common::RBAC::ActionContext> >(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Matcher::ActionFactory<Envoy::Extensions::Filters::Common::RBAC::ActionContext>&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Compression::Compressor::NamedCompressorLibraryConfigFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Compression::Compressor::NamedCompressorLibraryConfigFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Compression::Decompressor::NamedDecompressorLibraryConfigFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Compression::Decompressor::NamedDecompressorLibraryConfigFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::RateLimitQuota::RateLimitOnMatchActionContext> >(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::RateLimitQuota::RateLimitOnMatchActionContext>&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Http::SessionStateFactoryConfig>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Http::SessionStateFactoryConfig&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Matcher::ActionFactory<Envoy::Extensions::UdpFilters::UdpProxy::Router::RouteActionContext> >(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Matcher::ActionFactory<Envoy::Extensions::UdpFilters::UdpProxy::Router::RouteActionContext>&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Matcher::DataInputFactory<Envoy::Network::UdpMatchingData> >(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Matcher::DataInputFactory<Envoy::Network::UdpMatchingData>&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Matcher::CustomMatcherFactory<Envoy::Network::UdpMatchingData> >(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Matcher::CustomMatcherFactory<Envoy::Network::UdpMatchingData>&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Extensions::Tracers::OpenTelemetry::EnvironmentResourceDetectorFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Extensions::Tracers::OpenTelemetry::EnvironmentResourceDetectorFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Extensions::Common::Tap::TapSinkFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Extensions::Common::Tap::TapSinkFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Extensions::Http::CustomResponse::ModifyRequestHeadersActionFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Extensions::Http::CustomResponse::ModifyRequestHeadersActionFactory&) Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::CustomResponse::CustomResponseActionFactoryContext> >(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Matcher::ActionFactory<Envoy::Extensions::HttpFilters::CustomResponse::CustomResponseActionFactoryContext>&) |
413 | | |
414 | | /** |
415 | | * Truncates the message to a length less than default GRPC trailers size limit (by default 8KiB). |
416 | | */ |
417 | | static std::string truncateGrpcStatusMessage(absl::string_view error_message); |
418 | | |
419 | | /** |
420 | | * Create TagProducer instance. Check all tag names for conflicts to avoid |
421 | | * unexpected tag name overwriting. |
422 | | * @param bootstrap bootstrap proto. |
423 | | * @param cli_tags tags that are provided by the cli |
424 | | * @throws EnvoyException when the conflict of tag names is found. |
425 | | */ |
426 | | static Stats::TagProducerPtr |
427 | | createTagProducer(const envoy::config::bootstrap::v3::Bootstrap& bootstrap, |
428 | | const Stats::TagVector& cli_tags); |
429 | | |
430 | | /** |
431 | | * Create StatsMatcher instance. |
432 | | */ |
433 | | static Stats::StatsMatcherPtr |
434 | | createStatsMatcher(const envoy::config::bootstrap::v3::Bootstrap& bootstrap, |
435 | | Stats::SymbolTable& symbol_table); |
436 | | |
437 | | /** |
438 | | * Create HistogramSettings instance. |
439 | | */ |
440 | | static Stats::HistogramSettingsConstPtr |
441 | | createHistogramSettings(const envoy::config::bootstrap::v3::Bootstrap& bootstrap); |
442 | | |
443 | | /** |
444 | | * Obtain gRPC async client factory from a envoy::config::core::v3::ApiConfigSource. |
445 | | * @param async_client_manager gRPC async client manager. |
446 | | * @param api_config_source envoy::config::core::v3::ApiConfigSource. Must have config type GRPC. |
447 | | * @param skip_cluster_check whether to skip cluster validation. |
448 | | * @return Grpc::AsyncClientFactoryPtr gRPC async client factory. |
449 | | */ |
450 | | static Grpc::AsyncClientFactoryPtr |
451 | | factoryForGrpcApiConfigSource(Grpc::AsyncClientManager& async_client_manager, |
452 | | const envoy::config::core::v3::ApiConfigSource& api_config_source, |
453 | | Stats::Scope& scope, bool skip_cluster_check); |
454 | | |
455 | | /** |
456 | | * Translate opaque config from google.protobuf.Any to defined proto message. |
457 | | * @param typed_config opaque config packed in google.protobuf.Any |
458 | | * @param validation_visitor message validation visitor instance. |
459 | | * @param out_proto the proto message instantiated by extensions |
460 | | */ |
461 | | static void translateOpaqueConfig(const ProtobufWkt::Any& typed_config, |
462 | | ProtobufMessage::ValidationVisitor& validation_visitor, |
463 | | Protobuf::Message& out_proto); |
464 | | |
465 | | /** |
466 | | * Verify that any filter designed to be terminal is configured to be terminal, and vice versa. |
467 | | * @param name the name of the filter. |
468 | | * @param filter_type the type of filter. |
469 | | * @param filter_chain_type the type of filter chain. |
470 | | * @param is_terminal_filter true if the filter is designed to be terminal. |
471 | | * @param last_filter_in_current_config true if the filter is last in the configuration. |
472 | | * @throws EnvoyException if there is a mismatch between design and configuration. |
473 | | */ |
474 | | static void validateTerminalFilters(const std::string& name, const std::string& filter_type, |
475 | | const std::string& filter_chain_type, bool is_terminal_filter, |
476 | 9.47k | bool last_filter_in_current_config) { |
477 | 9.47k | if (is_terminal_filter && !last_filter_in_current_config) { |
478 | 0 | ExceptionUtil::throwEnvoyException( |
479 | 0 | fmt::format("Error: terminal filter named {} of type {} must be the " |
480 | 0 | "last filter in a {} filter chain.", |
481 | 0 | name, filter_type, filter_chain_type)); |
482 | 9.47k | } else if (!is_terminal_filter && last_filter_in_current_config) { |
483 | 34 | ExceptionUtil::throwEnvoyException(fmt::format( |
484 | 34 | "Error: non-terminal filter named {} of type {} is the last filter in a {} filter chain.", |
485 | 34 | name, filter_type, filter_chain_type)); |
486 | 34 | } |
487 | 9.47k | } |
488 | | |
489 | | /** |
490 | | * Prepares the DNS failure refresh backoff strategy given the cluster configuration. |
491 | | * @param config the config that contains dns refresh information. |
492 | | * @param dns_refresh_rate_ms the default DNS refresh rate. |
493 | | * @param random the random generator. |
494 | | * @return BackOffStrategyPtr for scheduling refreshes. |
495 | | */ |
496 | | template <typename T> |
497 | | static BackOffStrategyPtr prepareDnsRefreshStrategy(const T& config, uint64_t dns_refresh_rate_ms, |
498 | 0 | Random::RandomGenerator& random) { |
499 | 0 | if (config.has_dns_failure_refresh_rate()) { |
500 | 0 | uint64_t base_interval_ms = |
501 | 0 | PROTOBUF_GET_MS_REQUIRED(config.dns_failure_refresh_rate(), base_interval); |
502 | 0 | uint64_t max_interval_ms = PROTOBUF_GET_MS_OR_DEFAULT(config.dns_failure_refresh_rate(), |
503 | 0 | max_interval, base_interval_ms * 10); |
504 | 0 | if (max_interval_ms < base_interval_ms) { |
505 | 0 | ExceptionUtil::throwEnvoyException( |
506 | 0 | "dns_failure_refresh_rate must have max_interval greater than " |
507 | 0 | "or equal to the base_interval"); |
508 | 0 | } |
509 | 0 | return std::make_unique<JitteredExponentialBackOffStrategy>(base_interval_ms, max_interval_ms, |
510 | 0 | random); |
511 | 0 | } |
512 | 0 | return std::make_unique<FixedBackOffStrategy>(dns_refresh_rate_ms); |
513 | 0 | } Unexecuted instantiation: std::__1::unique_ptr<Envoy::BackOffStrategy, std::__1::default_delete<Envoy::BackOffStrategy> > Envoy::Config::Utility::prepareDnsRefreshStrategy<envoy::config::cluster::v3::Cluster>(envoy::config::cluster::v3::Cluster const&, unsigned long, Envoy::Random::RandomGenerator&) Unexecuted instantiation: std::__1::unique_ptr<Envoy::BackOffStrategy, std::__1::default_delete<Envoy::BackOffStrategy> > Envoy::Config::Utility::prepareDnsRefreshStrategy<envoy::extensions::common::dynamic_forward_proxy::v3::DnsCacheConfig>(envoy::extensions::common::dynamic_forward_proxy::v3::DnsCacheConfig const&, unsigned long, Envoy::Random::RandomGenerator&) |
514 | | |
515 | | /** |
516 | | * Returns Jittered Exponential BackOff Strategy from BackoffStrategy config if present or |
517 | | * provided default timer values |
518 | | * @param api_config_source config |
519 | | * @param random random generator |
520 | | * @param default_base_interval_ms Default base interval, must be > 0 |
521 | | * @param default_max_interval_ms (optional) Default maximum interval |
522 | | * @return JitteredExponentialBackOffStrategyPtr if 1. Backoff Strategy is |
523 | | * found in the config or 2. default base interval and default maximum interval is specified or 3. |
524 | | * max interval is set to 10*default base interval |
525 | | */ |
526 | | static JitteredExponentialBackOffStrategyPtr prepareJitteredExponentialBackOffStrategy( |
527 | | const envoy::config::core::v3::ApiConfigSource& api_config_source, |
528 | | Random::RandomGenerator& random, const uint32_t default_base_interval_ms, |
529 | 1.18k | absl::optional<const uint32_t> default_max_interval_ms) { |
530 | | |
531 | 1.18k | auto& grpc_services = api_config_source.grpc_services(); |
532 | 1.18k | if (!grpc_services.empty() && grpc_services[0].has_envoy_grpc()) { |
533 | 193 | return prepareJitteredExponentialBackOffStrategy( |
534 | 193 | grpc_services[0].envoy_grpc(), random, default_base_interval_ms, default_max_interval_ms); |
535 | 193 | } |
536 | 995 | return buildJitteredExponentialBackOffStrategy(absl::nullopt, random, default_base_interval_ms, |
537 | 995 | default_max_interval_ms); |
538 | 1.18k | } |
539 | | |
540 | | /** |
541 | | * Prepares Jittered Exponential BackOff Strategy from config containing the Retry Policy |
542 | | * @param config config containing RetryPolicy <envoy_v3_api_msg_config.core.v3.RetryPolicy> |
543 | | * @param random random generator |
544 | | * @param default_base_interval_ms Default base interval, must be > 0 |
545 | | * @param default_max_interval_ms (optional) Default maximum interval |
546 | | * @return JitteredExponentialBackOffStrategyPtr if 1. RetryPolicy containing backoff values is |
547 | | * found in config or 2. default base interval and default maximum interval is specified or 3. |
548 | | * default max interval is set to 10*default base interval |
549 | | */ |
550 | | template <typename T> |
551 | | static JitteredExponentialBackOffStrategyPtr prepareJitteredExponentialBackOffStrategy( |
552 | | const T& config, Random::RandomGenerator& random, const uint32_t default_base_interval_ms, |
553 | 193 | absl::optional<const uint32_t> default_max_interval_ms) { |
554 | | // If RetryPolicy containing backoff values is found in config |
555 | 193 | if (config.has_retry_policy() && config.retry_policy().has_retry_back_off()) { |
556 | 30 | return buildJitteredExponentialBackOffStrategy(config.retry_policy().retry_back_off(), random, |
557 | 30 | default_base_interval_ms, |
558 | 30 | default_max_interval_ms); |
559 | 30 | } |
560 | 163 | return buildJitteredExponentialBackOffStrategy(absl::nullopt, random, default_base_interval_ms, |
561 | 163 | default_max_interval_ms); |
562 | 193 | } Unexecuted instantiation: std::__1::unique_ptr<Envoy::JitteredExponentialBackOffStrategy, std::__1::default_delete<Envoy::JitteredExponentialBackOffStrategy> > Envoy::Config::Utility::prepareJitteredExponentialBackOffStrategy<envoy::config::core::v3::RemoteDataSource>(envoy::config::core::v3::RemoteDataSource const&, Envoy::Random::RandomGenerator&, unsigned int, std::__1::optional<unsigned int const>) std::__1::unique_ptr<Envoy::JitteredExponentialBackOffStrategy, std::__1::default_delete<Envoy::JitteredExponentialBackOffStrategy> > Envoy::Config::Utility::prepareJitteredExponentialBackOffStrategy<envoy::config::core::v3::GrpcService_EnvoyGrpc>(envoy::config::core::v3::GrpcService_EnvoyGrpc const&, Envoy::Random::RandomGenerator&, unsigned int, std::__1::optional<unsigned int const>) Line | Count | Source | 553 | 193 | absl::optional<const uint32_t> default_max_interval_ms) { | 554 | | // If RetryPolicy containing backoff values is found in config | 555 | 193 | if (config.has_retry_policy() && config.retry_policy().has_retry_back_off()) { | 556 | 30 | return buildJitteredExponentialBackOffStrategy(config.retry_policy().retry_back_off(), random, | 557 | 30 | default_base_interval_ms, | 558 | 30 | default_max_interval_ms); | 559 | 30 | } | 560 | 163 | return buildJitteredExponentialBackOffStrategy(absl::nullopt, random, default_base_interval_ms, | 561 | 163 | default_max_interval_ms); | 562 | 193 | } |
|
563 | | |
564 | | private: |
565 | | /** |
566 | | * Returns Jittered Exponential BackOff Strategy from BackoffStrategy config or default |
567 | | * values |
568 | | * @param config (optional) BackoffStrategy config |
569 | | * @param random random generator |
570 | | * @param default_base_interval_ms Default base interval, must be > 0 |
571 | | * @param default_max_interval_ms (optional) Default maximum interval |
572 | | * @return JitteredExponentialBackOffStrategyPtr if 1. Backoff Strategy is |
573 | | * specified or 2. default base interval and default maximum interval is specified or 3. |
574 | | * max interval is set to 10*default base interval |
575 | | */ |
576 | | static JitteredExponentialBackOffStrategyPtr buildJitteredExponentialBackOffStrategy( |
577 | | absl::optional<const envoy::config::core::v3::BackoffStrategy> backoff, |
578 | | Random::RandomGenerator& random, const uint32_t default_base_interval_ms, |
579 | | absl::optional<const uint32_t> default_max_interval_ms); |
580 | | }; |
581 | | } // namespace Config |
582 | | } // namespace Envoy |