1
#pragma once
2

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

            
7
#include "source/extensions/retry/host/omit_host_metadata/omit_host_metadata.h"
8

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

            
14
class OmitHostsRetryPredicateFactory : public Upstream::RetryHostPredicateFactory {
15
public:
16
  Upstream::RetryHostPredicateSharedPtr createHostPredicate(const Protobuf::Message& config,
17
                                                            uint32_t retry_count) override;
18

            
19
5
  std::string name() const override { return "envoy.retry_host_predicates.omit_host_metadata"; }
20

            
21
2
  ProtobufTypes::MessagePtr createEmptyConfigProto() override {
22
2
    return ProtobufTypes::MessagePtr(
23
2
        new envoy::extensions::retry::host::omit_host_metadata::v3::OmitHostMetadataConfig());
24
2
  }
25
};
26

            
27
} // namespace Host
28
} // namespace Retry
29
} // namespace Extensions
30
} // namespace Envoy