1
#pragma once
2

            
3
#include "envoy/common/pure.h"
4
#include "envoy/network/client_connection_factory.h"
5
#include "envoy/network/connection.h"
6
#include "envoy/registry/registry.h"
7

            
8
namespace Envoy {
9

            
10
namespace Network {
11

            
12
/**
13
 * This client connection factory handles the connection if the remote address type is either ip or
14
 * pipe.
15
 */
16
class DefaultClientConnectionFactory : public ClientConnectionFactory {
17
public:
18
  ~DefaultClientConnectionFactory() override = default;
19

            
20
  // Config::UntypedFactory
21
1671
  std::string name() const override { return "default"; }
22

            
23
  // Network::ClientConnectionFactory
24
  Network::ClientConnectionPtr createClientConnection(
25
      Event::Dispatcher& dispatcher, Network::Address::InstanceConstSharedPtr address,
26
      Network::Address::InstanceConstSharedPtr source_address,
27
      Network::TransportSocketPtr&& transport_socket,
28
      const Network::ConnectionSocket::OptionsSharedPtr& options,
29
      const Network::TransportSocketOptionsConstSharedPtr& transport_options) override;
30
};
31

            
32
DECLARE_FACTORY(DefaultClientConnectionFactory);
33

            
34
} // namespace Network
35
} // namespace Envoy