Coverage Report

Created: 2024-09-19 09:45

/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/upstream/cluster_manager.h"
16
17
#include "source/common/common/assert.h"
18
#include "source/common/common/backoff_strategy.h"
19
#include "source/common/common/hash.h"
20
#include "source/common/common/hex.h"
21
#include "source/common/common/utility.h"
22
#include "source/common/protobuf/protobuf.h"
23
#include "source/common/protobuf/utility.h"
24
#include "source/common/runtime/runtime_features.h"
25
#include "source/common/singleton/const_singleton.h"
26
#include "source/common/version/api_version.h"
27
#include "source/common/version/api_version_struct.h"
28
29
#include "absl/types/optional.h"
30
#include "udpa/type/v1/typed_struct.pb.h"
31
#include "xds/type/v3/typed_struct.pb.h"
32
33
namespace Envoy {
34
namespace Config {
35
36
constexpr absl::string_view Wildcard = "*";
37
38
/**
39
 * Constant Api Type Values, used by envoy::config::core::v3::ApiConfigSource.
40
 */
41
class ApiTypeValues {
42
public:
43
  const std::string UnsupportedRestLegacy{"REST_LEGACY"};
44
  const std::string Rest{"REST"};
45
  const std::string Grpc{"GRPC"};
46
};
47
48
/**
49
 * RateLimitSettings for discovery requests.
50
 */
51
struct RateLimitSettings {
52
  // Default Max Tokens.
53
  static const uint32_t DefaultMaxTokens = 100;
54
  // Default Fill Rate.
55
  static constexpr double DefaultFillRate = 10;
56
57
  uint32_t max_tokens_{DefaultMaxTokens};
58
  double fill_rate_{DefaultFillRate};
59
  bool enabled_{false};
60
};
61
62
using ApiType = ConstSingleton<ApiTypeValues>;
63
64
/**
65
 * General config API utilities.
66
 */
67
class Utility {
68
public:
69
  /**
70
   * Legacy APIs uses JSON and do not have an explicit version.
71
   * @param input the input to hash.
72
   * @return std::pair<std::string, uint64_t> the string is the hash converted into
73
   *         a hex string, pre-pended by a user friendly prefix. The uint64_t is the
74
   *         raw hash.
75
   */
76
0
  static std::pair<std::string, uint64_t> computeHashedVersion(const std::string& input) {
77
0
    uint64_t hash = HashUtil::xxHash64(input);
78
0
    return std::make_pair("hash_" + Hex::uint64ToHex(hash), hash);
79
0
  }
80
81
  /**
82
   * Extract initial_fetch_timeout as a std::chrono::milliseconds from
83
   * envoy::config::core::v3::ApiConfigSource. If request_timeout isn't set in the config source, a
84
   * default value of 15s will be returned.
85
   */
86
  static std::chrono::milliseconds
87
  configSourceInitialFetchTimeout(const envoy::config::core::v3::ConfigSource& config_source);
88
89
  /**
90
   * Check cluster info for API config sanity.
91
   * @param error_prefix supplies the prefix to use in error messages.
92
   * @param cluster_name supplies the cluster name to check.
93
   * @param cm supplies the cluster manager.
94
   * @param allow_added_via_api indicates whether a cluster is allowed to be added via api
95
   *                            rather than be a static resource from the bootstrap config.
96
   * @return the main thread cluster if it exists, or an error status if problematic.
97
   */
98
  static absl::StatusOr<Upstream::ClusterConstOptRef>
99
  checkCluster(absl::string_view error_prefix, absl::string_view cluster_name,
100
               Upstream::ClusterManager& cm, bool allow_added_via_api = false);
101
102
  /**
103
   * Check local info for API config sanity.
104
   * @param error_prefix supplies the prefix to use in error messages.
105
   * @param local_info supplies the local info.
106
   * @return a status indicating if the config is sane.
107
   */
108
  static absl::Status checkLocalInfo(absl::string_view error_prefix,
109
                                     const LocalInfo::LocalInfo& local_info);
110
111
  /**
112
   * Check the existence of a path for a filesystem subscription.
113
   * @param path the path to validate.
114
   * @param api reference to the Api object
115
   * @return a status indicating if the path exists.
116
   */
117
  static absl::Status checkFilesystemSubscriptionBackingPath(const std::string& path,
118
                                                             Api::Api& api);
119
120
  /**
121
   * Check the validity of a cluster backing an api config source. Throws on error.
122
   * @param primary_clusters the API config source eligible clusters.
123
   * @param cluster_name the cluster name to validate.
124
   * @param config_source the config source typed name.
125
   * @returns failure when an API config doesn't have a statically defined non-EDS cluster.
126
   */
127
  static absl::Status
128
  validateClusterName(const Upstream::ClusterManager::ClusterSet& primary_clusters,
129
                      const std::string& cluster_name, const std::string& config_source);
130
131
  /**
132
   * Potentially calls Utility::validateClusterName, if a cluster name can be found.
133
   * @param primary_clusters the API config source eligible clusters.
134
   * @param api_config_source the config source to validate.
135
   * @return a status indicating if config is valid.
136
   */
137
  static absl::Status checkApiConfigSourceSubscriptionBackingCluster(
138
      const Upstream::ClusterManager::ClusterSet& primary_clusters,
139
      const envoy::config::core::v3::ApiConfigSource& api_config_source);
140
141
  /**
142
   * Gets the gRPC control plane management server from the API config source. The result is either
143
   * a cluster name or a host name.
144
   * @param api_config_source the config source to validate.
145
   * @return the gRPC control plane server, or absl::nullopt if it couldn't be extracted.
146
   */
147
  static absl::optional<std::string>
148
  getGrpcControlPlane(const envoy::config::core::v3::ApiConfigSource& api_config_source);
149
150
  /**
151
   * Validate transport_api_version field in ApiConfigSource.
152
   * @param api_config_source the config source to extract transport API version from.
153
   * @returns a failure status when the transport version is disabled.
154
   */
155
1.72k
  template <class Proto> static absl::Status checkTransportVersion(const Proto& api_config_source) {
156
1.72k
    const auto transport_api_version = api_config_source.transport_api_version();
157
1.72k
    ASSERT_IS_MAIN_OR_TEST_THREAD();
158
1.72k
    if (transport_api_version != envoy::config::core::v3::ApiVersion::AUTO &&
159
1.72k
        transport_api_version != envoy::config::core::v3::ApiVersion::V3) {
160
9
      const std::string& warning = fmt::format(
161
9
          "V2 xDS transport protocol version is deprecated in {}. "
162
9
          "The v2 xDS major version has been removed and is no longer supported. "
163
9
          "See the advice in https://www.envoyproxy.io/docs/envoy/latest/faq/api/envoy_v3.",
164
9
          api_config_source.DebugString());
165
9
      ENVOY_LOG_MISC(warn, warning);
166
9
      return absl::InvalidArgumentError(warning);
167
9
    }
168
1.71k
    return absl::OkStatus();
169
1.72k
  }
absl::lts_20230802::Status Envoy::Config::Utility::checkTransportVersion<envoy::config::core::v3::ApiConfigSource>(envoy::config::core::v3::ApiConfigSource const&)
Line
Count
Source
155
1.70k
  template <class Proto> static absl::Status checkTransportVersion(const Proto& api_config_source) {
156
1.70k
    const auto transport_api_version = api_config_source.transport_api_version();
157
1.70k
    ASSERT_IS_MAIN_OR_TEST_THREAD();
158
1.70k
    if (transport_api_version != envoy::config::core::v3::ApiVersion::AUTO &&
159
1.70k
        transport_api_version != envoy::config::core::v3::ApiVersion::V3) {
160
6
      const std::string& warning = fmt::format(
161
6
          "V2 xDS transport protocol version is deprecated in {}. "
162
6
          "The v2 xDS major version has been removed and is no longer supported. "
163
6
          "See the advice in https://www.envoyproxy.io/docs/envoy/latest/faq/api/envoy_v3.",
164
6
          api_config_source.DebugString());
165
6
      ENVOY_LOG_MISC(warn, warning);
166
6
      return absl::InvalidArgumentError(warning);
167
6
    }
168
1.70k
    return absl::OkStatus();
169
1.70k
  }
Unexecuted instantiation: absl::lts_20230802::Status Envoy::Config::Utility::checkTransportVersion<envoy::extensions::access_loggers::grpc::v3::CommonGrpcAccessLogConfig>(envoy::extensions::access_loggers::grpc::v3::CommonGrpcAccessLogConfig const&)
Unexecuted instantiation: absl::lts_20230802::Status Envoy::Config::Utility::checkTransportVersion<envoy::extensions::filters::http::ext_authz::v3::ExtAuthz>(envoy::extensions::filters::http::ext_authz::v3::ExtAuthz const&)
absl::lts_20230802::Status Envoy::Config::Utility::checkTransportVersion<envoy::config::ratelimit::v3::RateLimitServiceConfig>(envoy::config::ratelimit::v3::RateLimitServiceConfig const&)
Line
Count
Source
155
7
  template <class Proto> static absl::Status checkTransportVersion(const Proto& api_config_source) {
156
7
    const auto transport_api_version = api_config_source.transport_api_version();
157
7
    ASSERT_IS_MAIN_OR_TEST_THREAD();
158
7
    if (transport_api_version != envoy::config::core::v3::ApiVersion::AUTO &&
159
7
        transport_api_version != envoy::config::core::v3::ApiVersion::V3) {
160
1
      const std::string& warning = fmt::format(
161
1
          "V2 xDS transport protocol version is deprecated in {}. "
162
1
          "The v2 xDS major version has been removed and is no longer supported. "
163
1
          "See the advice in https://www.envoyproxy.io/docs/envoy/latest/faq/api/envoy_v3.",
164
1
          api_config_source.DebugString());
165
1
      ENVOY_LOG_MISC(warn, warning);
166
1
      return absl::InvalidArgumentError(warning);
167
1
    }
168
6
    return absl::OkStatus();
169
7
  }
absl::lts_20230802::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
155
7
  template <class Proto> static absl::Status checkTransportVersion(const Proto& api_config_source) {
156
7
    const auto transport_api_version = api_config_source.transport_api_version();
157
7
    ASSERT_IS_MAIN_OR_TEST_THREAD();
158
7
    if (transport_api_version != envoy::config::core::v3::ApiVersion::AUTO &&
159
7
        transport_api_version != envoy::config::core::v3::ApiVersion::V3) {
160
2
      const std::string& warning = fmt::format(
161
2
          "V2 xDS transport protocol version is deprecated in {}. "
162
2
          "The v2 xDS major version has been removed and is no longer supported. "
163
2
          "See the advice in https://www.envoyproxy.io/docs/envoy/latest/faq/api/envoy_v3.",
164
2
          api_config_source.DebugString());
165
2
      ENVOY_LOG_MISC(warn, warning);
166
2
      return absl::InvalidArgumentError(warning);
167
2
    }
168
5
    return absl::OkStatus();
169
7
  }
Unexecuted instantiation: absl::lts_20230802::Status Envoy::Config::Utility::checkTransportVersion<envoy::config::metrics::v3::MetricsServiceConfig>(envoy::config::metrics::v3::MetricsServiceConfig const&)
170
171
  /**
172
   * Parses RateLimit configuration from envoy::config::core::v3::ApiConfigSource to
173
   * RateLimitSettings.
174
   * @param api_config_source ApiConfigSource.
175
   * @return absl::StatusOr<RateLimitSettings> - returns an error when an
176
   *         invalid RateLimit config settings are provided.
177
   */
178
  static absl::StatusOr<RateLimitSettings>
179
  parseRateLimitSettings(const envoy::config::core::v3::ApiConfigSource& api_config_source);
180
181
  /**
182
   * Generate a ControlPlaneStats object from stats scope.
183
   * @param scope for stats.
184
   * @return ControlPlaneStats for scope.
185
   */
186
1.35k
  static ControlPlaneStats generateControlPlaneStats(Stats::Scope& scope) {
187
1.35k
    const std::string control_plane_prefix = "control_plane.";
188
1.35k
    return {ALL_CONTROL_PLANE_STATS(POOL_COUNTER_PREFIX(scope, control_plane_prefix),
189
1.35k
                                    POOL_GAUGE_PREFIX(scope, control_plane_prefix),
190
1.35k
                                    POOL_TEXT_READOUT_PREFIX(scope, control_plane_prefix))};
191
1.35k
  }
192
193
  /**
194
   * Generate a SubscriptionStats object from stats scope.
195
   * @param scope for stats.
196
   * @return SubscriptionStats for scope.
197
   */
198
4.45k
  static SubscriptionStats generateStats(Stats::Scope& scope) {
199
4.45k
    return {ALL_SUBSCRIPTION_STATS(POOL_COUNTER(scope), POOL_GAUGE(scope), POOL_TEXT_READOUT(scope),
200
4.45k
                                   POOL_HISTOGRAM(scope))};
201
4.45k
  }
202
203
  /**
204
   * Get a Factory from the registry with a particular name (and templated type) with error checking
205
   * to ensure the name and factory are valid.
206
   * @param name string identifier for the particular implementation.
207
   * @param is_optional exception will be throw when the value is false and no factory found.
208
   * @return factory the factory requested or nullptr if it does not exist.
209
   */
210
  template <class Factory>
211
16.3k
  static Factory* getAndCheckFactoryByName(const std::string& name, bool is_optional) {
212
16.3k
    if (name.empty()) {
213
0
      ExceptionUtil::throwEnvoyException("Provided name for static registration lookup was empty.");
214
0
    }
215
216
16.3k
    Factory* factory = Registry::FactoryRegistry<Factory>::getFactory(name);
217
218
16.3k
    if (factory == nullptr && !is_optional) {
219
2.48k
      ExceptionUtil::throwEnvoyException(
220
2.48k
          fmt::format("Didn't find a registered implementation for name: '{}'", name));
221
2.48k
    }
222
223
16.3k
    return factory;
224
16.3k
  }
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
211
884
  static Factory* getAndCheckFactoryByName(const std::string& name, bool is_optional) {
212
884
    if (name.empty()) {
213
0
      ExceptionUtil::throwEnvoyException("Provided name for static registration lookup was empty.");
214
0
    }
215
216
884
    Factory* factory = Registry::FactoryRegistry<Factory>::getFactory(name);
217
218
884
    if (factory == nullptr && !is_optional) {
219
0
      ExceptionUtil::throwEnvoyException(
220
0
          fmt::format("Didn't find a registered implementation for name: '{}'", name));
221
0
    }
222
223
884
    return factory;
224
884
  }
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::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::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::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::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::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::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)
Unexecuted instantiation: 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)
Unexecuted instantiation: Envoy::Matchers::StringMatcherExtensionFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Matchers::StringMatcherExtensionFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool)
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::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::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
211
6.93k
  static Factory* getAndCheckFactoryByName(const std::string& name, bool is_optional) {
212
6.93k
    if (name.empty()) {
213
0
      ExceptionUtil::throwEnvoyException("Provided name for static registration lookup was empty.");
214
0
    }
215
216
6.93k
    Factory* factory = Registry::FactoryRegistry<Factory>::getFactory(name);
217
218
6.93k
    if (factory == nullptr && !is_optional) {
219
2.48k
      ExceptionUtil::throwEnvoyException(
220
2.48k
          fmt::format("Didn't find a registered implementation for name: '{}'", name));
221
2.48k
    }
222
223
6.93k
    return factory;
224
6.93k
  }
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::KeyValueStoreFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::KeyValueStoreFactory>(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
211
82
  static Factory* getAndCheckFactoryByName(const std::string& name, bool is_optional) {
212
82
    if (name.empty()) {
213
0
      ExceptionUtil::throwEnvoyException("Provided name for static registration lookup was empty.");
214
0
    }
215
216
82
    Factory* factory = Registry::FactoryRegistry<Factory>::getFactory(name);
217
218
82
    if (factory == nullptr && !is_optional) {
219
0
      ExceptionUtil::throwEnvoyException(
220
0
          fmt::format("Didn't find a registered implementation for name: '{}'", name));
221
0
    }
222
223
82
    return factory;
224
82
  }
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
211
8.40k
  static Factory* getAndCheckFactoryByName(const std::string& name, bool is_optional) {
212
8.40k
    if (name.empty()) {
213
0
      ExceptionUtil::throwEnvoyException("Provided name for static registration lookup was empty.");
214
0
    }
215
216
8.40k
    Factory* factory = Registry::FactoryRegistry<Factory>::getFactory(name);
217
218
8.40k
    if (factory == nullptr && !is_optional) {
219
0
      ExceptionUtil::throwEnvoyException(
220
0
          fmt::format("Didn't find a registered implementation for name: '{}'", name));
221
0
    }
222
223
8.40k
    return factory;
224
8.40k
  }
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::EnvoyQuicConnectionDebugVisitorFactoryInterface* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Quic::EnvoyQuicConnectionDebugVisitorFactoryInterface>(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::Ssl::TlsCertificateSelectorConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Ssl::TlsCertificateSelectorConfigFactory>(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::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)
Line
Count
Source
211
5
  static Factory* getAndCheckFactoryByName(const std::string& name, bool is_optional) {
212
5
    if (name.empty()) {
213
0
      ExceptionUtil::throwEnvoyException("Provided name for static registration lookup was empty.");
214
0
    }
215
216
5
    Factory* factory = Registry::FactoryRegistry<Factory>::getFactory(name);
217
218
5
    if (factory == nullptr && !is_optional) {
219
0
      ExceptionUtil::throwEnvoyException(
220
0
          fmt::format("Didn't find a registered implementation for name: '{}'", name));
221
0
    }
222
223
5
    return factory;
224
5
  }
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)
Line
Count
Source
211
5
  static Factory* getAndCheckFactoryByName(const std::string& name, bool is_optional) {
212
5
    if (name.empty()) {
213
0
      ExceptionUtil::throwEnvoyException("Provided name for static registration lookup was empty.");
214
0
    }
215
216
5
    Factory* factory = Registry::FactoryRegistry<Factory>::getFactory(name);
217
218
5
    if (factory == nullptr && !is_optional) {
219
0
      ExceptionUtil::throwEnvoyException(
220
0
          fmt::format("Didn't find a registered implementation for name: '{}'", name));
221
0
    }
222
223
5
    return factory;
224
5
  }
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)
Unexecuted instantiation: 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)
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::NetworkFilters::GenericProxy::CodecFactoryConfig* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Extensions::NetworkFilters::GenericProxy::CodecFactoryConfig>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool)
Unexecuted instantiation: Envoy::Extensions::NetworkFilters::GenericProxy::NamedFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Extensions::NetworkFilters::GenericProxy::NamedFilterConfigFactory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool)
Unexecuted instantiation: Envoy::AccessLog::ExtensionFilterFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext>* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::AccessLog::ExtensionFilterFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool)
Unexecuted instantiation: Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext>* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool)
Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::NetworkFilters::GenericProxy::RouteActionContext>* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Matcher::ActionFactory<Envoy::Extensions::NetworkFilters::GenericProxy::RouteActionContext> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool)
Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput>* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Matcher::CustomMatcherFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool)
Unexecuted instantiation: Envoy::Server::Configuration::NamedUdpSessionFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactoryByName<Envoy::Server::Configuration::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)
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)
225
226
  /**
227
   * Get a Factory from the registry with a particular name (and templated type) with error checking
228
   * to ensure the name and factory are valid.
229
   * @param name string identifier for the particular implementation.
230
   * @return factory the factory requested or nullptr if it does not exist.
231
   */
