1
#pragma once
2

            
3
#include "envoy/extensions/retry/priority/previous_priorities/v3/previous_priorities_config.pb.h"
4
#include "envoy/upstream/retry.h"
5

            
6
#include "source/common/protobuf/protobuf.h"
7
#include "source/extensions/retry/priority/previous_priorities/previous_priorities.h"
8

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

            
14
class PreviousPrioritiesRetryPriorityFactory : public Upstream::RetryPriorityFactory {
15
public:
16
  Upstream::RetryPrioritySharedPtr
17
  createRetryPriority(const Protobuf::Message& config,
18
                      ProtobufMessage::ValidationVisitor& validation_visitor,
19
                      uint32_t max_retries) override;
20

            
21
20
  std::string name() const override { return "envoy.retry_priorities.previous_priorities"; }
22

            
23
22
  ProtobufTypes::MessagePtr createEmptyConfigProto() override {
24
22
    return ProtobufTypes::MessagePtr(new envoy::extensions::retry::priority::previous_priorities::
25
22
                                         v3::PreviousPrioritiesConfig());
26
22
  }
27
};
28

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