8 types derived from RateLimitLease
Microsoft.AspNetCore.RateLimiting (1)
DefaultCombinedLease.cs (1)
8internal sealed class DefaultCombinedLease : RateLimitLease
Microsoft.AspNetCore.RateLimiting.Tests (1)
TestRateLimitLease.cs (1)
8internal class TestRateLimitLease : RateLimitLease
System.Threading.RateLimiting (6)
System\Threading\RateLimiting\ChainedPartitionedRateLimiter.cs (1)
171private sealed class CombinedRateLimitLease : RateLimitLease
System\Threading\RateLimiting\ConcurrencyLimiter.cs (1)
367private sealed class ConcurrencyLease : RateLimitLease
System\Threading\RateLimiting\FixedWindowRateLimiter.cs (1)
423private sealed class FixedWindowLease : RateLimitLease
System\Threading\RateLimiting\NoopLimiter.cs (1)
42private sealed class NoopLease : RateLimitLease
System\Threading\RateLimiting\SlidingWindowRateLimiter.cs (1)
436private sealed class SlidingWindowLease : RateLimitLease
System\Threading\RateLimiting\TokenBucketRateLimiter.cs (1)
437private sealed class TokenBucketLease : RateLimitLease
117 references to RateLimitLease
Microsoft.AspNetCore.ConcurrencyLimiter (6)
QueuePolicies\BasePolicy.cs (6)
15private readonly ConcurrentQueue<RateLimitLease> _leases = new ConcurrentQueue<RateLimitLease>(); 48var lease = _limiter.AttemptAcquire(); 73if (!_leases.TryDequeue(out var lease)) 86private async ValueTask<bool> Awaited(ValueTask<RateLimitLease> task) 88var lease = await task;
Microsoft.AspNetCore.RateLimiting (10)
DefaultCombinedLease.cs (4)
10private readonly RateLimitLease _globalLease; 11private readonly RateLimitLease _endpointLease; 14public DefaultCombinedLease(RateLimitLease globalLease, RateLimitLease endpointLease)
LeaseContext.cs (1)
12public RateLimitLease? Lease { get; init; }
OnRejectedContext.cs (1)
20/// Gets or sets the failed <see cref="RateLimitLease"/> that the OnRejected callback will have access to
RateLimitingMiddleware.cs (4)
181RateLimitLease? globalLease = null; 182RateLimitLease? endpointLease = null; 212RateLimitLease? globalLease = null; 213RateLimitLease? endpointLease = null;
Microsoft.AspNetCore.RateLimiting.Tests (14)
TestPartitionedRateLimiter.cs (8)
34protected override RateLimitLease AttemptAcquireCore(TResource resourceID, int permitCount) 40var leases = new List<RateLimitLease>(); 43var lease = limiter.AttemptAcquire(); 50foreach (var unusedLease in leases) 60protected override async ValueTask<RateLimitLease> AcquireAsyncCore(TResource resourceID, int permitCount, CancellationToken cancellationToken) 66var leases = new List<RateLimitLease>(); 71foreach (var lease in leases) 75foreach (var unusedLease in leases)
TestRateLimiter.cs (3)
24protected override RateLimitLease AttemptAcquireCore(int permitCount) 29protected override ValueTask<RateLimitLease> AcquireAsyncCore(int permitCount, CancellationToken cancellationToken) 32return new ValueTask<RateLimitLease>(new TestRateLimitLease(_alwaysAccept, null));
TestRateLimitLease.cs (3)
10internal List<RateLimitLease> _leases; 12public TestRateLimitLease(bool isAcquired, List<RateLimitLease> leases) 31foreach (var lease in _leases)
System.Threading.RateLimiting (87)
System\Threading\RateLimiting\ChainedPartitionedRateLimiter.cs (17)
55protected override RateLimitLease AttemptAcquireCore(TResource resource, int permitCount) 58RateLimitLease[]? leases = null; 61RateLimitLease? lease = null; 71RateLimitLease? notAcquiredLease = CommonAcquireLogic(exception, lease, ref leases, i, _limiters.Length); 81protected override async ValueTask<RateLimitLease> AcquireAsyncCore(TResource resource, int permitCount, CancellationToken cancellationToken) 84RateLimitLease[]? leases = null; 87RateLimitLease? lease = null; 97RateLimitLease? notAcquiredLease = CommonAcquireLogic(exception, lease, ref leases, i, _limiters.Length); 120private static RateLimitLease? CommonAcquireLogic(Exception? ex, RateLimitLease? lease, ref RateLimitLease[]? leases, int index, int length) 141leases ??= new RateLimitLease[length]; 146private static AggregateException? CommonDispose(RateLimitLease[]? leases, int i) 173private RateLimitLease[]? _leases; 176public CombinedRateLimitLease(RateLimitLease[] leases) 195foreach (RateLimitLease lease in _leases) 211foreach (RateLimitLease lease in _leases)
System\Threading\RateLimiting\ConcurrencyLimiter.cs (10)
81protected override RateLimitLease AttemptAcquireCore(int permitCount) 108if (TryLeaseUnsynchronized(permitCount, out RateLimitLease? lease)) 120protected override ValueTask<RateLimitLease> AcquireAsyncCore(int permitCount, CancellationToken cancellationToken = default) 132return new ValueTask<RateLimitLease>(SuccessfulLease); 140if (TryLeaseUnsynchronized(permitCount, out RateLimitLease? lease)) 142return new ValueTask<RateLimitLease>(lease); 183return new ValueTask<RateLimitLease>(QueueLimitLease); 192return new ValueTask<RateLimitLease>(request.Task); 196private bool TryLeaseUnsynchronized(int permitCount, [NotNullWhen(true)] out RateLimitLease? lease) 415private sealed class RequestRegistration : TaskCompletionSource<RateLimitLease>
System\Threading\RateLimiting\DefaultPartitionedRateLimiter.cs (2)
77protected override RateLimitLease AttemptAcquireCore(TResource resource, int permitCount) 82protected override ValueTask<RateLimitLease> AcquireAsyncCore(TResource resource, int permitCount, CancellationToken cancellationToken)
System\Threading\RateLimiting\FixedWindowRateLimiter.cs (12)
31private static readonly RateLimitLease SuccessfulLease = new FixedWindowLease(true, null); 32private static readonly RateLimitLease FailedLease = new FixedWindowLease(false, null); 100protected override RateLimitLease AttemptAcquireCore(int permitCount) 126if (TryLeaseUnsynchronized(permitCount, out RateLimitLease? lease)) 137protected override ValueTask<RateLimitLease> AcquireAsyncCore(int permitCount, CancellationToken cancellationToken = default) 151return new ValueTask<RateLimitLease>(SuccessfulLease); 157if (TryLeaseUnsynchronized(permitCount, out RateLimitLease? lease)) 159return new ValueTask<RateLimitLease>(lease); 200return new ValueTask<RateLimitLease>(CreateFailedWindowLease(permitCount)); 209return new ValueTask<RateLimitLease>(registration.Task); 222private bool TryLeaseUnsynchronized(int permitCount, [NotNullWhen(true)] out RateLimitLease? lease) 452private sealed class RequestRegistration : TaskCompletionSource<RateLimitLease>
System\Threading\RateLimiting\MetadataName.T.cs (1)
9/// A strongly-typed name of metadata that can be stored in a <see cref="RateLimitLease"/>.
System\Threading\RateLimiting\NoopLimiter.cs (4)
11private static readonly RateLimitLease _lease = new NoopLease(); 30protected override RateLimitLease AttemptAcquireCore(int permitCount) 36protected override ValueTask<RateLimitLease> AcquireAsyncCore(int permitCount, CancellationToken cancellationToken) 39return new ValueTask<RateLimitLease>(_lease);
System\Threading\RateLimiting\PartitionedRateLimiter.cs (1)
46/// <see cref="RateLimitLease"/>s returned will aggregate metadata and for duplicates use the value of the first lease with the same metadata name.
System\Threading\RateLimiting\PartitionedRateLimiter.T.cs (6)
30public RateLimitLease AttemptAcquire(TResource resource, int permitCount = 1) 46protected abstract RateLimitLease AttemptAcquireCore(TResource resource, int permitCount); 59public ValueTask<RateLimitLease> AcquireAsync(TResource resource, int permitCount = 1, CancellationToken cancellationToken = default) 68return new ValueTask<RateLimitLease>(Task.FromCanceled<RateLimitLease>(cancellationToken)); 81protected abstract ValueTask<RateLimitLease> AcquireAsyncCore(TResource resource, int permitCount, CancellationToken cancellationToken);
System\Threading\RateLimiting\RateLimiter.cs (6)
37public RateLimitLease AttemptAcquire(int permitCount = 1) 52protected abstract RateLimitLease AttemptAcquireCore(int permitCount); 64public ValueTask<RateLimitLease> AcquireAsync(int permitCount = 1, CancellationToken cancellationToken = default) 73return new ValueTask<RateLimitLease>(Task.FromCanceled<RateLimitLease>(cancellationToken)); 85protected abstract ValueTask<RateLimitLease> AcquireAsyncCore(int permitCount, CancellationToken cancellationToken);
System\Threading\RateLimiting\RateLimiterStatistics.cs (2)
27/// Gets the total number of failed <see cref="RateLimitLease"/>s returned. 32/// Gets the total number of successful <see cref="RateLimitLease"/>s returned.
System\Threading\RateLimiting\SlidingWindowRateLimiter.cs (12)
35private static readonly RateLimitLease SuccessfulLease = new SlidingWindowLease(true, null); 36private static readonly RateLimitLease FailedLease = new SlidingWindowLease(false, null); 114protected override RateLimitLease AttemptAcquireCore(int permitCount) 137if (TryLeaseUnsynchronized(permitCount, out RateLimitLease? lease)) 149protected override ValueTask<RateLimitLease> AcquireAsyncCore(int permitCount, CancellationToken cancellationToken = default) 163return new ValueTask<RateLimitLease>(SuccessfulLease); 169if (TryLeaseUnsynchronized(permitCount, out RateLimitLease? lease)) 171return new ValueTask<RateLimitLease>(lease); 212return new ValueTask<RateLimitLease>(FailedLease); 221return new ValueTask<RateLimitLease>(registration.Task); 225private bool TryLeaseUnsynchronized(int permitCount, [NotNullWhen(true)] out RateLimitLease? lease) 465private sealed class RequestRegistration : TaskCompletionSource<RateLimitLease>
System\Threading\RateLimiting\TokenBucketRateLimiter.cs (12)
33private static readonly RateLimitLease SuccessfulLease = new TokenBucketLease(true, null); 34private static readonly RateLimitLease FailedLease = new TokenBucketLease(false, null); 108protected override RateLimitLease AttemptAcquireCore(int tokenCount) 131if (TryLeaseUnsynchronized(tokenCount, out RateLimitLease? lease)) 142protected override ValueTask<RateLimitLease> AcquireAsyncCore(int tokenCount, CancellationToken cancellationToken = default) 156return new ValueTask<RateLimitLease>(SuccessfulLease); 162if (TryLeaseUnsynchronized(tokenCount, out RateLimitLease? lease)) 164return new ValueTask<RateLimitLease>(lease); 205return new ValueTask<RateLimitLease>(CreateFailedTokenLease(tokenCount)); 214return new ValueTask<RateLimitLease>(registration.Task); 229private bool TryLeaseUnsynchronized(int tokenCount, [NotNullWhen(true)] out RateLimitLease? lease) 466private sealed class RequestRegistration : TaskCompletionSource<RateLimitLease>
System\Threading\RateLimiting\TranslatingLimiter.cs (2)
30protected override RateLimitLease AttemptAcquireCore(TResource resource, int permitCount) 37protected override ValueTask<RateLimitLease> AcquireAsyncCore(TResource resource, int permitCount, CancellationToken cancellationToken)