232
16.3k
  template <class Factory> static Factory& getAndCheckFactoryByName(const std::string& name) {
233
16.3k
    return *getAndCheckFactoryByName<Factory>(name, false);
234
16.3k
  }
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
232
6.93k
  template <class Factory> static Factory& getAndCheckFactoryByName(const std::string& name) {
233
6.93k
    return *getAndCheckFactoryByName<Factory>(name, false);
234
6.93k
  }
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
232
82
  template <class Factory> static Factory& getAndCheckFactoryByName(const std::string& name) {
233
82
    return *getAndCheckFactoryByName<Factory>(name, false);
234
82
  }
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&)
Line
Count
Source
232
5
  template <class Factory> static Factory& getAndCheckFactoryByName(const std::string& name) {
233
5
    return *getAndCheckFactoryByName<Factory>(name, false);
234
5
  }
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&)
Line
Count
Source
232
5
  template <class Factory> static Factory& getAndCheckFactoryByName(const std::string& name) {
233
5
    return *getAndCheckFactoryByName<Factory>(name, false);
234
5
  }
Unexecuted instantiation: 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&)
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::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
232
8.40k
  template <class Factory> static Factory& getAndCheckFactoryByName(const std::string& name) {
233
8.40k
    return *getAndCheckFactoryByName<Factory>(name, false);
234
8.40k
  }
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
232
884
  template <class Factory> static Factory& getAndCheckFactoryByName(const std::string& name) {
233
884
    return *getAndCheckFactoryByName<Factory>(name, false);
234
884
  }
235
236
  /**
237
   * Get a Factory from the registry with a particular name or return nullptr.
238
   * @param name string identifier for the particular implementation.
239
   */
240
668k
  template <class Factory> static Factory* getFactoryByName(absl::string_view name) {
241
668k
    if (name.empty()) {
242
0
      return nullptr;
243
0
    }
244
245
668k
    return Registry::FactoryRegistry<Factory>::getFactory(name);
246
668k
  }
Envoy::Upstream::TypedLoadBalancerFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Upstream::TypedLoadBalancerFactory>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
240
403k
  template <class Factory> static Factory* getFactoryByName(absl::string_view name) {
241
403k
    if (name.empty()) {
242
0
      return nullptr;
243
0
    }
244
245
403k
    return Registry::FactoryRegistry<Factory>::getFactory(name);
246
403k
  }
Envoy::Router::GenericConnPoolFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Router::GenericConnPoolFactory>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
240
26.5k
  template <class Factory> static Factory* getFactoryByName(absl::string_view name) {
241
26.5k
    if (name.empty()) {
242
0
      return nullptr;
243
0
    }
244
245
26.5k
    return Registry::FactoryRegistry<Factory>::getFactory(name);
246
26.5k
  }
Unexecuted instantiation: Envoy::Extensions::TransportSockets::Tls::ServerContextFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Extensions::TransportSockets::Tls::ServerContextFactory>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Envoy::Router::SrdsFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Router::SrdsFactory>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
240
11.6k
  template <class Factory> static Factory* getFactoryByName(absl::string_view name) {
241
11.6k
    if (name.empty()) {
242
0
      return nullptr;
243
0
    }
244
245
11.6k
    return Registry::FactoryRegistry<Factory>::getFactory(name);
246
11.6k
  }
Unexecuted instantiation: Envoy::Http::OriginalIPDetectionFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Http::OriginalIPDetectionFactory>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::EarlyHeaderMutationFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Http::EarlyHeaderMutationFactory>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Envoy::Http::RouteConfigUpdateRequesterFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Http::RouteConfigUpdateRequesterFactory>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
240
192k
  template <class Factory> static Factory* getFactoryByName(absl::string_view name) {
241
192k
    if (name.empty()) {
242
0
      return nullptr;
243
0
    }
244
245
192k
    return Registry::FactoryRegistry<Factory>::getFactory(name);
246
192k
  }
