Line data Source code
1 : #pragma once 2 : 3 : #include "envoy/extensions/geoip_providers/maxmind/v3/maxmind.pb.h" 4 : #include "envoy/extensions/geoip_providers/maxmind/v3/maxmind.pb.validate.h" 5 : 6 : #include "source/common/protobuf/protobuf.h" 7 : #include "source/extensions/geoip_providers/common/factory_base.h" 8 : 9 : namespace Envoy { 10 : namespace Extensions { 11 : namespace GeoipProviders { 12 : namespace Maxmind { 13 : 14 : using DriverSharedPtr = Envoy::Geolocation::DriverSharedPtr; 15 : 16 : class MaxmindProviderFactory 17 : : public Common::FactoryBase<envoy::extensions::geoip_providers::maxmind::v3::MaxMindConfig> { 18 : public: 19 : MaxmindProviderFactory(); 20 : 21 1 : ProtobufTypes::MessagePtr createEmptyConfigProto() override { 22 1 : return std::make_unique<envoy::extensions::geoip_providers::maxmind::v3::MaxMindConfig>(); 23 1 : } 24 : 25 : private: 26 : // FactoryBase 27 : DriverSharedPtr createGeoipProviderDriverTyped( 28 : const envoy::extensions::geoip_providers::maxmind::v3::MaxMindConfig& proto_config, 29 : const std::string& stat_prefix, Server::Configuration::FactoryContext& context) override; 30 : }; 31 : 32 : DECLARE_FACTORY(MaxmindProviderFactory); 33 : 34 : } // namespace Maxmind 35 : } // namespace GeoipProviders 36 : } // namespace Extensions 37 : } // namespace Envoy