#include "envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.pb.h"
// Types are deeply nested under Envoy::Config::ConfigProvider; use 'using-directives' across all
const std::string& stat_prefix, ConfigProviderManager& scoped_routes_config_provider_manager) {
// otherwise cache it and wait for the route table to be initialized. If RouteConfiguration hasn't
// because other worker threads may also post callback to on demand update the RouteConfiguration
void ScopedRdsConfigSubscription::RdsRouteConfigProviderHelper::runOnDemandUpdateCallback() {
void ScopedRdsConfigSubscription::RdsRouteConfigProviderHelper::maybeInitRdsConfigProvider() {
const Protobuf::RepeatedPtrField<std::string>& scope_names, const std::string& version_info) {
// called, the init manager can't accept new targets. Instead we use a local override which will
const auto type_url = Envoy::Config::getTypeUrl<envoy::config::route::v3::RouteConfiguration>();
// Do not delete RDS config providers just yet, in case the to be deleted RDS subscriptions could
stats_.config_reload_time_ms_.set(DateUtil::nowToMilliseconds(factory_context_.timeSource()));
const Protobuf::RepeatedPtrField<std::string>& removed_resources, std::string& exception_msg) {
auto scope_config_inserted = scoped_routes.try_emplace(scope_name, std::move(scoped_route));
route_provider_by_scope_[scope_name]->addOnDemandUpdateCallback(thread_local_updated_callback);
: MutableConfigProviderCommonBase(std::move(subscription), ConfigProvider::ApiType::Delta) {}
ScopedRoutesConfigProviderManager::dumpConfigs(const Matchers::StringMatcher& name_matcher) const {
const auto& typed_optarg = static_cast<const ScopedRoutesConfigProviderManagerOptArg&>(optarg);
const auto& typed_optarg = static_cast<const ScopedRoutesConfigProviderManagerOptArg&>(optarg);