Unexecuted instantiation: Envoy::Formatter::CommandParserFactoryBase<Envoy::Formatter::HttpFormatterContext>* Envoy::Config::Utility::getFactoryByName<Envoy::Formatter::CommandParserFactoryBase<Envoy::Formatter::HttpFormatterContext> >(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Envoy::Router::RdsFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Router::RdsFactory>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
240
133
  template <class Factory> static Factory* getFactoryByName(absl::string_view name) {
241
133
    if (name.empty()) {
242
0
      return nullptr;
243
0
    }
244
245
133
    return Registry::FactoryRegistry<Factory>::getFactory(name);
246
133
  }
Unexecuted instantiation: Envoy::Router::ClusterSpecifierPluginFactoryConfig* Envoy::Config::Utility::getFactoryByName<Envoy::Router::ClusterSpecifierPluginFactoryConfig>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Matcher::DataInputFactory<Envoy::Http::HttpMatchingData>* Envoy::Config::Utility::getFactoryByName<Envoy::Matcher::DataInputFactory<Envoy::Http::HttpMatchingData> >(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::RateLimit::DescriptorProducerFactory* Envoy::Config::Utility::getFactoryByName<Envoy::RateLimit::DescriptorProducerFactory>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Envoy::Network::ClientConnectionFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Network::ClientConnectionFactory>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
240
3.84k
  template <class Factory> static Factory* getFactoryByName(absl::string_view name) {
241
3.84k
    if (name.empty()) {
242
0
      return nullptr;
243
0
    }
244
245
3.84k
    return Registry::FactoryRegistry<Factory>::getFactory(name);
246
3.84k
  }
Envoy::Server::ConnectionHandlerFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Server::ConnectionHandlerFactory>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
240
9.43k
  template <class Factory> static Factory* getFactoryByName(absl::string_view name) {
241
9.43k
    if (name.empty()) {
242
0
      return nullptr;
243
0
    }
244
245
9.43k
    return Registry::FactoryRegistry<Factory>::getFactory(name);
246
9.43k
  }
Envoy::Config::MuxFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Config::MuxFactory>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
240
20.2k
  template <class Factory> static Factory* getFactoryByName(absl::string_view name) {
241
20.2k
    if (name.empty()) {
242
0
      return nullptr;
243
0
    }
244
245
20.2k
    return Registry::FactoryRegistry<Factory>::getFactory(name);
246
20.2k
  }
Unexecuted instantiation: Envoy::Network::UdpPacketWriterFactoryFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Network::UdpPacketWriterFactoryFactory>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Matcher::DataInputFactory<Envoy::Network::MatchingData>* Envoy::Config::Utility::getFactoryByName<Envoy::Matcher::DataInputFactory<Envoy::Network::MatchingData> >(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Formatter::HttpFormatterContext>* Envoy::Config::Utility::getFactoryByName<Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Formatter::HttpFormatterContext> >(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
240
166
  template <class Factory> static Factory* getFactoryByName(absl::string_view name) {
241
166
    if (name.empty()) {
242
0
      return nullptr;
243
0
    }
244
245
166
    return Registry::FactoryRegistry<Factory>::getFactory(name);
246
166
  }
Unexecuted instantiation: Envoy::Extensions::Http::InjectedCredentials::Common::NamedCredentialInjectorConfigFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Extensions::Http::InjectedCredentials::Common::NamedCredentialInjectorConfigFactory>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::TcpProxy::GenericConnPoolFactory* Envoy::Config::Utility::getFactoryByName<Envoy::TcpProxy::GenericConnPoolFactory>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Formatter::CommandParserFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext>* Envoy::Config::Utility::getFactoryByName<Envoy::Formatter::CommandParserFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext> >(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Matcher::DataInputFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput>* Envoy::Config::Utility::getFactoryByName<Envoy::Matcher::DataInputFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput> >(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Extensions::NetworkFilters::GenericProxy::NamedFilterConfigFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Extensions::NetworkFilters::GenericProxy::NamedFilterConfigFactory>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Matcher::DataInputFactory<Envoy::Network::UdpMatchingData>* Envoy::Config::Utility::getFactoryByName<Envoy::Matcher::DataInputFactory<Envoy::Network::UdpMatchingData> >(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Extensions::Tracers::OpenTelemetry::SamplerFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Extensions::Tracers::OpenTelemetry::SamplerFactory>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Extensions::Tracers::OpenTelemetry::ResourceDetectorFactory* Envoy::Config::Utility::getFactoryByName<Envoy::Extensions::Tracers::OpenTelemetry::ResourceDetectorFactory>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
247
248
  /**
249
   * Get a Factory from the registry or return nullptr.
250
   * @param message proto that contains fields 'name' and 'typed_config'.
251
   */
252
  template <class Factory, class ProtoMessage>
253
61.4k
  static Factory* getFactory(const ProtoMessage& message) {
254
61.4k
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
255
61.4k
    if (factory != nullptr ||
256
61.4k
        Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
257
61.4k
      return factory;
258
61.4k
    }
259
260
6
    return Utility::getFactoryByName<Factory>(message.name());
261
61.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
253
22
  static Factory* getFactory(const ProtoMessage& message) {
254
22
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
255
22
    if (factory != nullptr ||
256
22
        Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
257
22
      return factory;
258
22
    }
259
260
0
    return Utility::getFactoryByName<Factory>(message.name());
261
22
  }
Envoy::Http::OriginalIPDetectionFactory* Envoy::Config::Utility::getFactory<Envoy::Http::OriginalIPDetectionFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Line
Count
Source
253
6.28k
  static Factory* getFactory(const ProtoMessage& message) {
254
6.28k
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
255
6.28k
    if (factory != nullptr ||
256
6.28k
        Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
257
6.28k
      return factory;
258
6.28k
    }
259
260
1
    return Utility::getFactoryByName<Factory>(message.name());
261
6.28k
  }
Envoy::Http::EarlyHeaderMutationFactory* Envoy::Config::Utility::getFactory<Envoy::Http::EarlyHeaderMutationFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Line
Count
Source
253
16
  static Factory* getFactory(const ProtoMessage& message) {
254
16
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
255
16
    if (factory != nullptr ||
256
16
        Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
257
15
      return factory;
258
15
    }
259
260
1
    return Utility::getFactoryByName<Factory>(message.name());
261
16
  }
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
253
5
  static Factory* getFactory(const ProtoMessage& message) {
254
5
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
255
5
    if (factory != nullptr ||
256
5
        Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
257
5
      return factory;
258
5
    }
259
260
0
    return Utility::getFactoryByName<Factory>(message.name());
261
5
  }
Envoy::Router::ClusterSpecifierPluginFactoryConfig* Envoy::Config::Utility::getFactory<Envoy::Router::ClusterSpecifierPluginFactoryConfig, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Line
Count
Source
253
19.7k
  static Factory* getFactory(const ProtoMessage& message) {
254
19.7k
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
255
19.7k
    if (factory != nullptr ||
256
19.7k
        Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
257
19.7k
      return factory;
258
19.7k
    }
259
260
3
    return Utility::getFactoryByName<Factory>(message.name());
261
19.7k
  }
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
253
2.22k
  static Factory* getFactory(const ProtoMessage& message) {
254
2.22k
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
255
2.22k
    if (factory != nullptr ||
256
2.22k
        Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
257
2.22k
      return factory;
258
2.22k
    }
259
260
0
    return Utility::getFactoryByName<Factory>(message.name());
261
2.22k
  }
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
253
30.9k
  static Factory* getFactory(const ProtoMessage& message) {
254
30.9k
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
255
30.9k
    if (factory != nullptr ||
256
30.9k
        Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
257
30.9k
      return factory;
258
30.9k
    }
259
260
0
    return Utility::getFactoryByName<Factory>(message.name());
261
30.9k
  }
Envoy::RateLimit::DescriptorProducerFactory* Envoy::Config::Utility::getFactory<Envoy::RateLimit::DescriptorProducerFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Line
Count
Source
253
2.22k
  static Factory* getFactory(const ProtoMessage& message) {
254
2.22k
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
255
2.22k
    if (factory != nullptr ||
256
2.22k
        Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
257
2.22k
      return factory;
258
2.22k
    }
259
260
1
    return Utility::getFactoryByName<Factory>(message.name());
261
2.22k
  }
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::Extensions::Http::InjectedCredentials::Common::NamedCredentialInjectorConfigFactory* Envoy::Config::Utility::getFactory<Envoy::Extensions::Http::InjectedCredentials::Common::NamedCredentialInjectorConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::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::Formatter::CommandParserFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext>* Envoy::Config::Utility::getFactory<Envoy::Formatter::CommandParserFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Unexecuted instantiation: Envoy::Matcher::DataInputFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput>* Envoy::Config::Utility::getFactory<Envoy::Matcher::DataInputFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Unexecuted instantiation: Envoy::Matcher::DataInputFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput>* Envoy::Config::Utility::getFactory<Envoy::Matcher::DataInputFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput>, xds::core::v3::TypedExtensionConfig>(xds::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&)
262
263
  /**
264
   * Get a Factory from the registry with error checking to ensure the name and the factory are
265
   * valid. And a flag to control return nullptr or throw an exception.
266
   * @param message proto that contains fields 'name' and 'typed_config'.
267
   * @param is_optional an exception will be throw when the value is false and no factory found.
268
   * @return factory the factory requested or nullptr if it does not exist.
269
   */
270
  template <class Factory, class ProtoMessage>
271
98.3k
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
98.3k
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
98.3k
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
80.6k
      if (factory == nullptr && !is_optional) {
275
4.28k
        ExceptionUtil::throwEnvoyException(
276
4.28k
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
4.28k
                        message.name(), getFactoryType(message.typed_config())));
278
4.28k
      }
279
80.6k
      return factory;
280
80.6k
    } else if (factory != nullptr) {
281
17.6k
      return factory;
282
17.6k
    }
283
284
30
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
98.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
271
2.40k
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
2.40k
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
2.40k
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
0
      if (factory == nullptr && !is_optional) {
275
0
        ExceptionUtil::throwEnvoyException(
276
0
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
0
                        message.name(), getFactoryType(message.typed_config())));
278
0
      }
279
0
      return factory;
280
2.40k
    } else if (factory != nullptr) {
281
2.40k
      return factory;
282
2.40k
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
2.40k
  }
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
271
2.41k
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
2.41k
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
2.41k
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
3
      if (factory == nullptr && !is_optional) {
275
1
        ExceptionUtil::throwEnvoyException(
276
1
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
1
                        message.name(), getFactoryType(message.typed_config())));
278
1
      }
279
3
      return factory;
280
2.40k
    } else if (factory != nullptr) {
281
2.40k
      return factory;
282
2.40k
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
2.41k
  }
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
271
2.40k
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
2.40k
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
2.40k
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
0
      if (factory == nullptr && !is_optional) {
275
0
        ExceptionUtil::throwEnvoyException(
276
0
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
0
                        message.name(), getFactoryType(message.typed_config())));
278
0
      }
279
0
      return factory;
280
2.40k
    } else if (factory != nullptr) {
281
2.40k
      return factory;
282
2.40k
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
2.40k
  }
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
271
3.20k
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
3.20k
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
3.20k
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
760
      if (factory == nullptr && !is_optional) {
275
540
        ExceptionUtil::throwEnvoyException(
276
540
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
540
                        message.name(), getFactoryType(message.typed_config())));
278
540
      }
279
760
      return factory;
280
2.44k
    } else if (factory != nullptr) {
281
2.44k
      return factory;
282
2.44k
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
3.20k
  }
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)
Unexecuted instantiation: Envoy::Server::Configuration::NamedHttpFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedHttpFilterConfigFactory, 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
271
400
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
400
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
400
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
400
      if (factory == nullptr && !is_optional) {
275
400
        ExceptionUtil::throwEnvoyException(
276
400
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
400
                        message.name(), getFactoryType(message.typed_config())));
278
400
      }
279
400
      return factory;
280
400
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
400
  }
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
271
5.77k
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
5.77k
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
5.77k
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
1.84k
      if (factory == nullptr && !is_optional) {
275
1.84k
        ExceptionUtil::throwEnvoyException(
276
1.84k
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
1.84k
                        message.name(), getFactoryType(message.typed_config())));
278
1.84k
      }
279
1.84k
      return factory;
280
3.93k
    } else if (factory != nullptr) {
281
3.93k
      return factory;
282
3.93k
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
5.77k
  }
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
271
64.9k
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
64.9k
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
64.9k
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
64.9k
      if (factory == nullptr && !is_optional) {
275
4
        ExceptionUtil::throwEnvoyException(
276
4
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
4
                        message.name(), getFactoryType(message.typed_config())));
278
4
      }
279
64.9k
      return factory;
280
64.9k
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
64.9k
  }
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
271
60
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
60
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
60
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
60
      if (factory == nullptr && !is_optional) {
275
60
        ExceptionUtil::throwEnvoyException(
276
60
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
60
                        message.name(), getFactoryType(message.typed_config())));
278
60
      }
279
60
      return factory;
280
60
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
60
  }
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::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
271
9
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
9
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
9
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
9
      if (factory == nullptr && !is_optional) {
275
9
        ExceptionUtil::throwEnvoyException(
276
9
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
9
                        message.name(), getFactoryType(message.typed_config())));
278
9
      }
279
9
      return factory;
280
9
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
9
  }
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
271
6
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
6
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
6
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
6
      if (factory == nullptr && !is_optional) {
275
6
        ExceptionUtil::throwEnvoyException(
276
6
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
6
                        message.name(), getFactoryType(message.typed_config())));
278
6
      }
279
6
      return factory;
280
6
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
6
  }
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
271
4
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
4
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
4
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
4
      if (factory == nullptr && !is_optional) {
275
4
        ExceptionUtil::throwEnvoyException(
276
4
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
4
                        message.name(), getFactoryType(message.typed_config())));
278
4
      }
279
4
      return factory;
280
4
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
4
  }
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
271
5
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
5
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
5
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
5
      if (factory == nullptr && !is_optional) {
275
5
        ExceptionUtil::throwEnvoyException(
276
5
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
5
                        message.name(), getFactoryType(message.typed_config())));
278
5
      }
279
5
      return factory;
280
5
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
5
  }
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
271
72
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
72
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
72
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
72
      if (factory == nullptr && !is_optional) {
275
29
        ExceptionUtil::throwEnvoyException(
276
29
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
29
                        message.name(), getFactoryType(message.typed_config())));
278
29
      }
279
72
      return factory;
280
72
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
72
  }
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
271
1.09k
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
1.09k
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
1.09k
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
1.09k
      if (factory == nullptr && !is_optional) {
275
7
        ExceptionUtil::throwEnvoyException(
276
7
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
7
                        message.name(), getFactoryType(message.typed_config())));
