1
#pragma once
2

            
3
#include "envoy/extensions/matching/common_inputs/network/v3/network_inputs.pb.h"
4
#include "envoy/extensions/matching/common_inputs/network/v3/network_inputs.pb.validate.h"
5
#include "envoy/matcher/matcher.h"
6
#include "envoy/network/filter.h"
7
#include "envoy/registry/registry.h"
8

            
9
#include "source/common/network/utility.h"
10
#include "source/extensions/matching/network/common/inputs.h"
11

            
12
namespace Envoy {
13
namespace Network {
14
namespace Matching {
15

            
16
class ApplicationProtocolInput : public Matcher::DataInput<MatchingData> {
17
public:
18
  Matcher::DataInputGetResult get(const MatchingData& data) const override;
19
};
20

            
21
class ApplicationProtocolInputFactory
22
    : public BaseFactory<
23
          ApplicationProtocolInput,
24
          envoy::extensions::matching::common_inputs::network::v3::ApplicationProtocolInput,
25
          MatchingData> {
26
public:
27
13
  ApplicationProtocolInputFactory() : BaseFactory("application_protocol") {}
28
};
29

            
30
DECLARE_FACTORY(ApplicationProtocolInputFactory);
31

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