Line data Source code
1 : #pragma once 2 : 3 : #include "envoy/config/subscription.h" 4 : 5 : #include "source/common/config/opaque_resource_decoder_impl.h" 6 : #include "source/common/config/resource_name.h" 7 : 8 : namespace Envoy { 9 : namespace Config { 10 : 11 : template <typename Current> struct SubscriptionBase : public Config::SubscriptionCallbacks { 12 : public: 13 : SubscriptionBase(ProtobufMessage::ValidationVisitor& validation_visitor, 14 : absl::string_view name_field) 15 : : resource_decoder_(std::make_shared<Config::OpaqueResourceDecoderImpl<Current>>( 16 155 : validation_visitor, name_field)) {} 17 : 18 155 : std::string getResourceName() const { return Envoy::Config::getResourceName<Current>(); } 19 : 20 : protected: 21 : OpaqueResourceDecoderSharedPtr resource_decoder_; 22 : }; 23 : 24 : } // namespace Config 25 : } // namespace Envoy