Line data Source code
1 : #pragma once 2 : 3 : #include <string> 4 : #include <vector> 5 : 6 : #include "envoy/config/upstream/local_address_selector/v3/default_local_address_selector.pb.h" 7 : #include "envoy/network/address.h" 8 : #include "envoy/network/socket.h" 9 : #include "envoy/registry/registry.h" 10 : #include "envoy/upstream/upstream.h" 11 : 12 : #include "absl/types/optional.h" 13 : 14 : namespace Envoy { 15 : namespace Upstream { 16 : 17 : class DefaultUpstreamLocalAddressSelectorFactory : public UpstreamLocalAddressSelectorFactory { 18 : public: 19 : std::string name() const override; 20 : 21 : absl::StatusOr<UpstreamLocalAddressSelectorConstSharedPtr> createLocalAddressSelector( 22 : std::vector<::Envoy::Upstream::UpstreamLocalAddress> upstream_local_addresses, 23 : absl::optional<std::string> cluster_name) const override; 24 : 25 12 : ProtobufTypes::MessagePtr createEmptyConfigProto() override { 26 12 : return std::make_unique< 27 12 : envoy::config::upstream::local_address_selector::v3::DefaultLocalAddressSelector>(); 28 12 : } 29 : }; 30 : 31 : DECLARE_FACTORY(DefaultUpstreamLocalAddressSelectorFactory); 32 : 33 : } // namespace Upstream 34 : } // namespace Envoy