278
7
      }
279
1.09k
      return factory;
280
1.09k
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
1.09k
  }
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
271
1.67k
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
1.67k
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
1.67k
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
1.67k
      if (factory == nullptr && !is_optional) {
275
55
        ExceptionUtil::throwEnvoyException(
276
55
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
55
                        message.name(), getFactoryType(message.typed_config())));
278
55
      }
279
1.67k
      return factory;
280
1.67k
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
1.67k
  }
Envoy::Matcher::CommonProtocolInputFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CommonProtocolInputFactory, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&, bool)
Line
Count
Source
271
109
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
109
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
109
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
109
      if (factory == nullptr && !is_optional) {
275
109
        ExceptionUtil::throwEnvoyException(
276
109
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
109
                        message.name(), getFactoryType(message.typed_config())));
278
109
      }
279
109
      return factory;
280
109
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
109
  }
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
271
16
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
16
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
16
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
16
      if (factory == nullptr && !is_optional) {
275
16
        ExceptionUtil::throwEnvoyException(
276
16
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
16
                        message.name(), getFactoryType(message.typed_config())));
278
16
      }
279
16
      return factory;
280
16
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
16
  }
Envoy::Matcher::InputMatcherFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::InputMatcherFactory, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&, bool)
Line
Count
Source
271
7
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
7
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
7
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
7
      if (factory == nullptr && !is_optional) {
275
7
        ExceptionUtil::throwEnvoyException(
276
7
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
7
                        message.name(), getFactoryType(message.typed_config())));
278
7
      }
279
7
      return factory;
280
7
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
7
  }
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
271
2
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
2
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
2
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
2
      if (factory == nullptr && !is_optional) {
275
2
        ExceptionUtil::throwEnvoyException(
276
2
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
2
                        message.name(), getFactoryType(message.typed_config())));
278
2
      }
279
2
      return factory;
280
2
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
2
  }
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
271
111
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
111
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
111
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
111
      if (factory == nullptr && !is_optional) {
275
111
        ExceptionUtil::throwEnvoyException(
276
111
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
111
                        message.name(), getFactoryType(message.typed_config())));
278
111
      }
279
111
      return factory;
280
111
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
111
  }
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
271
12
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
12
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
12
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
12
      if (factory == nullptr && !is_optional) {
275
12
        ExceptionUtil::throwEnvoyException(
276
12
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
12
                        message.name(), getFactoryType(message.typed_config())));
278
12
      }
279
12
      return factory;
280
12
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
12
  }
Unexecuted instantiation: Envoy::Network::DnsResolverFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Network::DnsResolverFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool)
Envoy::Matchers::StringMatcherExtensionFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matchers::StringMatcherExtensionFactory, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&, bool)
Line
Count
Source
271
682
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
682
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
682
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
663
      if (factory == nullptr && !is_optional) {
275
663
        ExceptionUtil::throwEnvoyException(
276
663
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
663
                        message.name(), getFactoryType(message.typed_config())));
278
663
      }
279
663
      return factory;
280
663
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
19
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
682
  }
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
271
29
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
29
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
29
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
29
      if (factory == nullptr && !is_optional) {
275
21
        ExceptionUtil::throwEnvoyException(
276
21
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
21
                        message.name(), getFactoryType(message.typed_config())));
278
21
      }
279
29
      return factory;
280
29
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
29
  }
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
271
1
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
1
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
1
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
1
      if (factory == nullptr && !is_optional) {
275
1
        ExceptionUtil::throwEnvoyException(
276
1
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
1
                        message.name(), getFactoryType(message.typed_config())));
278
1
      }
279
1
      return factory;
280
1
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
1
  }
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
271
18
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
18
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
18
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
18
      if (factory == nullptr && !is_optional) {
275
18
        ExceptionUtil::throwEnvoyException(
276
18
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
18
                        message.name(), getFactoryType(message.typed_config())));
278
18
      }
279
18
      return factory;
280
18
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
18
  }
Envoy::Server::ListenerManagerFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::ListenerManagerFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool)
Line
Count
Source
271
2
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
2
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
2
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
2
      if (factory == nullptr && !is_optional) {
275
2
        ExceptionUtil::throwEnvoyException(
276
2
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
2
                        message.name(), getFactoryType(message.typed_config())));
278
2
      }
279
2
      return factory;
280
2
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
2
  }
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
271
122
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
122
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
122
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
113
      if (factory == nullptr && !is_optional) {
275
113
        ExceptionUtil::throwEnvoyException(
276
113
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
113
                        message.name(), getFactoryType(message.typed_config())));
278
113
      }
279
113
      return factory;
280
113
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
9
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
122
  }
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
271
3
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
3
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
3
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
3
      if (factory == nullptr && !is_optional) {
275
3
        ExceptionUtil::throwEnvoyException(
276
3
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
3
                        message.name(), getFactoryType(message.typed_config())));
278
3
      }
279
3
      return factory;
280
3
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
3
  }
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
271
3
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
3
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
3
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
3
      if (factory == nullptr && !is_optional) {
275
3
        ExceptionUtil::throwEnvoyException(
276
3
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
3
                        message.name(), getFactoryType(message.typed_config())));
278
3
      }
279
3
      return factory;
280
3
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
3
  }
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::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
271
2.04k
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
2.04k
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
2.04k
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
6
      if (factory == nullptr && !is_optional) {
275
6
        ExceptionUtil::throwEnvoyException(
276
6
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
6
                        message.name(), getFactoryType(message.typed_config())));
278
6
      }
279
6
      return factory;
280
2.04k
    } else if (factory != nullptr) {
281
2.04k
      return factory;
282
2.04k
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
2.04k
  }
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
271
1
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
1
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
1
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
1
      if (factory == nullptr && !is_optional) {
275
1
        ExceptionUtil::throwEnvoyException(
276
1
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
1
                        message.name(), getFactoryType(message.typed_config())));
278
1
      }
279
1
      return factory;
280
1
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
1
  }
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
271
3
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
3
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
3
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
3
      if (factory == nullptr && !is_optional) {
275
3
        ExceptionUtil::throwEnvoyException(
276
3
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
3
                        message.name(), getFactoryType(message.typed_config())));
278
3
      }
279
3
      return factory;
280
3
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
3
  }
Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory, envoy::config::listener::v3::ListenerFilter>(envoy::config::listener::v3::ListenerFilter const&, bool)
Line
Count
Source
271
3
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
3
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
3
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
3
      if (factory == nullptr && !is_optional) {
275
3
        ExceptionUtil::throwEnvoyException(
276
3
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
3
                        message.name(), getFactoryType(message.typed_config())));
278
3
      }
279
3
      return factory;
280
3
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
3
  }
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
271
10.4k
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
10.4k
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
10.4k
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
8.43k
      if (factory == nullptr && !is_optional) {
275
2
        ExceptionUtil::throwEnvoyException(
276
2
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
2
                        message.name(), getFactoryType(message.typed_config())));
278
2
      }
279
8.43k
      return factory;
280
8.43k
    } else if (factory != nullptr) {
281
2.04k
      return factory;
282
2.04k
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
10.4k
  }
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
271
2
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
2
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
2
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
2
      if (factory == nullptr && !is_optional) {
275
2
        ExceptionUtil::throwEnvoyException(
276
2
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
2
                        message.name(), getFactoryType(message.typed_config())));
278
2
      }
279
2
      return factory;
280
2
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
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
271
84
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
84
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
84
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
84
      if (factory == nullptr && !is_optional) {
275
84
        ExceptionUtil::throwEnvoyException(
276
84
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
84
                        message.name(), getFactoryType(message.typed_config())));
278
84
      }
279
84
      return factory;
280
84
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
84
  }
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
271
18
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
18
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
18
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
18
      if (factory == nullptr && !is_optional) {
275
1
        ExceptionUtil::throwEnvoyException(
276
1
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
1
                        message.name(), getFactoryType(message.typed_config())));
278
1
      }
279
18
      return factory;
280
18
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
18
  }
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
271
17
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
17
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
17
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
17
      if (factory == nullptr && !is_optional) {
275
2
        ExceptionUtil::throwEnvoyException(
276
2
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
2
                        message.name(), getFactoryType(message.typed_config())));
278
2
      }
279
17
      return factory;
280
17
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
17
  }
Envoy::Quic::EnvoyQuicConnectionDebugVisitorFactoryInterface* Envoy::Config::Utility::getAndCheckFactory<Envoy::Quic::EnvoyQuicConnectionDebugVisitorFactoryInterface, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool)
Line
Count
Source
271
5
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
5
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
5
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
5
      if (factory == nullptr && !is_optional) {
275
5
        ExceptionUtil::throwEnvoyException(
276
5
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
5
                        message.name(), getFactoryType(message.typed_config())));
278
5
      }
279
5
      return factory;
280
5
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
5
  }
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
271
10
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
10
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
10
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
10
      if (factory == nullptr && !is_optional) {
275
1
        ExceptionUtil::throwEnvoyException(
276
1
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
1
                        message.name(), getFactoryType(message.typed_config())));
278
1
      }
279
10
      return factory;
280
10
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
10
  }
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
271
4
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
4
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
4
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
4
      if (factory == nullptr && !is_optional) {
275
4
        ExceptionUtil::throwEnvoyException(
276
4
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
4
                        message.name(), getFactoryType(message.typed_config())));
278
4
      }
279
4
      return factory;
280
4
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
4
  }
Unexecuted instantiation: Envoy::Ssl::TlsCertificateSelectorConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Ssl::TlsCertificateSelectorConfigFactory, 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
271
54
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
54
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
54
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
54
      if (factory == nullptr && !is_optional) {
275
54
        ExceptionUtil::throwEnvoyException(
276
54
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
54
                        message.name(), getFactoryType(message.typed_config())));
278
54
      }
279
54
      return factory;
280
54
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
54
  }
Unexecuted instantiation: Envoy::Geolocation::GeoipProviderFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Geolocation::GeoipProviderFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::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>, 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::NetworkFilters::GenericProxy::CodecFactoryConfig* Envoy::Config::Utility::getAndCheckFactory<Envoy::Extensions::NetworkFilters::GenericProxy::CodecFactoryConfig, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool)
Unexecuted instantiation: Envoy::Extensions::NetworkFilters::GenericProxy::NamedFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Extensions::NetworkFilters::GenericProxy::NamedFilterConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool)
Unexecuted instantiation: Envoy::AccessLog::ExtensionFilterFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext>* Envoy::Config::Utility::getAndCheckFactory<Envoy::AccessLog::ExtensionFilterFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext>, envoy::config::accesslog::v3::ExtensionFilter>(envoy::config::accesslog::v3::ExtensionFilter const&, bool)
Unexecuted instantiation: Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext>* Envoy::Config::Utility::getAndCheckFactory<Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext>, envoy::config::accesslog::v3::AccessLog>(envoy::config::accesslog::v3::AccessLog const&, bool)
Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::NetworkFilters::GenericProxy::RouteActionContext>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Extensions::NetworkFilters::GenericProxy::RouteActionContext>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&, bool)
Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CustomMatcherFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool)
Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::NetworkFilters::GenericProxy::RouteActionContext>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Extensions::NetworkFilters::GenericProxy::RouteActionContext>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&, bool)
Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput>* Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CustomMatcherFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&, bool)
Unexecuted instantiation: Envoy::Server::Configuration::NamedUdpSessionFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedUdpSessionFilterConfigFactory, envoy::extensions::filters::udp::udp_proxy::v3::UdpProxyConfig_SessionFilter>(envoy::extensions::filters::udp::udp_proxy::v3::UdpProxyConfig_SessionFilter const&, bool)
Unexecuted instantiation: Envoy::Server::Configuration::NamedUdpSessionFilterConfigFactory* Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedUdpSessionFilterConfigFactory, 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>, 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)
Unexecuted instantiation: 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)
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)
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
271
65
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
65
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
65
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
63
      if (factory == nullptr && !is_optional) {
275
60
        ExceptionUtil::throwEnvoyException(
276
60
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
60
                        message.name(), getFactoryType(message.typed_config())));
278
60
      }
279
63
      return factory;
280
63
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
2
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
65
  }
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)
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)
Line
Count
Source
271
18
  static Factory* getAndCheckFactory(const ProtoMessage& message, bool is_optional) {
272
18
    Factory* factory = Utility::getFactoryByType<Factory>(message.typed_config());
273
18
    if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.no_extension_lookup_by_name")) {
274
18
      if (factory == nullptr && !is_optional) {
275
18
        ExceptionUtil::throwEnvoyException(
276
18
            fmt::format("Didn't find a registered implementation for '{}' with type URL: '{}'",
277
18
                        message.name(), getFactoryType(message.typed_config())));
278
18
      }
279
18
      return factory;
280
18
    } else if (factory != nullptr) {
281
0
      return factory;
282
0
    }
