<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Polly.Contrib.WaitAndRetry</name>
    </assembly>
    <members>
        <member name="T:Polly.Contrib.WaitAndRetry.Backoff">
            <summary>
            Helper methods for creating backoff strategies.
            </summary>
        </member>
        <member name="M:Polly.Contrib.WaitAndRetry.Backoff.AwsDecorrelatedJitterBackoff(System.TimeSpan,System.TimeSpan,System.Int32,System.Nullable{System.Int32},System.Boolean)">
            <summary>
            Generates sleep durations in an jittered manner, making sure to mitigate any correlations.
            For example: 117ms, 236ms, 141ms, 424ms, ...
            Per the formula from https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/.
            </summary>
            <param name="minDelay">The minimum duration value to use for the wait before each retry.</param>
            <param name="maxDelay">The maximum duration value to use for the wait before each retry.</param>
            <param name="retryCount">The maximum number of retries to use, in addition to the original call.</param>
            <param name="seed">An optional <see cref="T:System.Random"/> seed to use.
            If not specified, will use a shared instance with a random seed, per Microsoft recommendation for maximum randomness.</param>
            <param name="fastFirst">Whether the first retry will be immediate or not.</param>
        </member>
        <member name="M:Polly.Contrib.WaitAndRetry.Backoff.ConstantBackoff(System.TimeSpan,System.Int32,System.Boolean)">
            <summary>
            Generates sleep durations as a constant value.
            The formula used is: Duration = <paramref name="delay"/>.
            For example: 200ms, 200ms, 200ms, ...
            </summary>
            <param name="delay">The constant wait duration before each retry.</param>
            <param name="retryCount">The maximum number of retries to use, in addition to the original call.</param>
            <param name="fastFirst">Whether the first retry will be immediate or not.</param>
        </member>
        <member name="M:Polly.Contrib.WaitAndRetry.Backoff.DecorrelatedJitterBackoffV2(System.TimeSpan,System.Int32,System.Nullable{System.Int32},System.Boolean)">
            <summary>
            Generates sleep durations in an exponentially backing-off, jittered manner, making sure to mitigate any correlations.
            For example: 850ms, 1455ms, 3060ms.
            Per discussion in Polly issue 530, the jitter of this implementation exhibits fewer spikes and a smoother distribution than the AWS jitter formula.
            </summary>
            <param name="medianFirstRetryDelay">The median delay to target before the first retry, call it f (= f * 2^0).
            Choose this value both to approximate the first delay, and to scale the remainder of the series.
            Subsequent retries will (over a large sample size) have a median approximating retries at time f * 2^1, f * 2^2 ... f * 2^t etc for try t.
            The actual amount of delay-before-retry for try t may be distributed between 0 and f * (2^(t+1) - 2^(t-1)) for t >= 2;
            or between 0 and f * 2^(t+1), for t is 0 or 1.</param>
            <param name="retryCount">The maximum number of retries to use, in addition to the original call.</param>
            <param name="seed">An optional <see cref="T:System.Random"/> seed to use.
            If not specified, will use a shared instance with a random seed, per Microsoft recommendation for maximum randomness.</param>
            <param name="fastFirst">Whether the first retry will be immediate or not.</param>
        </member>
        <member name="M:Polly.Contrib.WaitAndRetry.Backoff.ExponentialBackoff(System.TimeSpan,System.Int32,System.Double,System.Boolean)">
            <summary>
            Generates sleep durations in an exponential manner.
            The formula used is: Duration = <paramref name="initialDelay"/> x 2^iteration.
            For example: 100ms, 200ms, 400ms, 800ms, ...
            </summary>
            <param name="initialDelay">The duration value for the wait before the first retry.</param>
            <param name="factor">The exponent to multiply each subsequent duration by.</param>
            <param name="retryCount">The maximum number of retries to use, in addition to the original call.</param>
            <param name="fastFirst">Whether the first retry will be immediate or not.</param>
        </member>
        <member name="M:Polly.Contrib.WaitAndRetry.Backoff.LinearBackoff(System.TimeSpan,System.Int32,System.Double,System.Boolean)">
            <summary>
            Generates sleep durations in an linear manner.
            The formula used is: Duration = <paramref name="initialDelay"/> x (1 + <paramref name="factor"/> x iteration).
            For example: 100ms, 200ms, 300ms, 400ms, ...
            </summary>
            <param name="initialDelay">The duration value for the first retry.</param>
            <param name="factor">The linear factor to use for increasing the duration on subsequent calls.</param>
            <param name="retryCount">The maximum number of retries to use, in addition to the original call.</param>
            <param name="fastFirst">Whether the first retry will be immediate or not.</param>
        </member>
        <member name="T:Polly.Contrib.WaitAndRetry.ConcurrentRandom">
            <summary>
            A random number generator with a Uniform distribution that is thread-safe (via locking).
            Can be instantiated with a custom <see cref="T:System.Int32"/> seed to make it emit deterministically.
            </summary>
        </member>
        <member name="M:Polly.Contrib.WaitAndRetry.ConcurrentRandom.#ctor(System.Nullable{System.Int32})">
            <summary>
            Creates an instance of the <see cref="T:Polly.Contrib.WaitAndRetry.ConcurrentRandom"/> class.
            </summary>
            <param name="seed">An optional <see cref="T:System.Random"/> seed to use.
            If not specified, will use a shared instance with a random seed, per Microsoft recommendation for maximum randomness.</param>
        </member>
        <member name="M:Polly.Contrib.WaitAndRetry.ConcurrentRandom.NextDouble">
            <summary>
            Returns a random floating-point number that is greater than or equal to 0.0,
            and less than 1.0.
            This method uses locks in order to avoid issues with concurrent access.
            </summary>
        </member>
        <member name="M:Polly.Contrib.WaitAndRetry.ConcurrentRandom.Uniform(System.Double,System.Double)">
            <summary>
            Returns a random floating-point number that is greater than or equal to <paramref name="a"/>,
            and less than <paramref name="b"/>.
            </summary>
            <param name="a">The minimum value.</param>
            <param name="b">The maximum value.</param>
        </member>
    </members>
</doc>
