1
#pragma once
2

            
3
#include "envoy/router/cluster_specifier_plugin.h"
4

            
5
namespace Envoy {
6
namespace Router {
7

            
8
class HeaderClusterSpecifierPlugin : public ClusterSpecifierPlugin {
9
public:
10
  HeaderClusterSpecifierPlugin(absl::string_view cluster_header);
11

            
12
  RouteConstSharedPtr route(RouteEntryAndRouteConstSharedPtr parent,
13
                            const Http::RequestHeaderMap& headers,
14
                            const StreamInfo::StreamInfo& stream_info,
15
                            uint64_t random) const override;
16

            
17
private:
18
  const Http::LowerCaseString cluster_header_;
19
};
20

            
21
} // namespace Router
22
} // namespace Envoy