RateLimitPolicy
using System;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Threading;
namespace Polly.RateLimit
{
public class RateLimitPolicy : Policy, IRateLimitPolicy, IsPolicy
{
[System.Runtime.CompilerServices.Nullable(1)]
private readonly IRateLimiter _rateLimiter;
[System.Runtime.CompilerServices.NullableContext(1)]
internal RateLimitPolicy(IRateLimiter rateLimiter)
: base((PolicyBuilder)null)
{
if (rateLimiter == null)
throw new ArgumentNullException("rateLimiter");
_rateLimiter = rateLimiter;
}
[System.Runtime.CompilerServices.NullableContext(1)]
[DebuggerStepThrough]
protected override TResult Implementation<[System.Runtime.CompilerServices.Nullable(0)] TResult>(Func<Context, CancellationToken, TResult> action, Context context, CancellationToken cancellationToken)
{
return RateLimitEngine.Implementation(_rateLimiter, null, action, context, cancellationToken);
}
}
}