283
284
0
    return Utility::getAndCheckFactoryByName<Factory>(message.name(), is_optional);
285
18
  }
286
287
  /**
288
   * Get a Factory from the registry with error checking to ensure the name and the factory are
289
   * valid.
290
   * @param message proto that contains fields 'name' and 'typed_config'.
291
   */
292
  template <class Factory, class ProtoMessage>
293
89.6k
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
89.6k
    return *getAndCheckFactory<Factory>(message, false);
295
89.6k
  }
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
293
2.40k
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
2.40k
    return *getAndCheckFactory<Factory>(message, false);
295
2.40k
  }
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&)
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&)
Unexecuted instantiation: Envoy::Server::Configuration::NamedHttpFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedHttpFilterConfigFactory, 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
293
400
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
400
    return *getAndCheckFactory<Factory>(message, false);
295
400
  }
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
293
5.77k
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
5.77k
    return *getAndCheckFactory<Factory>(message, false);
295
5.77k
  }
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
293
64.9k
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
64.9k
    return *getAndCheckFactory<Factory>(message, false);
295
64.9k
  }
Envoy::Matcher::CommonProtocolInputFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CommonProtocolInputFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Line
Count
Source
293
60
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
60
    return *getAndCheckFactory<Factory>(message, false);
295
60
  }
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::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
293
9
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
9
    return *getAndCheckFactory<Factory>(message, false);
295
9
  }
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
293
6
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
6
    return *getAndCheckFactory<Factory>(message, false);
295
6
  }
Envoy::Upstream::RetryOptionsPredicateFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Upstream::RetryOptionsPredicateFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Line
Count
Source
293
4
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
4
    return *getAndCheckFactory<Factory>(message, false);
295
4
  }
Envoy::Router::InternalRedirectPredicateFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Router::InternalRedirectPredicateFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Line
Count
Source
293
5
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
5
    return *getAndCheckFactory<Factory>(message, false);
295
5
  }
Envoy::Router::EarlyDataPolicyFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Router::EarlyDataPolicyFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Line
Count
Source
293
72
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
72
    return *getAndCheckFactory<Factory>(message, false);
295
72
  }
Envoy::Router::PathRewriterFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Router::PathRewriterFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Line
Count
Source
293
1.09k
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
1.09k
    return *getAndCheckFactory<Factory>(message, false);
295
1.09k
  }
Envoy::Router::PathMatcherFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Router::PathMatcherFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Line
Count
Source
293
1.67k
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
1.67k
    return *getAndCheckFactory<Factory>(message, false);
295
1.67k
  }
Envoy::Matcher::CommonProtocolInputFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CommonProtocolInputFactory, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&)
Line
Count
Source
293
109
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
109
    return *getAndCheckFactory<Factory>(message, false);
295
109
  }
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
293
16
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
16
    return *getAndCheckFactory<Factory>(message, false);
295
16
  }
Envoy::Matcher::InputMatcherFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::InputMatcherFactory, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&)
Line
Count
Source
293
7
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
7
    return *getAndCheckFactory<Factory>(message, false);
295
7
  }
Envoy::Config::ConfigValidatorFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Config::ConfigValidatorFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Line
Count
Source
293
2
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
2
    return *getAndCheckFactory<Factory>(message, false);
295
2
  }
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
293
111
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
111
    return *getAndCheckFactory<Factory>(message, false);
295
111
  }
Envoy::Http::StatefulHeaderKeyFormatterFactoryConfig& Envoy::Config::Utility::getAndCheckFactory<Envoy::Http::StatefulHeaderKeyFormatterFactoryConfig, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Line
Count
Source
293
12
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
12
    return *getAndCheckFactory<Factory>(message, false);
295
12
  }
Unexecuted instantiation: Envoy::Network::DnsResolverFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Network::DnsResolverFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
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
293
29
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
29
    return *getAndCheckFactory<Factory>(message, false);
295
29
  }
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
293
1
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
1
    return *getAndCheckFactory<Factory>(message, false);
295
1
  }
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
293
18
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
18
    return *getAndCheckFactory<Factory>(message, false);
295
18
  }
Envoy::Regex::EngineFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Regex::EngineFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Line
Count
Source
293
122
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
122
    return *getAndCheckFactory<Factory>(message, false);
295
122
  }
Envoy::Config::XdsResourcesDelegateFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Config::XdsResourcesDelegateFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Line
Count
Source
293
3
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
3
    return *getAndCheckFactory<Factory>(message, false);
295
3
  }
Envoy::Config::XdsConfigTrackerFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Config::XdsConfigTrackerFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Line
Count
Source
293
3
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
3
    return *getAndCheckFactory<Factory>(message, false);
295
3
  }
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::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
293
2.04k
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
2.04k
    return *getAndCheckFactory<Factory>(message, false);
295
2.04k
  }
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
293
1
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
1
    return *getAndCheckFactory<Factory>(message, false);
295
1
  }
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
293
3
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
3
    return *getAndCheckFactory<Factory>(message, false);
295
3
  }
Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory, envoy::config::listener::v3::ListenerFilter>(envoy::config::listener::v3::ListenerFilter const&)
Line
Count
Source
293
3
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
3
    return *getAndCheckFactory<Factory>(message, false);
295
3
  }
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
293
10.4k
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
10.4k
    return *getAndCheckFactory<Factory>(message, false);
295
10.4k
  }
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
293
2
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
2
    return *getAndCheckFactory<Factory>(message, false);
295
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
293
84
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
84
    return *getAndCheckFactory<Factory>(message, false);
295
84
  }
Envoy::Quic::EnvoyQuicCryptoServerStreamFactoryInterface& Envoy::Config::Utility::getAndCheckFactory<Envoy::Quic::EnvoyQuicCryptoServerStreamFactoryInterface, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Line
Count
Source
293
18
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
18
    return *getAndCheckFactory<Factory>(message, false);
295
18
  }
Envoy::Quic::EnvoyQuicProofSourceFactoryInterface& Envoy::Config::Utility::getAndCheckFactory<Envoy::Quic::EnvoyQuicProofSourceFactoryInterface, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Line
Count
Source
293
17
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
17
    return *getAndCheckFactory<Factory>(message, false);
295
17
  }
Envoy::Quic::EnvoyQuicConnectionDebugVisitorFactoryInterface& Envoy::Config::Utility::getAndCheckFactory<Envoy::Quic::EnvoyQuicConnectionDebugVisitorFactoryInterface, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Line
Count
Source
293
5
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
5
    return *getAndCheckFactory<Factory>(message, false);
295
5
  }
Envoy::Quic::EnvoyQuicConnectionIdGeneratorConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Quic::EnvoyQuicConnectionIdGeneratorConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Line
Count
Source
293
10
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
10
    return *getAndCheckFactory<Factory>(message, false);
295
10
  }
Envoy::Quic::EnvoyQuicServerPreferredAddressConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Quic::EnvoyQuicServerPreferredAddressConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Line
Count
Source
293
4
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
4
    return *getAndCheckFactory<Factory>(message, false);
295
4
  }
Unexecuted instantiation: Envoy::Ssl::TlsCertificateSelectorConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Ssl::TlsCertificateSelectorConfigFactory, 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
293
54
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
54
    return *getAndCheckFactory<Factory>(message, false);
295
54
  }
Unexecuted instantiation: Envoy::Geolocation::GeoipProviderFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Geolocation::GeoipProviderFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::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>, 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::NetworkFilters::GenericProxy::CodecFactoryConfig& Envoy::Config::Utility::getAndCheckFactory<Envoy::Extensions::NetworkFilters::GenericProxy::CodecFactoryConfig, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Unexecuted instantiation: Envoy::Extensions::NetworkFilters::GenericProxy::NamedFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Extensions::NetworkFilters::GenericProxy::NamedFilterConfigFactory, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Unexecuted instantiation: Envoy::AccessLog::ExtensionFilterFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext>& Envoy::Config::Utility::getAndCheckFactory<Envoy::AccessLog::ExtensionFilterFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext>, envoy::config::accesslog::v3::ExtensionFilter>(envoy::config::accesslog::v3::ExtensionFilter const&)
Unexecuted instantiation: Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext>& Envoy::Config::Utility::getAndCheckFactory<Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext>, envoy::config::accesslog::v3::AccessLog>(envoy::config::accesslog::v3::AccessLog const&)
Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::NetworkFilters::GenericProxy::RouteActionContext>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Extensions::NetworkFilters::GenericProxy::RouteActionContext>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&)
Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CustomMatcherFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::NetworkFilters::GenericProxy::RouteActionContext>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::ActionFactory<Envoy::Extensions::NetworkFilters::GenericProxy::RouteActionContext>, envoy::config::core::v3::TypedExtensionConfig>(envoy::config::core::v3::TypedExtensionConfig const&)
Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput>& Envoy::Config::Utility::getAndCheckFactory<Envoy::Matcher::CustomMatcherFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput>, xds::core::v3::TypedExtensionConfig>(xds::core::v3::TypedExtensionConfig const&)
Unexecuted instantiation: Envoy::Server::Configuration::NamedUdpSessionFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedUdpSessionFilterConfigFactory, envoy::extensions::filters::udp::udp_proxy::v3::UdpProxyConfig_SessionFilter>(envoy::extensions::filters::udp::udp_proxy::v3::UdpProxyConfig_SessionFilter const&)
Unexecuted instantiation: Envoy::Server::Configuration::NamedUdpSessionFilterConfigFactory& Envoy::Config::Utility::getAndCheckFactory<Envoy::Server::Configuration::NamedUdpSessionFilterConfigFactory, 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>, 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&)
Unexecuted instantiation: 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&)
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&)
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
293
65
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
65
    return *getAndCheckFactory<Factory>(message, false);
295
65
  }
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&)
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&)
Line
Count
Source
293
18
  static Factory& getAndCheckFactory(const ProtoMessage& message) {
294
18
    return *getAndCheckFactory<Factory>(message, false);
295
18
  }
296
297
  /**
298
   * Get type URL from a typed config.
299
   * @param typed_config for the extension config.
300
   */
301
145k
  static std::string getFactoryType(const ProtobufWkt::Any& typed_config) {
302
145k
    static const std::string typed_struct_type =
303
145k
        xds::type::v3::TypedStruct::default_instance().GetTypeName();
304
145k
    static const std::string legacy_typed_struct_type =
305
145k
        udpa::type::v1::TypedStruct::default_instance().GetTypeName();
306
    // Unpack methods will only use the fully qualified type name after the last '/'.
307
    // https://github.com/protocolbuffers/protobuf/blob/3.6.x/src/google/protobuf/any.proto#L87
308
145k
    auto type = std::string(TypeUtil::typeUrlToDescriptorFullName(typed_config.type_url()));
309
145k
    if (type == typed_struct_type) {
310
3.93k
      xds::type::v3::TypedStruct typed_struct;
311
3.93k
      MessageUtil::unpackToOrThrow(typed_config, typed_struct);
312
      // Not handling nested structs or typed structs in typed structs
313
3.93k
      return std::string(TypeUtil::typeUrlToDescriptorFullName(typed_struct.type_url()));
314
141k
    } else if (type == legacy_typed_struct_type) {
315
359
      udpa::type::v1::TypedStruct typed_struct;
316
359
      MessageUtil::unpackToOrThrow(typed_config, typed_struct);
317
      // Not handling nested structs or typed structs in typed structs
318
359
      return std::string(TypeUtil::typeUrlToDescriptorFullName(typed_struct.type_url()));
319
359
    }
320
141k
    return type;
321
145k
  }
322
323
  /**
324
   * Get a Factory from the registry by type URL.
325
   * @param typed_config for the extension config.
326
   */
327
160k
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
160k
    if (typed_config.type_url().empty()) {
329
19.9k
      return nullptr;
330
19.9k
    }
331
140k
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
160k
  }
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
327
2.40k
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
2.40k
    if (typed_config.type_url().empty()) {
329
0
      return nullptr;
330
0
    }
331
2.40k
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
2.40k
  }
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
327
2.41k
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
2.41k
    if (typed_config.type_url().empty()) {
329
1
      return nullptr;
330
1
    }
331
2.40k
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
2.41k
  }
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
327
2.40k
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
2.40k
    if (typed_config.type_url().empty()) {
329
0
      return nullptr;
330
0
    }
331
2.40k
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
2.40k
  }
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
327
22
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
22
    if (typed_config.type_url().empty()) {
329
22
      return nullptr;
330
22
    }
331
0
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
22
  }
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
327
6.28k
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
6.28k
    if (typed_config.type_url().empty()) {
329
12
      return nullptr;
330
12
    }
331
6.27k
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
6.28k
  }
