This shows how to override the retry policies for appengine_v1::DomainMappingsClient:
auto options =
google::cloud::Options{}
.set<google::cloud::appengine_v1::
DomainMappingsConnectionIdempotencyPolicyOption>(
CustomIdempotencyPolicy().clone())
.set<google::cloud::appengine_v1::DomainMappingsRetryPolicyOption>(
google::cloud::appengine_v1::
DomainMappingsLimitedErrorCountRetryPolicy(3)
.clone())
.set<google::cloud::appengine_v1::DomainMappingsBackoffPolicyOption>(
google::cloud::ExponentialBackoffPolicy(
/*initial_delay=*/std::chrono::milliseconds(200),
/*maximum_delay=*/std::chrono::seconds(45),
/*scaling=*/2.0)
.clone());
auto connection =
google::cloud::appengine_v1::MakeDomainMappingsConnection(options);
// c1 and c2 share the same retry policies
auto c1 = google::cloud::appengine_v1::DomainMappingsClient(connection);
auto c2 = google::cloud::appengine_v1::DomainMappingsClient(connection);
// You can override any of the policies in a new client. This new client
// will share the policies from c1 (or c2) *except* for the retry policy.
auto c3 = google::cloud::appengine_v1::DomainMappingsClient(
connection,
google::cloud::Options{}
.set<google::cloud::appengine_v1::DomainMappingsRetryPolicyOption>(
google::cloud::appengine_v1::DomainMappingsLimitedTimeRetryPolicy(
std::chrono::minutes(5))
.clone()));
// You can also override the policies in a single call:
// c3.SomeRpc(..., google::cloud::Options{}
// .set<google::cloud::appengine_v1::DomainMappingsRetryPolicyOption>(
// google::cloud::appengine_v1::DomainMappingsLimitedErrorCountRetryPolicy(10).clone()));
Assuming you have created a custom idempotency policy. Such as:
class CustomIdempotencyPolicy : public google::cloud::appengine_v1::
DomainMappingsConnectionIdempotencyPolicy {
public:
~CustomIdempotencyPolicy() override = default;
std::unique_ptr<
google::cloud::appengine_v1::DomainMappingsConnectionIdempotencyPolicy>
clone() const override {
return std::make_unique<CustomIdempotencyPolicy>(*this);
}
// Override inherited functions to define as needed.
};
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[[["\u003cp\u003eThe latest version available is 2.37.0-rc, with numerous preceding versions listed, down to version 2.11.0, all accessible via provided links.\u003c/p\u003e\n"],["\u003cp\u003eThe content provides an example of how to customize retry policies for \u003ccode\u003eappengine_v1::DomainMappingsClient\u003c/code\u003e, including setting retry and backoff policies.\u003c/p\u003e\n"],["\u003cp\u003eYou can define a custom \u003ccode\u003eDomainMappingsConnectionIdempotencyPolicy\u003c/code\u003e by creating a class that inherits from the base policy and override its functions as needed.\u003c/p\u003e\n"],["\u003cp\u003eNew clients can be created to share the same policies as existing clients, however with the option to override specific ones, such as the retry policy, as shown in the \u003ccode\u003ec3\u003c/code\u003e client.\u003c/p\u003e\n"],["\u003cp\u003eYou have the ability to customize the policies in a single remote procedure call, as demonstrated with the commented-out example \u003ccode\u003ec3.SomeRpc\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["Version 2.29.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/appengine/latest/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.41.0](/cpp/docs/reference/appengine/2.41.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.40.0](/cpp/docs/reference/appengine/2.40.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.39.0](/cpp/docs/reference/appengine/2.39.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.38.0](/cpp/docs/reference/appengine/2.38.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.37.0](/cpp/docs/reference/appengine/2.37.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.36.0](/cpp/docs/reference/appengine/2.36.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.35.0](/cpp/docs/reference/appengine/2.35.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.34.0](/cpp/docs/reference/appengine/2.34.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.33.0](/cpp/docs/reference/appengine/2.33.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.32.0](/cpp/docs/reference/appengine/2.32.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.31.0](/cpp/docs/reference/appengine/2.31.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.30.0](/cpp/docs/reference/appengine/2.30.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.29.0](/cpp/docs/reference/appengine/2.29.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.28.0](/cpp/docs/reference/appengine/2.28.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.27.0](/cpp/docs/reference/appengine/2.27.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.26.0](/cpp/docs/reference/appengine/2.26.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.25.1](/cpp/docs/reference/appengine/2.25.1/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.24.0](/cpp/docs/reference/appengine/2.24.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.23.0](/cpp/docs/reference/appengine/2.23.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.22.1](/cpp/docs/reference/appengine/2.22.1/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.21.0](/cpp/docs/reference/appengine/2.21.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.20.0](/cpp/docs/reference/appengine/2.20.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.19.0](/cpp/docs/reference/appengine/2.19.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.18.0](/cpp/docs/reference/appengine/2.18.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.17.0](/cpp/docs/reference/appengine/2.17.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.16.0](/cpp/docs/reference/appengine/2.16.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.15.1](/cpp/docs/reference/appengine/2.15.1/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.14.0](/cpp/docs/reference/appengine/2.14.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.13.0](/cpp/docs/reference/appengine/2.13.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.12.0](/cpp/docs/reference/appengine/2.12.0/appengine_v1_1_1DomainMappingsClient-retry-snippet)\n- [2.11.0](/cpp/docs/reference/appengine/2.11.0/appengine_v1_1_1DomainMappingsClient-retry-snippet) \n\nOverride appengine_v1::DomainMappingsClient Retry Policies\n==========================================================\n\nThis shows how to override the retry policies for appengine_v1::DomainMappingsClient: \n\n auto options =\n google::cloud::Options{}\n .set\u003cgoogle::cloud::appengine_v1::\n DomainMappingsConnectionIdempotencyPolicyOption\u003e(\n CustomIdempotencyPolicy().clone())\n .set\u003cgoogle::cloud::appengine_v1::DomainMappingsRetryPolicyOption\u003e(\n google::cloud::appengine_v1::\n DomainMappingsLimitedErrorCountRetryPolicy(3)\n .clone())\n .set\u003cgoogle::cloud::appengine_v1::DomainMappingsBackoffPolicyOption\u003e(\n google::cloud::ExponentialBackoffPolicy(\n /*initial_delay=*/std::chrono::milliseconds(200),\n /*maximum_delay=*/std::chrono::seconds(45),\n /*scaling=*/2.0)\n .clone());\n auto connection =\n google::cloud::appengine_v1::MakeDomainMappingsConnection(options);\n\n // c1 and c2 share the same retry policies\n auto c1 = google::cloud::appengine_v1::DomainMappingsClient(connection);\n auto c2 = google::cloud::appengine_v1::DomainMappingsClient(connection);\n\n // You can override any of the policies in a new client. This new client\n // will share the policies from c1 (or c2) *except* for the retry policy.\n auto c3 = google::cloud::appengine_v1::DomainMappingsClient(\n connection,\n google::cloud::Options{}\n .set\u003cgoogle::cloud::appengine_v1::DomainMappingsRetryPolicyOption\u003e(\n google::cloud::appengine_v1::DomainMappingsLimitedTimeRetryPolicy(\n std::chrono::minutes(5))\n .clone()));\n\n // You can also override the policies in a single call:\n // c3.SomeRpc(..., google::cloud::Options{}\n // .set\u003cgoogle::cloud::appengine_v1::DomainMappingsRetryPolicyOption\u003e(\n // google::cloud::appengine_v1::DomainMappingsLimitedErrorCountRetryPolicy(10).clone()));\n\nAssuming you have created a custom idempotency policy. Such as: \n\n class CustomIdempotencyPolicy : public google::cloud::appengine_v1::\n DomainMappingsConnectionIdempotencyPolicy {\n public:\n ~CustomIdempotencyPolicy() override = default;\n std::unique_ptr\u003c\n google::cloud::appengine_v1::DomainMappingsConnectionIdempotencyPolicy\u003e\n clone() const override {\n return std::make_unique\u003cCustomIdempotencyPolicy\u003e(*this);\n }\n // Override inherited functions to define as needed.\n };"]]