20#ifndef INCLUDE_OLA_UTIL_BACKOFF_H_
21#define INCLUDE_OLA_UTIL_BACKOFF_H_
36 virtual ~BackOffPolicy() {}
52class ConstantBackoffPolicy:
public BackOffPolicy {
54 explicit ConstantBackoffPolicy(
const TimeInterval &duration)
55 : m_duration(duration) {
73class LinearBackoffPolicy:
public BackOffPolicy {
76 : m_duration(duration),
98class ExponentialBackoffPolicy:
public BackOffPolicy {
102 : m_initial(initial),
108 m_initial *
static_cast<int>(::pow(2, failed_attempts - 1)));
109 if (interval > m_max)
123class BackoffGenerator {
131 return m_policy->BackOffTime(++m_failures);
139 std::auto_ptr<const BackOffPolicy> m_policy;
140 unsigned int m_failures;
virtual TimeInterval BackOffTime(unsigned int failed_attempts) const =0
Calculate the backoff time.
TimeInterval BackOffTime(unsigned int) const
Calculate the backoff time.
Definition Backoff.h:58
TimeInterval BackOffTime(unsigned int failed_attempts) const
Calculate the backoff time.
Definition Backoff.h:106
TimeInterval BackOffTime(unsigned int failed_attempts) const
Calculate the backoff time.
Definition Backoff.h:80
The namespace containing all OLA symbols.
Definition Credentials.cpp:44