1
#pragma once
2

            
3
#include "envoy/config/core/v3/address.pb.h"
4
#include "envoy/network/address.h"
5
#include "envoy/network/connection.h"
6
#include "envoy/network/resolver.h"
7
#include "envoy/registry/registry.h"
8

            
9
#include "source/common/network/address_impl.h"
10

            
11
namespace Envoy {
12
namespace Network {
13
namespace Address {
14
/**
15
 * Create an Instance from a envoy::config::core::v3::Address.
16
 * @param address supplies the address proto to resolve.
17
 * @return pointer to the Instance or an error status
18
 */
19
absl::StatusOr<Address::InstanceConstSharedPtr>
20
resolveProtoAddress(const envoy::config::core::v3::Address& address);
21

            
22
/**
23
 * Create an Instance from a envoy::config::core::v3::SocketAddress.
24
 * @param address supplies the socket address proto to resolve.
25
 * @return pointer to the Instance or an error status.
26
 */
27
absl::StatusOr<Address::InstanceConstSharedPtr>
28
resolveProtoSocketAddress(const envoy::config::core::v3::SocketAddress& address);
29

            
30
DECLARE_FACTORY(IpResolver);
31

            
32
} // namespace Address
33
} // namespace Network
34
} // namespace Envoy