Line data Source code
1 : #pragma once 2 : 3 : #include <sys/types.h> 4 : 5 : #include <cstdint> 6 : #include <string> 7 : 8 : #include "envoy/common/pure.h" 9 : #include "envoy/config/core/v3/address.pb.h" 10 : #include "envoy/config/typed_config.h" 11 : #include "envoy/network/address.h" 12 : 13 : namespace Envoy { 14 : namespace Network { 15 : namespace Address { 16 : 17 : /** 18 : * Interface for all network address resolvers. 19 : */ 20 : class Resolver : public Config::UntypedFactory { 21 : public: 22 0 : ~Resolver() override = default; 23 : 24 : /** 25 : * Resolve a custom address string and port to an Address::Instance. 26 : * @param socket_address supplies the socket address to resolve. 27 : * @return InstanceConstSharedPtr appropriate Address::Instance. 28 : */ 29 : virtual InstanceConstSharedPtr 30 : resolve(const envoy::config::core::v3::SocketAddress& socket_address) PURE; 31 : 32 112 : std::string category() const override { return "envoy.resolvers"; } 33 : }; 34 : 35 : } // namespace Address 36 : } // namespace Network 37 : } // namespace Envoy