8 types derived from RateLimitLease
Microsoft.AspNetCore.RateLimiting (1)
DefaultCombinedLease.cs (1)
8
internal sealed class DefaultCombinedLease :
RateLimitLease
Microsoft.AspNetCore.RateLimiting.Tests (1)
TestRateLimitLease.cs (1)
8
internal class TestRateLimitLease :
RateLimitLease
System.Threading.RateLimiting (6)
System\Threading\RateLimiting\CombinedRateLimitLease.cs (1)
9
internal sealed class CombinedRateLimitLease :
RateLimitLease
System\Threading\RateLimiting\ConcurrencyLimiter.cs (1)
362
private sealed class ConcurrencyLease :
RateLimitLease
System\Threading\RateLimiting\FixedWindowRateLimiter.cs (1)
419
private sealed class FixedWindowLease :
RateLimitLease
System\Threading\RateLimiting\NoopLimiter.cs (1)
42
private sealed class NoopLease :
RateLimitLease
System\Threading\RateLimiting\SlidingWindowRateLimiter.cs (1)
432
private sealed class SlidingWindowLease :
RateLimitLease
System\Threading\RateLimiting\TokenBucketRateLimiter.cs (1)
433
private sealed class TokenBucketLease :
RateLimitLease
126 references to RateLimitLease
Microsoft.AspNetCore.ConcurrencyLimiter (6)
QueuePolicies\BasePolicy.cs (6)
15
private readonly ConcurrentQueue<
RateLimitLease
> _leases = new ConcurrentQueue<
RateLimitLease
>();
48
var
lease = _limiter.AttemptAcquire();
73
if (!_leases.TryDequeue(out
var
lease))
86
private async ValueTask<bool> Awaited(ValueTask<
RateLimitLease
> task)
88
var
lease = await task;
Microsoft.AspNetCore.RateLimiting (10)
DefaultCombinedLease.cs (4)
10
private readonly
RateLimitLease
_globalLease;
11
private readonly
RateLimitLease
_endpointLease;
14
public DefaultCombinedLease(
RateLimitLease
globalLease,
RateLimitLease
endpointLease)
LeaseContext.cs (1)
12
public
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)
181
RateLimitLease
? globalLease = null;
182
RateLimitLease
? endpointLease = null;
212
RateLimitLease
? globalLease = null;
213
RateLimitLease
? endpointLease = null;
Microsoft.AspNetCore.RateLimiting.Tests (14)
TestPartitionedRateLimiter.cs (8)
34
protected override
RateLimitLease
AttemptAcquireCore(TResource resourceID, int permitCount)
40
var leases = new List<
RateLimitLease
>();
43
var
lease = limiter.AttemptAcquire();
50
foreach (
var
unusedLease in leases)
60
protected override async ValueTask<
RateLimitLease
> AcquireAsyncCore(TResource resourceID, int permitCount, CancellationToken cancellationToken)
66
var leases = new List<
RateLimitLease
>();
71
foreach (
var
lease in leases)
75
foreach (
var
unusedLease in leases)
TestRateLimiter.cs (3)
24
protected override
RateLimitLease
AttemptAcquireCore(int permitCount)
29
protected override ValueTask<
RateLimitLease
> AcquireAsyncCore(int permitCount, CancellationToken cancellationToken)
32
return new ValueTask<
RateLimitLease
>(new TestRateLimitLease(_alwaysAccept, null));
TestRateLimitLease.cs (3)
10
internal List<
RateLimitLease
> _leases;
12
public TestRateLimitLease(bool isAcquired, List<
RateLimitLease
> leases)
31
foreach (
var
lease in _leases)
System.Threading.RateLimiting (96)
System\Threading\RateLimiting\ChainedPartitionedRateLimiter.cs (8)
59
protected override
RateLimitLease
AttemptAcquireCore(TResource resource, int permitCount)
63
RateLimitLease
[]? leases = null;
67
RateLimitLease
? lease = null;
79
RateLimitLease
? notAcquiredLease = ChainedRateLimiter.CommonAcquireLogic(exception, lease, ref leases, i, _limiters.Length);
90
protected override async ValueTask<
RateLimitLease
> AcquireAsyncCore(TResource resource, int permitCount, CancellationToken cancellationToken)
94
RateLimitLease
[]? leases = null;
98
RateLimitLease
? lease = null;
110
RateLimitLease
? notAcquiredLease = ChainedRateLimiter.CommonAcquireLogic(exception, lease, ref leases, i, _limiters.Length);
System\Threading\RateLimiting\ChainedRateLimiter.cs (13)
80
protected override
RateLimitLease
AttemptAcquireCore(int permitCount)
84
RateLimitLease
[]? leases = null;
88
RateLimitLease
? lease = null;
100
RateLimitLease
? notAcquiredLease = CommonAcquireLogic(exception, lease, ref leases, i, _limiters.Length);
111
protected override async ValueTask<
RateLimitLease
> AcquireAsyncCore(int permitCount, CancellationToken cancellationToken)
115
RateLimitLease
[]? leases = null;
119
RateLimitLease
? lease = null;
131
RateLimitLease
? notAcquiredLease = CommonAcquireLogic(exception, lease, ref leases, i, _limiters.Length);
155
internal static
RateLimitLease
? CommonAcquireLogic(Exception? ex,
RateLimitLease
? lease, ref
RateLimitLease
[]? leases, int index, int length)
178
leases ??= new
RateLimitLease
[length];
183
private static AggregateException? CommonDispose(
RateLimitLease
[]? leases, int i)
System\Threading\RateLimiting\CombinedRateLimitLease.cs (4)
11
private
RateLimitLease
[]? _leases;
14
public CombinedRateLimitLease(
RateLimitLease
[] leases)
33
foreach (
RateLimitLease
lease in _leases)
50
foreach (
RateLimitLease
lease in _leases)
System\Threading\RateLimiting\ConcurrencyLimiter.cs (10)
76
protected override
RateLimitLease
AttemptAcquireCore(int permitCount)
103
if (TryLeaseUnsynchronized(permitCount, out
RateLimitLease
? lease))
115
protected override ValueTask<
RateLimitLease
> AcquireAsyncCore(int permitCount, CancellationToken cancellationToken = default)
127
return new ValueTask<
RateLimitLease
>(SuccessfulLease);
135
if (TryLeaseUnsynchronized(permitCount, out
RateLimitLease
? lease))
137
return new ValueTask<
RateLimitLease
>(lease);
178
return new ValueTask<
RateLimitLease
>(QueueLimitLease);
187
return new ValueTask<
RateLimitLease
>(request.Task);
191
private bool TryLeaseUnsynchronized(int permitCount, [NotNullWhen(true)] out
RateLimitLease
? lease)
410
private sealed class RequestRegistration : TaskCompletionSource<
RateLimitLease
>
System\Threading\RateLimiting\DefaultPartitionedRateLimiter.cs (2)
77
protected override
RateLimitLease
AttemptAcquireCore(TResource resource, int permitCount)
82
protected override ValueTask<
RateLimitLease
> AcquireAsyncCore(TResource resource, int permitCount, CancellationToken cancellationToken)
System\Threading\RateLimiting\FixedWindowRateLimiter.cs (12)
31
private static readonly
RateLimitLease
SuccessfulLease = new FixedWindowLease(true, null);
32
private static readonly
RateLimitLease
FailedLease = new FixedWindowLease(false, null);
96
protected override
RateLimitLease
AttemptAcquireCore(int permitCount)
122
if (TryLeaseUnsynchronized(permitCount, out
RateLimitLease
? lease))
133
protected override ValueTask<
RateLimitLease
> AcquireAsyncCore(int permitCount, CancellationToken cancellationToken = default)
147
return new ValueTask<
RateLimitLease
>(SuccessfulLease);
153
if (TryLeaseUnsynchronized(permitCount, out
RateLimitLease
? lease))
155
return new ValueTask<
RateLimitLease
>(lease);
196
return new ValueTask<
RateLimitLease
>(CreateFailedWindowLease(permitCount));
205
return new ValueTask<
RateLimitLease
>(registration.Task);
218
private bool TryLeaseUnsynchronized(int permitCount, [NotNullWhen(true)] out
RateLimitLease
? lease)
448
private 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)
11
private static readonly
RateLimitLease
_lease = new NoopLease();
30
protected override
RateLimitLease
AttemptAcquireCore(int permitCount)
36
protected override ValueTask<
RateLimitLease
> AcquireAsyncCore(int permitCount, CancellationToken cancellationToken)
39
return 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)
30
public
RateLimitLease
AttemptAcquire(TResource resource, int permitCount = 1)
46
protected abstract
RateLimitLease
AttemptAcquireCore(TResource resource, int permitCount);
59
public ValueTask<
RateLimitLease
> AcquireAsync(TResource resource, int permitCount = 1, CancellationToken cancellationToken = default)
68
return new ValueTask<
RateLimitLease
>(Task.FromCanceled<
RateLimitLease
>(cancellationToken));
81
protected abstract ValueTask<
RateLimitLease
> AcquireAsyncCore(TResource resource, int permitCount, CancellationToken cancellationToken);
System\Threading\RateLimiting\RateLimiter.cs (7)
26
/// <see cref="
RateLimitLease
"/>s returned will aggregate metadata and for duplicates use the value of the first lease with the same metadata name.
69
public
RateLimitLease
AttemptAcquire(int permitCount = 1)
84
protected abstract
RateLimitLease
AttemptAcquireCore(int permitCount);
96
public ValueTask<
RateLimitLease
> AcquireAsync(int permitCount = 1, CancellationToken cancellationToken = default)
105
return new ValueTask<
RateLimitLease
>(Task.FromCanceled<
RateLimitLease
>(cancellationToken));
117
protected 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)
35
private static readonly
RateLimitLease
SuccessfulLease = new SlidingWindowLease(true, null);
36
private static readonly
RateLimitLease
FailedLease = new SlidingWindowLease(false, null);
110
protected override
RateLimitLease
AttemptAcquireCore(int permitCount)
133
if (TryLeaseUnsynchronized(permitCount, out
RateLimitLease
? lease))
145
protected override ValueTask<
RateLimitLease
> AcquireAsyncCore(int permitCount, CancellationToken cancellationToken = default)
159
return new ValueTask<
RateLimitLease
>(SuccessfulLease);
165
if (TryLeaseUnsynchronized(permitCount, out
RateLimitLease
? lease))
167
return new ValueTask<
RateLimitLease
>(lease);
208
return new ValueTask<
RateLimitLease
>(FailedLease);
217
return new ValueTask<
RateLimitLease
>(registration.Task);
221
private bool TryLeaseUnsynchronized(int permitCount, [NotNullWhen(true)] out
RateLimitLease
? lease)
461
private sealed class RequestRegistration : TaskCompletionSource<
RateLimitLease
>
System\Threading\RateLimiting\TokenBucketRateLimiter.cs (12)
33
private static readonly
RateLimitLease
SuccessfulLease = new TokenBucketLease(true, null);
34
private static readonly
RateLimitLease
FailedLease = new TokenBucketLease(false, null);
104
protected override
RateLimitLease
AttemptAcquireCore(int tokenCount)
127
if (TryLeaseUnsynchronized(tokenCount, out
RateLimitLease
? lease))
138
protected override ValueTask<
RateLimitLease
> AcquireAsyncCore(int tokenCount, CancellationToken cancellationToken = default)
152
return new ValueTask<
RateLimitLease
>(SuccessfulLease);
158
if (TryLeaseUnsynchronized(tokenCount, out
RateLimitLease
? lease))
160
return new ValueTask<
RateLimitLease
>(lease);
201
return new ValueTask<
RateLimitLease
>(CreateFailedTokenLease(tokenCount));
210
return new ValueTask<
RateLimitLease
>(registration.Task);
225
private bool TryLeaseUnsynchronized(int tokenCount, [NotNullWhen(true)] out
RateLimitLease
? lease)
462
private sealed class RequestRegistration : TaskCompletionSource<
RateLimitLease
>
System\Threading\RateLimiting\TranslatingLimiter.cs (2)
30
protected override
RateLimitLease
AttemptAcquireCore(TResource resource, int permitCount)
37
protected override ValueTask<
RateLimitLease
> AcquireAsyncCore(TResource resource, int permitCount, CancellationToken cancellationToken)