Coverage Report

Created: 2023-11-12 09:30

/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