Envoy::Http::EarlyHeaderMutationFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Http::EarlyHeaderMutationFactory>(google::protobuf::Any const&)
Line
Count
Source
327
16
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
16
    if (typed_config.type_url().empty()) {
329
9
      return nullptr;
330
9
    }
331
7
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
16
  }
Envoy::Server::Configuration::NamedHttpFilterConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::NamedHttpFilterConfigFactory>(google::protobuf::Any const&)
Line
Count
Source
327
4.28k
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
4.28k
    if (typed_config.type_url().empty()) {
329
898
      return nullptr;
330
898
    }
331
3.38k
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
4.28k
  }
Envoy::Formatter::CommandParserFactoryBase<Envoy::Formatter::HttpFormatterContext>* Envoy::Config::Utility::getFactoryByType<Envoy::Formatter::CommandParserFactoryBase<Envoy::Formatter::HttpFormatterContext> >(google::protobuf::Any const&)
Line
Count
Source
327
5
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
5
    if (typed_config.type_url().empty()) {
329
1
      return nullptr;
330
1
    }
331
4
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
5
  }
Envoy::AccessLog::ExtensionFilterFactoryBase<Envoy::Formatter::HttpFormatterContext>* Envoy::Config::Utility::getFactoryByType<Envoy::AccessLog::ExtensionFilterFactoryBase<Envoy::Formatter::HttpFormatterContext> >(google::protobuf::Any const&)
Line
Count
Source
327
400
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
400
    if (typed_config.type_url().empty()) {
329
121
      return nullptr;
330
121
    }
331
279
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
400
  }
Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Formatter::HttpFormatterContext>* Envoy::Config::Utility::getFactoryByType<Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Formatter::HttpFormatterContext> >(google::protobuf::Any const&)
Line
Count
Source
327
5.77k
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
5.77k
    if (typed_config.type_url().empty()) {
329
1.59k
      return nullptr;
330
1.59k
    }
331
4.18k
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
5.77k
  }
Envoy::Router::ClusterSpecifierPluginFactoryConfig* Envoy::Config::Utility::getFactoryByType<Envoy::Router::ClusterSpecifierPluginFactoryConfig>(google::protobuf::Any const&)
Line
Count
Source
327
19.7k
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
19.7k
    if (typed_config.type_url().empty()) {
329
16.8k
      return nullptr;
330
16.8k
    }
331
2.89k
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
19.7k
  }
Envoy::Matcher::ActionFactory<Envoy::Router::RouteActionContext>* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::ActionFactory<Envoy::Router::RouteActionContext> >(google::protobuf::Any const&)
Line
Count
Source
327
64.9k
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
64.9k
    if (typed_config.type_url().empty()) {
329
1
      return nullptr;
330
1
    }
331
64.9k
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
64.9k
  }
Envoy::Matcher::DataInputFactory<Envoy::Http::HttpMatchingData>* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::DataInputFactory<Envoy::Http::HttpMatchingData> >(google::protobuf::Any const&)
Line
Count
Source
327
33.1k
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
33.1k
    if (typed_config.type_url().empty()) {
329
56
      return nullptr;
330
56
    }
331
33.1k
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
33.1k
  }
Envoy::Matcher::CommonProtocolInputFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::CommonProtocolInputFactory>(google::protobuf::Any const&)
Line
Count
Source
327
169
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
169
    if (typed_config.type_url().empty()) {
329
56
      return nullptr;
330
56
    }
331
113
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
169
  }
Envoy::Matcher::CustomMatcherFactory<Envoy::Http::HttpMatchingData>* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::CustomMatcherFactory<Envoy::Http::HttpMatchingData> >(google::protobuf::Any const&)
Line
Count
Source
327
16
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
16
    if (typed_config.type_url().empty()) {
329
4
      return nullptr;
330
4
    }
331
12
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
16
  }
Envoy::Matcher::InputMatcherFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::InputMatcherFactory>(google::protobuf::Any const&)
Line
Count
Source
327
7
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
7
    if (typed_config.type_url().empty()) {
329
3
      return nullptr;
330
3
    }
331
4
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
7
  }
Envoy::Upstream::RetryHostPredicateFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Upstream::RetryHostPredicateFactory>(google::protobuf::Any const&)
Line
Count
Source
327
9
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
9
    if (typed_config.type_url().empty()) {
329
7
      return nullptr;
330
7
    }
331
2
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
9
  }
Envoy::Upstream::RetryPriorityFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Upstream::RetryPriorityFactory>(google::protobuf::Any const&)
Line
Count
Source
327
6
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
6
    if (typed_config.type_url().empty()) {
329
4
      return nullptr;
330
4
    }
331
2
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
6
  }
Envoy::Upstream::RetryOptionsPredicateFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Upstream::RetryOptionsPredicateFactory>(google::protobuf::Any const&)
Line
Count
Source
327
4
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
4
    if (typed_config.type_url().empty()) {
329
1
      return nullptr;
330
1
    }
331
3
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
4
  }
Envoy::Router::InternalRedirectPredicateFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Router::InternalRedirectPredicateFactory>(google::protobuf::Any const&)
Line
Count
Source
327
5
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
5
    if (typed_config.type_url().empty()) {
329
2
      return nullptr;
330
2
    }
331
3
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
5
  }
Envoy::Router::EarlyDataPolicyFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Router::EarlyDataPolicyFactory>(google::protobuf::Any const&)
Line
Count
Source
327
72
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
72
    if (typed_config.type_url().empty()) {
329
16
      return nullptr;
330
16
    }
331
56
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
72
  }
Envoy::Router::PathRewriterFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Router::PathRewriterFactory>(google::protobuf::Any const&)
Line
Count
Source
327
1.09k
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
1.09k
    if (typed_config.type_url().empty()) {
329
1
      return nullptr;
330
1
    }
331
1.09k
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
1.09k
  }
Envoy::Router::PathMatcherFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Router::PathMatcherFactory>(google::protobuf::Any const&)
Line
Count
Source
327
1.67k
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
1.67k
    if (typed_config.type_url().empty()) {
329
17
      return nullptr;
330
17
    }
331
1.65k
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
1.67k
  }
Envoy::RateLimit::DescriptorProducerFactory* Envoy::Config::Utility::getFactoryByType<Envoy::RateLimit::DescriptorProducerFactory>(google::protobuf::Any const&)
Line
Count
Source
327
2.22k
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
2.22k
    if (typed_config.type_url().empty()) {
329
11
      return nullptr;
330
11
    }
331
2.21k
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
2.22k
  }
Envoy::Config::ConfigValidatorFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Config::ConfigValidatorFactory>(google::protobuf::Any const&)
Line
Count
Source
327
2
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
2
    if (typed_config.type_url().empty()) {
329
1
      return nullptr;
330
1
    }
331
1
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
2
  }
Envoy::Server::Configuration::TracerFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::TracerFactory>(google::protobuf::Any const&)
Line
Count
Source
327
111
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
111
    if (typed_config.type_url().empty()) {
329
45
      return nullptr;
330
45
    }
331
66
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
111
  }
Envoy::Http::StatefulHeaderKeyFormatterFactoryConfig* Envoy::Config::Utility::getFactoryByType<Envoy::Http::StatefulHeaderKeyFormatterFactoryConfig>(google::protobuf::Any const&)
Line
Count
Source
327
12
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
12
    if (typed_config.type_url().empty()) {
329
2
      return nullptr;
330
2
    }
331
10
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
12
  }
Unexecuted instantiation: Envoy::Network::DnsResolverFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Network::DnsResolverFactory>(google::protobuf::Any const&)
Envoy::Matchers::StringMatcherExtensionFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Matchers::StringMatcherExtensionFactory>(google::protobuf::Any const&)
Line
Count
Source
327
682
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
682
    if (typed_config.type_url().empty()) {
329
42
      return nullptr;
330
42
    }
331
640
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
682
  }
Envoy::Server::Configuration::GuardDogActionFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::GuardDogActionFactory>(google::protobuf::Any const&)
Line
Count
Source
327
29
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
29
    if (typed_config.type_url().empty()) {
329
17
      return nullptr;
330
17
    }
331
12
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
29
  }
Envoy::Server::Configuration::BootstrapExtensionFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::BootstrapExtensionFactory>(google::protobuf::Any const&)
Line
Count
Source
327
1
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
1
    if (typed_config.type_url().empty()) {
329
0
      return nullptr;
330
0
    }
331
1
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
1
  }
Envoy::Server::Configuration::FatalActionFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::FatalActionFactory>(google::protobuf::Any const&)
Line
Count
Source
327
18
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
18
    if (typed_config.type_url().empty()) {
329
18
      return nullptr;
330
18
    }
331
0
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
18
  }
Envoy::Server::ListenerManagerFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::ListenerManagerFactory>(google::protobuf::Any const&)
Line
Count
Source
327
2
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
2
    if (typed_config.type_url().empty()) {
329
1
      return nullptr;
330
1
    }
331
1
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
2
  }
Envoy::Regex::EngineFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Regex::EngineFactory>(google::protobuf::Any const&)
Line
Count
Source
327
122
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
122
    if (typed_config.type_url().empty()) {
329
11
      return nullptr;
330
11
    }
331
111
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
122
  }
Envoy::Config::XdsResourcesDelegateFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Config::XdsResourcesDelegateFactory>(google::protobuf::Any const&)
Line
Count
Source
327
3
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
3
    if (typed_config.type_url().empty()) {
329
1
      return nullptr;
330
1
    }
331
2
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
3
  }
Envoy::Config::XdsConfigTrackerFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Config::XdsConfigTrackerFactory>(google::protobuf::Any const&)
Line
Count
Source
327
3
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
3
    if (typed_config.type_url().empty()) {
329
2
      return nullptr;
330
2
    }
331
1
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
3
  }
Unexecuted instantiation: Envoy::KeyValueStoreFactory* Envoy::Config::Utility::getFactoryByType<Envoy::KeyValueStoreFactory>(google::protobuf::Any const&)
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
327
2.04k
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
2.04k
    if (typed_config.type_url().empty()) {
329
5
      return nullptr;
330
5
    }
331
2.04k
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
2.04k
  }
Envoy::Server::Configuration::NamedListenerFilterConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::NamedListenerFilterConfigFactory>(google::protobuf::Any const&)
Line
Count
Source
327
1
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
1
    if (typed_config.type_url().empty()) {
329
0
      return nullptr;
330
0
    }
331
1
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
1
  }
Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::NamedQuicListenerFilterConfigFactory>(google::protobuf::Any const&)
Line
Count
Source
327
3
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
3
    if (typed_config.type_url().empty()) {
329
2
      return nullptr;
330
2
    }
331
1
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
3
  }
Envoy::Server::Configuration::NamedUdpListenerFilterConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::NamedUdpListenerFilterConfigFactory>(google::protobuf::Any const&)
Line
Count
Source
327
3
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
3
    if (typed_config.type_url().empty()) {
329
1
      return nullptr;
330
1
    }
331
2
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
3
  }
Envoy::Server::Configuration::DownstreamTransportSocketConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::DownstreamTransportSocketConfigFactory>(google::protobuf::Any const&)
Line
Count
Source
327
10.4k
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
10.4k
    if (typed_config.type_url().empty()) {
329
2
      return nullptr;
330
2
    }
331
10.4k
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
10.4k
  }
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
327
2
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
2
    if (typed_config.type_url().empty()) {
329
0
      return nullptr;
330
0
    }
331
2
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
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
327
84
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
84
    if (typed_config.type_url().empty()) {
329
50
      return nullptr;
330
50
    }
331
34
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
84
  }
Envoy::Quic::EnvoyQuicCryptoServerStreamFactoryInterface* Envoy::Config::Utility::getFactoryByType<Envoy::Quic::EnvoyQuicCryptoServerStreamFactoryInterface>(google::protobuf::Any const&)
Line
Count
Source
327
18
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
18
    if (typed_config.type_url().empty()) {
329
0
      return nullptr;
330
0
    }
331
18
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
18
  }
Envoy::Quic::EnvoyQuicProofSourceFactoryInterface* Envoy::Config::Utility::getFactoryByType<Envoy::Quic::EnvoyQuicProofSourceFactoryInterface>(google::protobuf::Any const&)
Line
Count
Source
327
17
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
17
    if (typed_config.type_url().empty()) {
329
1
      return nullptr;
330
1
    }
331
16
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
17
  }
Envoy::Quic::EnvoyQuicConnectionDebugVisitorFactoryInterface* Envoy::Config::Utility::getFactoryByType<Envoy::Quic::EnvoyQuicConnectionDebugVisitorFactoryInterface>(google::protobuf::Any const&)
Line
Count
Source
327
5
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
5
    if (typed_config.type_url().empty()) {
329
1
      return nullptr;
330
1
    }
