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-07 UTC."],[[["\u003cp\u003eThis page documents the \u003ccode\u003eDeviceManagerLimitedTimeRetryPolicy\u003c/code\u003e, a retry policy for \u003ccode\u003eDeviceManagerConnection\u003c/code\u003e that stops retrying if a non-transient error occurs or if the elapsed time exceeds a specified duration.\u003c/p\u003e\n"],["\u003cp\u003eThe policy treats the \u003ccode\u003ekUnavailable\u003c/code\u003e status code as a transient error, allowing for retries in those instances.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eDeviceManagerLimitedTimeRetryPolicy\u003c/code\u003e constructor accepts a \u003ccode\u003estd::chrono::duration\u003c/code\u003e object to set the maximum duration for retries, truncating to milliseconds.\u003c/p\u003e\n"],["\u003cp\u003eKey functions of the policy include \u003ccode\u003emaximum_duration()\u003c/code\u003e, \u003ccode\u003eOnFailure()\u003c/code\u003e, \u003ccode\u003eIsExhausted()\u003c/code\u003e, \u003ccode\u003eIsPermanentFailure()\u003c/code\u003e, and \u003ccode\u003eclone()\u003c/code\u003e for managing and determining the retry behavior.\u003c/p\u003e\n"],["\u003cp\u003eThe latest version of the policy is \u003ccode\u003e2.15.0-rc\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Class DeviceManagerLimitedTimeRetryPolicy (2.15.0-rc)\n\nVersion latestkeyboard_arrow_down\n\n- [2.15.0-rc (latest)](/cpp/docs/reference/iot/latest/classgoogle_1_1cloud_1_1iot__v1_1_1DeviceManagerLimitedTimeRetryPolicy)\n- [2.14.0](/cpp/docs/reference/iot/2.14.0/classgoogle_1_1cloud_1_1iot__v1_1_1DeviceManagerLimitedTimeRetryPolicy)\n- [2.13.0](/cpp/docs/reference/iot/2.13.0/classgoogle_1_1cloud_1_1iot__v1_1_1DeviceManagerLimitedTimeRetryPolicy)\n- [2.12.0](/cpp/docs/reference/iot/2.12.0/classgoogle_1_1cloud_1_1iot__v1_1_1DeviceManagerLimitedTimeRetryPolicy)\n- [2.11.0](/cpp/docs/reference/iot/2.11.0/classgoogle_1_1cloud_1_1iot__v1_1_1DeviceManagerLimitedTimeRetryPolicy) \nA retry policy for [`DeviceManagerConnection`](/cpp/docs/reference/iot/latest/classgoogle_1_1cloud_1_1iot__v1_1_1DeviceManagerConnection) 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`](/cpp/docs/reference/iot/latest/namespacegoogle_1_1cloud_1a90e17f75452470f0f3ee1a06ffe58847)\n\nConstructors\n------------\n\n### DeviceManagerLimitedTimeRetryPolicy(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### DeviceManagerLimitedTimeRetryPolicy(DeviceManagerLimitedTimeRetryPolicy \\&\\&)\n\n### DeviceManagerLimitedTimeRetryPolicy(DeviceManagerLimitedTimeRetryPolicy 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** : `DeviceManagerRetryPolicy`"]]