Fix nightly tests compilation on GCC5 (#3190)

This commit is contained in:
Anton Kolesnyk 2021-12-16 10:44:22 -08:00 committed by GitHub
parent 0bde2ad3f8
commit 5f97ac1b3d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -45,34 +45,57 @@ private:
m_shouldRetryOnResponse;
public:
bool BaseShouldRetryOnTransportFailure(
RetryOptions const& retryOptions,
int32_t attempt,
std::chrono::milliseconds& retryAfter,
double jitterFactor) const
{
return RetryPolicy::ShouldRetryOnTransportFailure(
retryOptions, attempt, retryAfter, jitterFactor);
}
bool BaseShouldRetryOnResponse(
RawResponse const& response,
RetryOptions const& retryOptions,
int32_t attempt,
std::chrono::milliseconds& retryAfter,
double jitterFactor) const
{
return RetryPolicy::ShouldRetryOnResponse(
response, retryOptions, attempt, retryAfter, jitterFactor);
}
RetryPolicyTest(
RetryOptions const& retryOptions,
std::function<bool(RetryOptions const&, int32_t, std::chrono::milliseconds&, double)>
shouldRetryOnTransportFailure,
std::function<bool(
RawResponse const&,
RetryOptions const&,
int32_t,
std::chrono::milliseconds&,
double)> shouldRetryOnResponse)
decltype(m_shouldRetryOnTransportFailure) shouldRetryOnTransportFailure,
decltype(m_shouldRetryOnResponse) shouldRetryOnResponse)
: RetryPolicy(retryOptions),
m_shouldRetryOnTransportFailure(
shouldRetryOnTransportFailure != nullptr
? shouldRetryOnTransportFailure
: [&](auto options, auto attempt, auto retryAfter, auto jitter) {
retryAfter = std::chrono::milliseconds(0);
auto ignore = decltype(retryAfter)();
return RetryPolicy::ShouldRetryOnTransportFailure(options, attempt, ignore, jitter);
}),
m_shouldRetryOnTransportFailure(
shouldRetryOnTransportFailure != nullptr //
? shouldRetryOnTransportFailure
: static_cast<decltype(m_shouldRetryOnTransportFailure)>( //
[this](auto options, auto attempt, auto retryAfter, auto jitter) {
retryAfter = std::chrono::milliseconds(0);
auto ignore = decltype(retryAfter)();
return this->BaseShouldRetryOnTransportFailure(
options, attempt, ignore, jitter);
})),
m_shouldRetryOnResponse(
shouldRetryOnResponse != nullptr
? shouldRetryOnResponse
: [&](RawResponse const& response, auto options, auto attempt, auto retryAfter, auto jitter) {
retryAfter = std::chrono::milliseconds(0);
auto ignore = decltype(retryAfter)();
return RetryPolicy::ShouldRetryOnResponse(
response, options, attempt, ignore, jitter);
})
shouldRetryOnResponse != nullptr //
? shouldRetryOnResponse
: static_cast<decltype(m_shouldRetryOnResponse)>( //
[this](
RawResponse const& response,
auto options,
auto attempt,
auto retryAfter,
auto jitter) {
retryAfter = std::chrono::milliseconds(0);
auto ignore = decltype(retryAfter)();
return this->BaseShouldRetryOnResponse(
response, options, attempt, ignore, jitter);
}))
{
}