331
4
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
5
  }
Envoy::Quic::EnvoyQuicConnectionIdGeneratorConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Quic::EnvoyQuicConnectionIdGeneratorConfigFactory>(google::protobuf::Any const&)
Line
Count
Source
327
10
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
10
    if (typed_config.type_url().empty()) {
329
0
      return nullptr;
330
0
    }
331
10
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
10
  }
Envoy::Quic::EnvoyQuicServerPreferredAddressConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Quic::EnvoyQuicServerPreferredAddressConfigFactory>(google::protobuf::Any const&)
Line
Count
Source
327
4
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
4
    if (typed_config.type_url().empty()) {
329
2
      return nullptr;
330
2
    }
331
2
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
4
  }
Unexecuted instantiation: Envoy::Ssl::TlsCertificateSelectorConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Ssl::TlsCertificateSelectorConfigFactory>(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
327
54
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
54
    if (typed_config.type_url().empty()) {
329
24
      return nullptr;
330
24
    }
331
30
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
54
  }
Unexecuted instantiation: Envoy::Extensions::Http::InjectedCredentials::Common::NamedCredentialInjectorConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Extensions::Http::InjectedCredentials::Common::NamedCredentialInjectorConfigFactory>(google::protobuf::Any const&)
Unexecuted instantiation: Envoy::Geolocation::GeoipProviderFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Geolocation::GeoipProviderFactory>(google::protobuf::Any const&)
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::NetworkFilters::GenericProxy::CodecFactoryConfig* Envoy::Config::Utility::getFactoryByType<Envoy::Extensions::NetworkFilters::GenericProxy::CodecFactoryConfig>(google::protobuf::Any const&)
Unexecuted instantiation: Envoy::Extensions::NetworkFilters::GenericProxy::NamedFilterConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Extensions::NetworkFilters::GenericProxy::NamedFilterConfigFactory>(google::protobuf::Any const&)
Unexecuted instantiation: Envoy::AccessLog::ExtensionFilterFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext>* Envoy::Config::Utility::getFactoryByType<Envoy::AccessLog::ExtensionFilterFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext> >(google::protobuf::Any const&)
Unexecuted instantiation: Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext>* Envoy::Config::Utility::getFactoryByType<Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext> >(google::protobuf::Any const&)
Unexecuted instantiation: Envoy::Formatter::CommandParserFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext>* Envoy::Config::Utility::getFactoryByType<Envoy::Formatter::CommandParserFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext> >(google::protobuf::Any const&)
Unexecuted instantiation: Envoy::Matcher::ActionFactory<Envoy::Extensions::NetworkFilters::GenericProxy::RouteActionContext>* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::ActionFactory<Envoy::Extensions::NetworkFilters::GenericProxy::RouteActionContext> >(google::protobuf::Any const&)
Unexecuted instantiation: Envoy::Matcher::DataInputFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput>* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::DataInputFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput> >(google::protobuf::Any const&)
Unexecuted instantiation: Envoy::Matcher::CustomMatcherFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput>* Envoy::Config::Utility::getFactoryByType<Envoy::Matcher::CustomMatcherFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput> >(google::protobuf::Any const&)
Unexecuted instantiation: Envoy::Server::Configuration::NamedUdpSessionFilterConfigFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Server::Configuration::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&)
Unexecuted instantiation: Envoy::Extensions::Common::Tap::TapSinkFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Extensions::Common::Tap::TapSinkFactory>(google::protobuf::Any const&)
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&)
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
327
65
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
65
    if (typed_config.type_url().empty()) {
329
12
      return nullptr;
330
12
    }
331
53
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
65
  }
Envoy::Extensions::Filters::Common::RBAC::MatcherExtensionFactory* Envoy::Config::Utility::getFactoryByType<Envoy::Extensions::Filters::Common::RBAC::MatcherExtensionFactory>(google::protobuf::Any const&)
Line
Count
Source
327
18
  template <class Factory> static Factory* getFactoryByType(const ProtobufWkt::Any& typed_config) {
328
18
    if (typed_config.type_url().empty()) {
329
6
      return nullptr;
330
6
    }
331
12
    return Registry::FactoryRegistry<Factory>::getFactoryByType(getFactoryType(typed_config));
332
18
  }
333
334
  /**
335
   * Translate a nested config into a proto message provided by the implementation factory.
336
   * @param enclosing_message proto that contains a field 'typed_config'. Note: the enclosing proto
337
   * is provided because for statically registered implementations, a custom config is generally
338
   * optional, which means the conversion must be done conditionally.
339
   * @param validation_visitor message validation visitor instance.
340
   * @param factory implementation factory with the method 'createEmptyConfigProto' to produce a
341
   * proto to be filled with the translated configuration.
342
   */
343
  template <class ProtoMessage, class Factory>
344
  static ProtobufTypes::MessagePtr
345
  translateToFactoryConfig(const ProtoMessage& enclosing_message,
346
                           ProtobufMessage::ValidationVisitor& validation_visitor,
347
33.0k
                           Factory& factory) {
348
33.0k
    ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto();
349
350
    // Fail in an obvious way if a plugin does not return a proto.
351
33.0k
    RELEASE_ASSERT(config != nullptr, "");
352
353
    // Check that the config type is not google.protobuf.Empty
354
33.0k
    RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", "");
355
356
33.0k
    translateOpaqueConfig(enclosing_message.typed_config(), validation_visitor, *config);
357
33.0k
    return config;
358
33.0k
  }
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
347
2.40k
                           Factory& factory) {
348
2.40k
    ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto();
349
350
    // Fail in an obvious way if a plugin does not return a proto.
351
2.40k
    RELEASE_ASSERT(config != nullptr, "");
352
353
    // Check that the config type is not google.protobuf.Empty
354
2.40k
    RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", "");
355
356
2.40k
    translateOpaqueConfig(enclosing_message.typed_config(), validation_visitor, *config);
357
2.40k
    return config;
358
2.40k
  }
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
347
2.40k
                           Factory& factory) {
348
2.40k
    ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto();
349
350
    // Fail in an obvious way if a plugin does not return a proto.
351
2.40k
    RELEASE_ASSERT(config != nullptr, "");
352
353
    // Check that the config type is not google.protobuf.Empty
354
2.40k
    RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", "");
355
356
2.40k
    translateOpaqueConfig(enclosing_message.typed_config(), validation_visitor, *config);
357
2.40k
    return config;
358
2.40k
  }
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
347
3.32k
                           Factory& factory) {
348
3.32k
    ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto();
349
350
    // Fail in an obvious way if a plugin does not return a proto.
351
3.32k
    RELEASE_ASSERT(config != nullptr, "");
352
353
    // Check that the config type is not google.protobuf.Empty
354
3.32k
    RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", "");
355
356
3.32k
    translateOpaqueConfig(enclosing_message.typed_config(), validation_visitor, *config);
357
3.32k
    return config;
358
3.32k
  }
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
347
3.93k
                           Factory& factory) {
348
3.93k
    ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto();
349
350
    // Fail in an obvious way if a plugin does not return a proto.
351
3.93k
    RELEASE_ASSERT(config != nullptr, "");
352
353
    // Check that the config type is not google.protobuf.Empty
354
3.93k
    RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", "");
355
356
3.93k
    translateOpaqueConfig(enclosing_message.typed_config(), validation_visitor, *config);
357
3.93k
    return config;
358
3.93k
  }
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
347
43
                           Factory& factory) {
348
43
    ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto();
349
350
    // Fail in an obvious way if a plugin does not return a proto.
351
43
    RELEASE_ASSERT(config != nullptr, "");
352
353
    // Check that the config type is not google.protobuf.Empty
354
43
    RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", "");
355
356
43
    translateOpaqueConfig(enclosing_message.typed_config(), validation_visitor, *config);
357
43
    return config;
358
43
  }
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<xds::core::v3::TypedExtensionConfig, Envoy::Matchers::StringMatcherExtensionFactory>(xds::core::v3::TypedExtensionConfig const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Matchers::StringMatcherExtensionFactory&)
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
347
10.4k
                           Factory& factory) {
348
10.4k
    ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto();
349
350
    // Fail in an obvious way if a plugin does not return a proto.
351
10.4k
    RELEASE_ASSERT(config != nullptr, "");
352
353
    // Check that the config type is not google.protobuf.Empty
354
10.4k
    RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", "");
355
356
10.4k
    translateOpaqueConfig(enclosing_message.typed_config(), validation_visitor, *config);
357
10.4k
    return config;
358
10.4k
  }
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
347
10.4k
                           Factory& factory) {
348
10.4k
    ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto();
349
350
    // Fail in an obvious way if a plugin does not return a proto.
351
10.4k
    RELEASE_ASSERT(config != nullptr, "");
352
353
    // Check that the config type is not google.protobuf.Empty
354
10.4k
    RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", "");
355
356
10.4k
    translateOpaqueConfig(enclosing_message.typed_config(), validation_visitor, *config);
357
10.4k
    return config;
358
10.4k
  }
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
347
9
                           Factory& factory) {
348
9
    ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto();
349
350
    // Fail in an obvious way if a plugin does not return a proto.
351
9
    RELEASE_ASSERT(config != nullptr, "");
352
353
    // Check that the config type is not google.protobuf.Empty
354
9
    RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", "");
355
356
9
    translateOpaqueConfig(enclosing_message.typed_config(), validation_visitor, *config);
357
9
    return config;
358
9
  }
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::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&)
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::config::accesslog::v3::AccessLog, Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext> >(envoy::config::accesslog::v3::AccessLog const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::AccessLog::AccessLogInstanceFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext>&)
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::Server::Configuration::NamedUdpSessionFilterConfigFactory>(envoy::extensions::filters::udp::udp_proxy::v3::UdpProxyConfig_SessionFilter const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::NamedUdpSessionFilterConfigFactory&)
359
360
  /**
361
   * Translate the typed any field into a proto message provided by the implementation factory.
362
   * @param typed_config typed configuration.
363
   * @param validation_visitor message validation visitor instance.
364
   * @param factory implementation factory with the method 'createEmptyConfigProto' to produce a
365
   * proto to be filled with the translated configuration.
366
   */
367
  template <class Factory>
368
  static ProtobufTypes::MessagePtr
