1
#pragma once
2

            
3
#include "envoy/extensions/retry/host/omit_canary_hosts/v3/omit_canary_hosts.pb.validate.h"
4
#include "envoy/upstream/retry.h"
5

            
6
#include "source/extensions/retry/host/omit_canary_hosts/omit_canary_hosts.h"
7

            
8
namespace Envoy {
9
namespace Extensions {
10
namespace Retry {
11
namespace Host {
12

            
13
class OmitCanaryHostsRetryPredicateFactory : public Upstream::RetryHostPredicateFactory {
14

            
15
public:
16
  Upstream::RetryHostPredicateSharedPtr createHostPredicate(const Protobuf::Message&,
17
1
                                                            uint32_t) override {
18
1
    return std::make_shared<OmitCanaryHostsRetryPredicate>();
19
1
  }
20

            
21
5
  std::string name() const override { return "envoy.retry_host_predicates.omit_canary_hosts"; }
22

            
23
2
  ProtobufTypes::MessagePtr createEmptyConfigProto() override {
24
2
    return std::make_unique<
25
2
        envoy::extensions::retry::host::omit_canary_hosts::v3::OmitCanaryHostsPredicate>();
26
2
  }
27
};
28

            
29
} // namespace Host
30
} // namespace Retry
31
} // namespace Extensions
32
} // namespace Envoy