1
#pragma once
2

            
3
#include "envoy/network/address.h"
4
#include "envoy/stream_info/filter_state.h"
5

            
6
#include "absl/container/flat_hash_set.h"
7

            
8
namespace Envoy {
9
namespace StreamInfo {
10

            
11
/*
12
 * A FilterState object that wraps a network address shared pointer.
13
 */
14
class UpstreamAddress : public Network::Address::InstanceAccessor {
15
public:
16
  UpstreamAddress(Network::Address::InstanceConstSharedPtr ip)
17
20
      : Network::Address::InstanceAccessor(ip) {}
18
46
  static const std::string& key() {
19
46
    CONSTRUCT_ON_FIRST_USE(std::string, "envoy.stream.upstream_address");
20
46
  }
21
};
22

            
23
} // namespace StreamInfo
24
} // namespace Envoy