369
  translateAnyToFactoryConfig(const ProtobufWkt::Any& typed_config,
370
                              ProtobufMessage::ValidationVisitor& validation_visitor,
371
113k
                              Factory& factory) {
372
113k
    ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto();
373
374
    // Fail in an obvious way if a plugin does not return a proto.
375
113k
    RELEASE_ASSERT(config != nullptr, "");
376
377
    // Check that the config type is not google.protobuf.Empty
378
113k
    RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", "");
379
380
113k
    translateOpaqueConfig(typed_config, validation_visitor, *config);
381
113k
    return config;
382
113k
  }
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::Server::Configuration::UpstreamHttpFilterConfigFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::UpstreamHttpFilterConfigFactory&)
Unexecuted instantiation: 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&)
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
371
6.30k
                              Factory& factory) {
372
6.30k
    ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto();
373
374
    // Fail in an obvious way if a plugin does not return a proto.
375
6.30k
    RELEASE_ASSERT(config != nullptr, "");
376
377
    // Check that the config type is not google.protobuf.Empty
378
6.30k
    RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", "");
379
380
6.30k
    translateOpaqueConfig(typed_config, validation_visitor, *config);
381
6.30k
    return config;
382
6.30k
  }
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
371
64.9k
                              Factory& factory) {
372
64.9k
    ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto();
373
374
    // Fail in an obvious way if a plugin does not return a proto.
375
64.9k
    RELEASE_ASSERT(config != nullptr, "");
376
377
    // Check that the config type is not google.protobuf.Empty
378
64.9k
    RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", "");
379
380
64.9k
    translateOpaqueConfig(typed_config, validation_visitor, *config);
381
64.9k
    return config;
382
64.9k
  }
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
371
32.9k
                              Factory& factory) {
372
32.9k
    ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto();
373
374
    // Fail in an obvious way if a plugin does not return a proto.
375
32.9k
    RELEASE_ASSERT(config != nullptr, "");
376
377
    // Check that the config type is not google.protobuf.Empty
378
32.9k
    RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", "");
379
380
32.9k
    translateOpaqueConfig(typed_config, validation_visitor, *config);
381
32.9k
    return config;
382
32.9k
  }
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&)
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
371
1.09k
                              Factory& factory) {
372
1.09k
    ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto();
373
374
    // Fail in an obvious way if a plugin does not return a proto.
375
1.09k
    RELEASE_ASSERT(config != nullptr, "");
376
377
    // Check that the config type is not google.protobuf.Empty
378
1.09k
    RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", "");
379
380
1.09k
    translateOpaqueConfig(typed_config, validation_visitor, *config);
381
1.09k
    return config;
382
1.09k
  }
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
371
1.61k
                              Factory& factory) {
372
1.61k
    ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto();
373
374
    // Fail in an obvious way if a plugin does not return a proto.
375
1.61k
    RELEASE_ASSERT(config != nullptr, "");
376
377
    // Check that the config type is not google.protobuf.Empty
378
1.61k
    RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", "");
379
380
1.61k
    translateOpaqueConfig(typed_config, validation_visitor, *config);
381
1.61k
    return config;
382
1.61k
  }
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
371
6.26k
                              Factory& factory) {
372
6.26k
    ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto();
373
374
    // Fail in an obvious way if a plugin does not return a proto.
375
6.26k
    RELEASE_ASSERT(config != nullptr, "");
376
377
    // Check that the config type is not google.protobuf.Empty
378
6.26k
    RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", "");
379
380
6.26k
    translateOpaqueConfig(typed_config, validation_visitor, *config);
381
6.26k
    return config;
382
6.26k
  }
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::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::Extensions::Http::InjectedCredentials::Common::NamedCredentialInjectorConfigFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Extensions::Http::InjectedCredentials::Common::NamedCredentialInjectorConfigFactory&)
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::Formatter::CommandParserFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext> >(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Formatter::CommandParserFactoryBase<Envoy::Extensions::NetworkFilters::GenericProxy::FormatterContext>&)
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::NetworkFilters::GenericProxy::RouteActionContext> >(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Matcher::ActionFactory<Envoy::Extensions::NetworkFilters::GenericProxy::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::Extensions::NetworkFilters::GenericProxy::MatchInput> >(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Matcher::DataInputFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput>&)
Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Matcher::CustomMatcherFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput> >(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Matcher::CustomMatcherFactory<Envoy::Extensions::NetworkFilters::GenericProxy::MatchInput>&)
Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Server::Configuration::NamedUdpSessionFilterConfigFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Server::Configuration::NamedUdpSessionFilterConfigFactory&)
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::Tracers::OpenTelemetry::DynatraceResourceDetectorFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Extensions::Tracers::OpenTelemetry::DynatraceResourceDetectorFactory&)
Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Extensions::Tracers::OpenTelemetry::StaticConfigResourceDetectorFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Extensions::Tracers::OpenTelemetry::StaticConfigResourceDetectorFactory&)
Unexecuted instantiation: std::__1::unique_ptr<google::protobuf::Message, std::__1::default_delete<google::protobuf::Message> > Envoy::Config::Utility::translateAnyToFactoryConfig<Envoy::Extensions::Tracers::OpenTelemetry::DynatraceSamplerFactory>(google::protobuf::Any const&, Envoy::ProtobufMessage::ValidationVisitor&, Envoy::Extensions::Tracers::OpenTelemetry::DynatraceSamplerFactory&)
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::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::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>&)
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>&)
Line
Count
Source
371
3
                              Factory& factory) {
372
3
    ProtobufTypes::MessagePtr config = factory.createEmptyConfigProto();
373
374
    // Fail in an obvious way if a plugin does not return a proto.
375
3
    RELEASE_ASSERT(config != nullptr, "");
376
377
    // Check that the config type is not google.protobuf.Empty
378
3
    RELEASE_ASSERT(config->GetTypeName() != "google.protobuf.Empty", "");
379
380
3
    translateOpaqueConfig(typed_config, validation_visitor, *config);
381
3
    return config;
382
3
  }
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&)
383
384
  /**
385
   * Truncates the message to a length less than default GRPC trailers size limit (by default 8KiB).
386
   */
387
  static std::string truncateGrpcStatusMessage(absl::string_view error_message);
388
389
  /**
390
   * Obtain gRPC async client factory from a envoy::config::core::v3::ApiConfigSource.
391
   * @param async_client_manager gRPC async client manager.
392
   * @param api_config_source envoy::config::core::v3::ApiConfigSource. Must have config type GRPC.
393
   * @param skip_cluster_check whether to skip cluster validation.
394
   * @param grpc_service_idx index of the grpc service in the api_config_source. If there's no entry
395
   *                         in the given index, a nullptr factory will be returned.
396
   * @return Grpc::AsyncClientFactoryPtr gRPC async client factory, or nullptr if there's no
397
   * grpc_service in the given index.
398
   */
399
  static absl::StatusOr<Grpc::AsyncClientFactoryPtr>
400
  factoryForGrpcApiConfigSource(Grpc::AsyncClientManager& async_client_manager,
401
                                const envoy::config::core::v3::ApiConfigSource& api_config_source,
402
                                Stats::Scope& scope, bool skip_cluster_check, int grpc_service_idx);
403
404
  /**
405
   * Translate opaque config from google.protobuf.Any to defined proto message.
406
   * @param typed_config opaque config packed in google.protobuf.Any
407
   * @param validation_visitor message validation visitor instance.
408
   * @param out_proto the proto message instantiated by extensions
409
   */
410
  static void translateOpaqueConfig(const ProtobufWkt::Any& typed_config,
411
                                    ProtobufMessage::ValidationVisitor& validation_visitor,
412
                                    Protobuf::Message& out_proto);
413
414
  /**
415
   * Verify that any filter designed to be terminal is configured to be terminal, and vice versa.
416
   * @param name the name of the filter.
417
   * @param filter_type the type of filter.
418
   * @param filter_chain_type the type of filter chain.
419
   * @param is_terminal_filter true if the filter is designed to be terminal.
420
   * @param last_filter_in_current_config true if the filter is last in the configuration.
421
   * @return a status indicating if there is a mismatch between design and configuration.
422
   */
423
  static absl::Status validateTerminalFilters(const std::string& name,
424
                                              const std::string& filter_type,
425
                                              const std::string& filter_chain_type,
426
                                              bool is_terminal_filter,
427
6.89k
                                              bool last_filter_in_current_config) {
428
6.89k
    if (is_terminal_filter && !last_filter_in_current_config) {
429
0
      return absl::InvalidArgumentError(
430
0
          fmt::format("Error: terminal filter named {} of type {} must be the "
431
0
                      "last filter in a {} filter chain.",
432
0
                      name, filter_type, filter_chain_type));
433
6.89k
    } else if (!is_terminal_filter && last_filter_in_current_config) {
434
0
      return absl::InvalidArgumentError(fmt::format(
435
0
          "Error: non-terminal filter named {} of type {} is the last filter in a {} filter chain.",
436
0
          name, filter_type, filter_chain_type));
437
0
    }
438
6.89k
    return absl::OkStatus();
439
6.89k
  }
440
441
  /**
442
   * Prepares the DNS failure refresh backoff strategy given the cluster configuration.
443
   * @param config the config that contains dns refresh information.
444
   * @param dns_refresh_rate_ms the default DNS refresh rate.
445
   * @param random the random generator.
446
   * @return BackOffStrategyPtr for scheduling refreshes.
447
   */
448
  template <typename T>
449
  static BackOffStrategyPtr prepareDnsRefreshStrategy(const T& config, uint64_t dns_refresh_rate_ms,
450
0
                                                      Random::RandomGenerator& random) {
451
0
    if (config.has_dns_failure_refresh_rate()) {
452
0
      uint64_t base_interval_ms =
453
0
          PROTOBUF_GET_MS_REQUIRED(config.dns_failure_refresh_rate(), base_interval);
454
0
      uint64_t max_interval_ms = PROTOBUF_GET_MS_OR_DEFAULT(config.dns_failure_refresh_rate(),
455
0
                                                            max_interval, base_interval_ms * 10);
456
0
      if (max_interval_ms < base_interval_ms) {
457
0
        ExceptionUtil::throwEnvoyException(
458
0
            "dns_failure_refresh_rate must have max_interval greater than "
459
0
            "or equal to the base_interval");
460
0
      }
461
0
      return std::make_unique<JitteredExponentialBackOffStrategy>(base_interval_ms, max_interval_ms,
462
0
                                                                  random);
463
0
    }
464
0
    return std::make_unique<FixedBackOffStrategy>(dns_refresh_rate_ms);
465
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&)
466
467
  /**
468
   * Returns Jittered Exponential BackOff Strategy from BackoffStrategy config if present or
469
   * provided default timer values
470
   * @param api_config_source config
471
   * @param random random generator
472
   * @param default_base_interval_ms  Default base interval, must be > 0
473
   * @param default_max_interval_ms (optional) Default maximum interval
474
   * @return JitteredExponentialBackOffStrategyPtr if 1. Backoff Strategy is
475
   * found in the config or 2. default base interval and default maximum interval is specified or 3.
476
   * max interval is set to 10*default base interval
477
   */
478
  static absl::StatusOr<JitteredExponentialBackOffStrategyPtr>
479
  prepareJitteredExponentialBackOffStrategy(
480
      const envoy::config::core::v3::ApiConfigSource& api_config_source,
481
      Random::RandomGenerator& random, const uint32_t default_base_interval_ms,
482
1.36k
      absl::optional<const uint32_t> default_max_interval_ms) {
483
1.36k
    auto& grpc_services = api_config_source.grpc_services();
484
1.36k
    if (!grpc_services.empty() && grpc_services[0].has_envoy_grpc()) {
485
169
      return prepareJitteredExponentialBackOffStrategy(
486
169
          grpc_services[0].envoy_grpc(), random, default_base_interval_ms, default_max_interval_ms);
487
169
    }
488
1.19k
    return buildJitteredExponentialBackOffStrategy(absl::nullopt, random, default_base_interval_ms,
489
1.19k
                                                   default_max_interval_ms);
490
1.36k
  }
491
492
  /**
493
   * Prepares Jittered Exponential BackOff Strategy from config containing the Retry Policy
494
   * @param config config containing RetryPolicy <envoy_v3_api_msg_config.core.v3.RetryPolicy>
495
   * @param random random generator
496
   * @param default_base_interval_ms  Default base interval, must be > 0
497
   * @param default_max_interval_ms (optional) Default maximum interval
498
   * @return JitteredExponentialBackOffStrategyPtr if 1. RetryPolicy containing backoff values is
499
   * found in config or 2. default base interval and default maximum interval is specified or 3.
500
   * default max interval is set to 10*default base interval
501
   */
502
  template <typename T>
503
  static absl::StatusOr<JitteredExponentialBackOffStrategyPtr>
504
  prepareJitteredExponentialBackOffStrategy(
505
      const T& config, Random::RandomGenerator& random, const uint32_t default_base_interval_ms,
506
169
      absl::optional<const uint32_t> default_max_interval_ms) {
507
    // If RetryPolicy containing backoff values is found in config
508
169
    if (config.has_retry_policy() && config.retry_policy().has_retry_back_off()) {
509
16
      return buildJitteredExponentialBackOffStrategy(config.retry_policy().retry_back_off(), random,
510
16
                                                     default_base_interval_ms,
511
16
                                                     default_max_interval_ms);
512
16
    }
513
153
    return buildJitteredExponentialBackOffStrategy(absl::nullopt, random, default_base_interval_ms,
514
153
                                                   default_max_interval_ms);
515
169
  }
absl::lts_20230802::StatusOr<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
506
169
      absl::optional<const uint32_t> default_max_interval_ms) {
507
    // If RetryPolicy containing backoff values is found in config
508
169
    if (config.has_retry_policy() && config.retry_policy().has_retry_back_off()) {
509
16
      return buildJitteredExponentialBackOffStrategy(config.retry_policy().retry_back_off(), random,
510
16
                                                     default_base_interval_ms,
511
16
                                                     default_max_interval_ms);
512
16
    }
513
153
    return buildJitteredExponentialBackOffStrategy(absl::nullopt, random, default_base_interval_ms,
514
153
                                                   default_max_interval_ms);
515
169
  }
Unexecuted instantiation: absl::lts_20230802::StatusOr<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>)
516
517
private:
518
  /**
519
   * Returns Jittered Exponential BackOff Strategy from BackoffStrategy config or default
520
   * values
521
   * @param config (optional) BackoffStrategy config
522
   * @param random random generator
523
   * @param default_base_interval_ms  Default base interval, must be > 0
524
   * @param default_max_interval_ms (optional) Default maximum interval
525
   * @return JitteredExponentialBackOffStrategyPtr if 1. Backoff Strategy is
526
   * specified or 2. default base interval and default maximum interval is specified or 3.
527
   * max interval is set to 10*default base interval
528
   */
529
  static absl::StatusOr<JitteredExponentialBackOffStrategyPtr>
530
  buildJitteredExponentialBackOffStrategy(
531
      absl::optional<const envoy::config::core::v3::BackoffStrategy> backoff,
532
      Random::RandomGenerator& random, const uint32_t default_base_interval_ms,
533
      absl::optional<const uint32_t> default_max_interval_ms);
534
};
535
} // namespace Config
536
} // namespace Envoy