Library reference docs
Namespaces
google::cloud
Classes
Structs
Functions
google::cloud::mocks
Stay organized with collections Save and categorize content based on your preferences.
Define the interface for retry policies.
Functions OnFailure(Status const &)Return true if the retry loop should continue after status
.
This functions are typically used in a retry loop, where they control whether to continue, whether a failure should be retried, and finally how to format the error message.
std::unique_ptr<RetryPolicy> policy = ....;
Status status;
while (!policy->IsExhausted()) {
auto response = try_rpc(); // typically `response` is StatusOr<T>
if (response.ok()) return response;
status = std::move(response).status();
if (!policy->OnFailure(response->status())) {
if (policy->IsPermanentFailure(response->status()) {
return StatusModifiedToSayPermanentFailureCausedTheProblem(status);
}
return StatusModifiedToSayPolicyExhaustionCausedTheProblem(status);
}
// sleep, which may exhaust the policy, even if it was not exhausted in
// the last call.
}
return StatusModifiedToSayPolicyExhaustionCausedTheProblem(status);
Parameter Name Description status
Status const &
bool
IsExhausted() const
Return true if the retry policy should stop as the retry limit has been reached.
This functions are typically used in a retry loop, where they control whether to continue, whether a failure should be retried, and finally how to format the error message.
std::unique_ptr<RetryPolicy> policy = ....;
Status status;
while (!policy->IsExhausted()) {
auto response = try_rpc(); // typically `response` is StatusOr<T>
if (response.ok()) return response;
status = std::move(response).status();
if (!policy->OnFailure(response->status())) {
if (policy->IsPermanentFailure(response->status()) {
return StatusModifiedToSayPermanentFailureCausedTheProblem(status);
}
return StatusModifiedToSayPolicyExhaustionCausedTheProblem(status);
}
// sleep, which may exhaust the policy, even if it was not exhausted in
// the last call.
}
return StatusModifiedToSayPolicyExhaustionCausedTheProblem(status);
Returns Type Description bool
IsPermanentFailure(Status const &) const
Return true if status
is treated as a permanent (and therefore non-retryable) error.
This functions are typically used in a retry loop, where they control whether to continue, whether a failure should be retried, and finally how to format the error message.
std::unique_ptr<RetryPolicy> policy = ....;
Status status;
while (!policy->IsExhausted()) {
auto response = try_rpc(); // typically `response` is StatusOr<T>
if (response.ok()) return response;
status = std::move(response).status();
if (!policy->OnFailure(response->status())) {
if (policy->IsPermanentFailure(response->status()) {
return StatusModifiedToSayPermanentFailureCausedTheProblem(status);
}
return StatusModifiedToSayPolicyExhaustionCausedTheProblem(status);
}
// sleep, which may exhaust the policy, even if it was not exhausted in
// the last call.
}
return StatusModifiedToSayPolicyExhaustionCausedTheProblem(status);
Parameter Name Description status
Status const &
bool
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-14 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[[["The page provides documentation for the `RetryPolicy` class in the Google Cloud C++ client library, specifically detailing its interface and usage across various versions."],["The `RetryPolicy` class defines the interface for retry operations, including functions such as `OnFailure`, `IsExhausted`, and `IsPermanentFailure`, that control whether to continue a retry loop, if it should retry on a failure, and how to format the error message."],["The latest version of the `RetryPolicy` documentation is `2.37.0-rc`, and the page also provides links to documentation for all versions from `2.10.1` up to `2.36.0`, allowing you to choose the appropriate version based on your C++ library version."],["`OnFailure` determines if the retry loop should continue after a failure indicated by a status, while `IsExhausted` indicates whether the retry limit has been reached and `IsPermanentFailure` checks if an error status is non-retryable."]]],[]]
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4