1
#pragma once
2

            
3
#include "envoy/extensions/matching/input_matchers/consistent_hashing/v3/consistent_hashing.pb.h"
4
#include "envoy/extensions/matching/input_matchers/consistent_hashing/v3/consistent_hashing.pb.validate.h"
5
#include "envoy/matcher/matcher.h"
6
#include "envoy/server/factory_context.h"
7

            
8
#include "source/common/protobuf/utility.h"
9
#include "source/extensions/matching/input_matchers/consistent_hashing/matcher.h"
10

            
11
namespace Envoy {
12
namespace Extensions {
13
namespace Matching {
14
namespace InputMatchers {
15
namespace ConsistentHashing {
16

            
17
class ConsistentHashingConfig : public Envoy::Matcher::InputMatcherFactory {
18
public:
19
  Envoy::Matcher::InputMatcherFactoryCb createInputMatcherFactoryCb(
20
      const Protobuf::Message& config,
21
      Server::Configuration::ServerFactoryContext& factory_context) override;
22

            
23
5
  std::string name() const override { return "envoy.matching.matchers.consistent_hashing"; }
24

            
25
3
  ProtobufTypes::MessagePtr createEmptyConfigProto() override {
26
3
    return std::make_unique<
27
3
        envoy::extensions::matching::input_matchers::consistent_hashing::v3::ConsistentHashing>();
28
3
  }
29
};
30
} // namespace ConsistentHashing
31
} // namespace InputMatchers
32
} // namespace Matching
33
} // namespace Extensions
34
} // namespace Envoy