|
1 | 1 | #pragma once |
2 | 2 |
|
3 | 3 | #include <util/datetime/base.h> |
4 | | -#include <util/generic/maybe.h> |
5 | 4 | #include <util/generic/typetraits.h> |
6 | 5 | #include <util/random/random.h> |
7 | 6 |
|
@@ -42,7 +41,7 @@ struct IRetryPolicy { |
42 | 41 |
|
43 | 42 | //! Calculate delay before next retry if next retry is allowed. |
44 | 43 | //! Returns empty maybe if retry is not allowed anymore. |
45 | | - [[nodiscard]] virtual TMaybe<TDuration> GetNextRetryDelay(typename TTypeTraits<TArgs>::TFuncParam... args) = 0; |
| 44 | + [[nodiscard]] virtual std::optional<TDuration> GetNextRetryDelay(typename TTypeTraits<TArgs>::TFuncParam... args) = 0; |
46 | 45 | }; |
47 | 46 |
|
48 | 47 | virtual ~IRetryPolicy() = default; |
@@ -82,8 +81,8 @@ struct TNoRetryPolicy : IRetryPolicy<TArgs...> { |
82 | 81 | using IRetryState = typename IRetryPolicy<TArgs...>::IRetryState; |
83 | 82 |
|
84 | 83 | struct TNoRetryState : IRetryState { |
85 | | - TMaybe<TDuration> GetNextRetryDelay(typename TTypeTraits<TArgs>::TFuncParam...) override { |
86 | | - return {}; |
| 84 | + std::optional<TDuration> GetNextRetryDelay(typename TTypeTraits<TArgs>::TFuncParam...) override { |
| 85 | + return std::nullopt; |
87 | 86 | } |
88 | 87 | }; |
89 | 88 |
|
@@ -124,10 +123,10 @@ struct TExponentialBackoffPolicy : IRetryPolicy<TArgs...> { |
124 | 123 | { |
125 | 124 | } |
126 | 125 |
|
127 | | - TMaybe<TDuration> GetNextRetryDelay(typename TTypeTraits<TArgs>::TFuncParam... args) override { |
| 126 | + std::optional<TDuration> GetNextRetryDelay(typename TTypeTraits<TArgs>::TFuncParam... args) override { |
128 | 127 | const ERetryErrorClass errorClass = RetryClassFunction(args...); |
129 | 128 | if (errorClass == ERetryErrorClass::NoRetry || AttemptsDone >= MaxRetries || StartTime && TInstant::Now() - StartTime >= MaxTime) { |
130 | | - return {}; |
| 129 | + return std::nullopt; |
131 | 130 | } |
132 | 131 |
|
133 | 132 | if (errorClass == ERetryErrorClass::LongRetry) { |
@@ -213,10 +212,10 @@ struct TFixedIntervalPolicy : IRetryPolicy<TArgs...> { |
213 | 212 | { |
214 | 213 | } |
215 | 214 |
|
216 | | - TMaybe<TDuration> GetNextRetryDelay(typename TTypeTraits<TArgs>::TFuncParam... args) override { |
| 215 | + std::optional<TDuration> GetNextRetryDelay(typename TTypeTraits<TArgs>::TFuncParam... args) override { |
217 | 216 | const ERetryErrorClass errorClass = RetryClassFunction(args...); |
218 | 217 | if (errorClass == ERetryErrorClass::NoRetry || AttemptsDone >= MaxRetries || StartTime && TInstant::Now() - StartTime >= MaxTime) { |
219 | | - return {}; |
| 218 | + return std::nullopt; |
220 | 219 | } |
221 | 220 |
|
222 | 221 | const TDuration delay = NRetryDetails::RandomizeDelay(errorClass == ERetryErrorClass::LongRetry ? LongRetryDelay : Delay); |
|
0 commit comments