1
#pragma once
2

            
3
#include "envoy/stream_info/filter_state.h"
4

            
5
namespace Envoy {
6
namespace Network {
7

            
8
/**
9
 * ALPN to set in the upstream connection. Filters can use this one to override the ALPN in TLS
10
 * context.
11
 */
12
class ApplicationProtocols : public StreamInfo::FilterState::Object {
13
public:
14
  explicit ApplicationProtocols(const std::vector<std::string>& application_protocols)
15
4
      : application_protocols_(application_protocols) {}
16
4
  const std::vector<std::string>& value() const { return application_protocols_; }
17
  static const std::string& key();
18

            
19
private:
20
  const std::vector<std::string> application_protocols_;
21
};
22

            
23
} // namespace Network
24
} // namespace Envoy