the maximum time allowed before the policy expires. While the application can express this time in any units they desire, the class truncates to milliseconds.
typename DurationRep
a placeholder to match the Rep tparam for duration's type. The semantics of this template parameter are documented in std::chrono::duration<>. In brief, the underlying arithmetic type used to store the number of ticks. For our purposes it is simply a formal parameter.
typename DurationPeriod
a placeholder to match the Period tparam for duration's type. The semantics of this template parameter are documented in std::chrono::duration<>. In brief, the length of the tick in seconds, expressed as a std::ratio<>. For our purposes it is simply a formal parameter.
[[["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-28 UTC."],[[["\u003cp\u003eThe page details the \u003ccode\u003eVersionsLimitedTimeRetryPolicy\u003c/code\u003e, a retry mechanism for \u003ccode\u003eVersionsConnection\u003c/code\u003e in the App Engine C++ library.\u003c/p\u003e\n"],["\u003cp\u003eThis policy retries operations until a maximum duration is reached or a non-transient error occurs, with \u003ccode\u003ekUnavailable\u003c/code\u003e being the only specified transient error.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eVersionsLimitedTimeRetryPolicy\u003c/code\u003e class has constructors for defining the maximum duration, and functions to check if the policy is exhausted, to check if the error is permanent, to obtain the maximum duration, to handle failures and to clone itself.\u003c/p\u003e\n"],["\u003cp\u003eThe documentation provides parameter details for the constructor, including \u003ccode\u003emaximum_duration\u003c/code\u003e, \u003ccode\u003eDurationRep\u003c/code\u003e, and \u003ccode\u003eDurationPeriod\u003c/code\u003e, alongside descriptions for the \u003ccode\u003eOnFailure\u003c/code\u003e, \u003ccode\u003eIsExhausted\u003c/code\u003e, \u003ccode\u003eIsPermanentFailure\u003c/code\u003e, and \u003ccode\u003eclone\u003c/code\u003e functions.\u003c/p\u003e\n"],["\u003cp\u003eThe page also lists the available versions, spanning from \u003ccode\u003e2.37.0-rc\u003c/code\u003e down to \u003ccode\u003e2.11.0\u003c/code\u003e, with links to the respective documentation for each.\u003c/p\u003e\n"]]],[],null,["# Class VersionsLimitedTimeRetryPolicy (2.21.0)\n\nVersion 2.21.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/appengine/latest/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.41.0](/cpp/docs/reference/appengine/2.41.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.40.0](/cpp/docs/reference/appengine/2.40.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.39.0](/cpp/docs/reference/appengine/2.39.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.38.0](/cpp/docs/reference/appengine/2.38.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.37.0](/cpp/docs/reference/appengine/2.37.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.36.0](/cpp/docs/reference/appengine/2.36.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.35.0](/cpp/docs/reference/appengine/2.35.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.34.0](/cpp/docs/reference/appengine/2.34.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.33.0](/cpp/docs/reference/appengine/2.33.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.32.0](/cpp/docs/reference/appengine/2.32.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.31.0](/cpp/docs/reference/appengine/2.31.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.30.0](/cpp/docs/reference/appengine/2.30.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.29.0](/cpp/docs/reference/appengine/2.29.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.28.0](/cpp/docs/reference/appengine/2.28.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.27.0](/cpp/docs/reference/appengine/2.27.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.26.0](/cpp/docs/reference/appengine/2.26.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.25.1](/cpp/docs/reference/appengine/2.25.1/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.24.0](/cpp/docs/reference/appengine/2.24.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.23.0](/cpp/docs/reference/appengine/2.23.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.22.1](/cpp/docs/reference/appengine/2.22.1/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.21.0](/cpp/docs/reference/appengine/2.21.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.20.0](/cpp/docs/reference/appengine/2.20.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.19.0](/cpp/docs/reference/appengine/2.19.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.18.0](/cpp/docs/reference/appengine/2.18.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.17.0](/cpp/docs/reference/appengine/2.17.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.16.0](/cpp/docs/reference/appengine/2.16.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.15.1](/cpp/docs/reference/appengine/2.15.1/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.14.0](/cpp/docs/reference/appengine/2.14.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.13.0](/cpp/docs/reference/appengine/2.13.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.12.0](/cpp/docs/reference/appengine/2.12.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy)\n- [2.11.0](/cpp/docs/reference/appengine/2.11.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsLimitedTimeRetryPolicy) \nA retry policy for [`VersionsConnection`](/cpp/docs/reference/appengine/2.21.0/classgoogle_1_1cloud_1_1appengine__v1_1_1VersionsConnection) based on elapsed time. \nThis policy stops retrying if:\n\n- An RPC returns a non-transient error.\n- The elapsed time in the retry loop exceeds a prescribed duration.\n\nIn this class the following status codes are treated as transient errors:\n\n- [`kUnavailable`](https://cloud.google.com/cpp/docs/reference/common/latest/namespacegoogle_1_1cloud_1a90e17f75452470f0f3ee1a06ffe58847.html)\n\nConstructors\n------------\n\n### VersionsLimitedTimeRetryPolicy(std::chrono::duration\\\u003c DurationRep, DurationPeriod \\\u003e)\n\nConstructor given a `std::chrono::duration\u003c\u003e` object. \n\n###### See Also\n\n\u003chttps://en.cppreference.com/w/cpp/chrono/duration\u003e for more information about `std::chrono::duration`.\n\n### VersionsLimitedTimeRetryPolicy(VersionsLimitedTimeRetryPolicy \\&\\&)\n\n### VersionsLimitedTimeRetryPolicy(VersionsLimitedTimeRetryPolicy const \\&)\n\nFunctions\n---------\n\n### maximum_duration() const\n\n### virtual OnFailure(Status const \\&)\n\n### virtual IsExhausted() const\n\n### virtual IsPermanentFailure(Status const \\&) const\n\n### virtual clone() const\n\nCreates a new instance of the policy, reset to the initial state.\n\nType Aliases\n------------\n\n### BaseType\n\n**Alias Of** : `VersionsRetryPolicy`"]]