[RateLimiting] Rename resourceID in PartitionedRateLimiter (#72214)
authorBrennan <brecon@microsoft.com>
Fri, 15 Jul 2022 15:30:27 +0000 (08:30 -0700)
committerGitHub <noreply@github.com>
Fri, 15 Jul 2022 15:30:27 +0000 (08:30 -0700)
src/libraries/System.Threading.RateLimiting/ref/System.Threading.RateLimiting.cs
src/libraries/System.Threading.RateLimiting/src/System/Threading/RateLimiting/ChainedPartitionedRateLimiter.cs
src/libraries/System.Threading.RateLimiting/src/System/Threading/RateLimiting/DefaultPartitionedRateLimiter.cs
src/libraries/System.Threading.RateLimiting/src/System/Threading/RateLimiting/PartitionedRateLimiter.T.cs
src/libraries/System.Threading.RateLimiting/tests/ChainedLimiterTests.cs
src/libraries/System.Threading.RateLimiting/tests/Infrastructure/Utils.cs

index d39f8f2..6a3a710 100644 (file)
@@ -70,15 +70,15 @@ namespace System.Threading.RateLimiting
     public abstract partial class PartitionedRateLimiter<TResource> : System.IAsyncDisposable, System.IDisposable
     {
         protected PartitionedRateLimiter() { }
-        public System.Threading.RateLimiting.RateLimitLease Acquire(TResource resourceID, int permitCount = 1) { throw null; }
-        protected abstract System.Threading.RateLimiting.RateLimitLease AcquireCore(TResource resourceID, int permitCount);
+        public System.Threading.RateLimiting.RateLimitLease Acquire(TResource resource, int permitCount = 1) { throw null; }
+        protected abstract System.Threading.RateLimiting.RateLimitLease AcquireCore(TResource resource, int permitCount);
         public void Dispose() { }
         protected virtual void Dispose(bool disposing) { }
         public System.Threading.Tasks.ValueTask DisposeAsync() { throw null; }
         protected virtual System.Threading.Tasks.ValueTask DisposeAsyncCore() { throw null; }
-        public abstract int GetAvailablePermits(TResource resourceID);
-        public System.Threading.Tasks.ValueTask<System.Threading.RateLimiting.RateLimitLease> WaitAndAcquireAsync(TResource resourceID, int permitCount = 1, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        protected abstract System.Threading.Tasks.ValueTask<System.Threading.RateLimiting.RateLimitLease> WaitAndAcquireAsyncCore(TResource resourceID, int permitCount, System.Threading.CancellationToken cancellationToken);
+        public abstract int GetAvailablePermits(TResource resource);
+        public System.Threading.Tasks.ValueTask<System.Threading.RateLimiting.RateLimitLease> WaitAndAcquireAsync(TResource resource, int permitCount = 1, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        protected abstract System.Threading.Tasks.ValueTask<System.Threading.RateLimiting.RateLimitLease> WaitAndAcquireAsyncCore(TResource resource, int permitCount, System.Threading.CancellationToken cancellationToken);
     }
     public enum QueueProcessingOrder
     {
index b607208..44a7f43 100644 (file)
@@ -23,13 +23,13 @@ namespace System.Threading.RateLimiting
             _limiters = limiters;
         }
 
-        public override int GetAvailablePermits(TResource resourceID)
+        public override int GetAvailablePermits(TResource resource)
         {
             ThrowIfDisposed();
             int lowestPermitCount = int.MaxValue;
             foreach (PartitionedRateLimiter<TResource> limiter in _limiters)
             {
-                int permitCount = limiter.GetAvailablePermits(resourceID);
+                int permitCount = limiter.GetAvailablePermits(resource);
 
                 if (permitCount < lowestPermitCount)
                 {
@@ -40,7 +40,7 @@ namespace System.Threading.RateLimiting
             return lowestPermitCount;
         }
 
-        protected override RateLimitLease AcquireCore(TResource resourceID, int permitCount)
+        protected override RateLimitLease AcquireCore(TResource resource, int permitCount)
         {
             ThrowIfDisposed();
             RateLimitLease[]? leases = null;
@@ -50,7 +50,7 @@ namespace System.Threading.RateLimiting
                 Exception? exception = null;
                 try
                 {
-                    lease = _limiters[i].Acquire(resourceID, permitCount);
+                    lease = _limiters[i].Acquire(resource, permitCount);
                 }
                 catch (Exception ex)
                 {
@@ -66,7 +66,7 @@ namespace System.Threading.RateLimiting
             return new CombinedRateLimitLease(leases!);
         }
 
-        protected override async ValueTask<RateLimitLease> WaitAndAcquireAsyncCore(TResource resourceID, int permitCount, CancellationToken cancellationToken)
+        protected override async ValueTask<RateLimitLease> WaitAndAcquireAsyncCore(TResource resource, int permitCount, CancellationToken cancellationToken)
         {
             ThrowIfDisposed();
             RateLimitLease[]? leases = null;
@@ -76,7 +76,7 @@ namespace System.Threading.RateLimiting
                 Exception? exception = null;
                 try
                 {
-                    lease = await _limiters[i].WaitAndAcquireAsync(resourceID, permitCount, cancellationToken).ConfigureAwait(false);
+                    lease = await _limiters[i].WaitAndAcquireAsync(resource, permitCount, cancellationToken).ConfigureAwait(false);
                 }
                 catch (Exception ex)
                 {
index 84aa3ae..9d6320a 100644 (file)
@@ -58,24 +58,24 @@ namespace System.Threading.RateLimiting
             _timer.Dispose();
         }
 
-        public override int GetAvailablePermits(TResource resourceID)
+        public override int GetAvailablePermits(TResource resource)
         {
-            return GetRateLimiter(resourceID).GetAvailablePermits();
+            return GetRateLimiter(resource).GetAvailablePermits();
         }
 
-        protected override RateLimitLease AcquireCore(TResource resourceID, int permitCount)
+        protected override RateLimitLease AcquireCore(TResource resource, int permitCount)
         {
-            return GetRateLimiter(resourceID).Acquire(permitCount);
+            return GetRateLimiter(resource).Acquire(permitCount);
         }
 
-        protected override ValueTask<RateLimitLease> WaitAndAcquireAsyncCore(TResource resourceID, int permitCount, CancellationToken cancellationToken)
+        protected override ValueTask<RateLimitLease> WaitAndAcquireAsyncCore(TResource resource, int permitCount, CancellationToken cancellationToken)
         {
-            return GetRateLimiter(resourceID).WaitAndAcquireAsync(permitCount, cancellationToken);
+            return GetRateLimiter(resource).WaitAndAcquireAsync(permitCount, cancellationToken);
         }
 
-        private RateLimiter GetRateLimiter(TResource resourceID)
+        private RateLimiter GetRateLimiter(TResource resource)
         {
-            RateLimitPartition<TKey> partition = _partitioner(resourceID);
+            RateLimitPartition<TKey> partition = _partitioner(resource);
             Lazy<RateLimiter>? limiter;
             lock (Lock)
             {
index 70b2c98..9f0e1d3 100644 (file)
@@ -15,7 +15,7 @@ namespace System.Threading.RateLimiting
         /// An estimated count of available permits.
         /// </summary>
         /// <returns></returns>
-        public abstract int GetAvailablePermits(TResource resourceID);
+        public abstract int GetAvailablePermits(TResource resource);
 
         /// <summary>
         /// Fast synchronous attempt to acquire permits.
@@ -23,27 +23,27 @@ namespace System.Threading.RateLimiting
         /// <remarks>
         /// Set <paramref name="permitCount"/> to 0 to get whether permits are exhausted.
         /// </remarks>
-        /// <param name="resourceID">The resource to limit.</param>
+        /// <param name="resource">The resource to limit.</param>
         /// <param name="permitCount">Number of permits to try and acquire.</param>
         /// <returns>A successful or failed lease.</returns>
         /// <exception cref="ArgumentOutOfRangeException"></exception>
-        public RateLimitLease Acquire(TResource resourceID, int permitCount = 1)
+        public RateLimitLease Acquire(TResource resource, int permitCount = 1)
         {
             if (permitCount < 0)
             {
                 throw new ArgumentOutOfRangeException(nameof(permitCount));
             }
 
-            return AcquireCore(resourceID, permitCount);
+            return AcquireCore(resource, permitCount);
         }
 
         /// <summary>
         /// Method that <see cref="PartitionedRateLimiter{TResource}"/> implementations implement for <see cref="Acquire"/>.
         /// </summary>
-        /// <param name="resourceID">The resource to limit.</param>
+        /// <param name="resource">The resource to limit.</param>
         /// <param name="permitCount">Number of permits to try and acquire.</param>
         /// <returns></returns>
-        protected abstract RateLimitLease AcquireCore(TResource resourceID, int permitCount);
+        protected abstract RateLimitLease AcquireCore(TResource resource, int permitCount);
 
         /// <summary>
         /// Wait until the requested permits are available or permits can no longer be acquired.
@@ -51,12 +51,12 @@ namespace System.Threading.RateLimiting
         /// <remarks>
         /// Set <paramref name="permitCount"/> to 0 to wait until permits are replenished.
         /// </remarks>
-        /// <param name="resourceID">The resource to limit.</param>
+        /// <param name="resource">The resource to limit.</param>
         /// <param name="permitCount">Number of permits to try and acquire.</param>
         /// <param name="cancellationToken">Optional token to allow canceling a queued request for permits.</param>
         /// <returns>A task that completes when the requested permits are acquired or when the requested permits are denied.</returns>
         /// <exception cref="ArgumentOutOfRangeException"></exception>
-        public ValueTask<RateLimitLease> WaitAndAcquireAsync(TResource resourceID, int permitCount = 1, CancellationToken cancellationToken = default)
+        public ValueTask<RateLimitLease> WaitAndAcquireAsync(TResource resource, int permitCount = 1, CancellationToken cancellationToken = default)
         {
             if (permitCount < 0)
             {
@@ -68,17 +68,17 @@ namespace System.Threading.RateLimiting
                 return new ValueTask<RateLimitLease>(Task.FromCanceled<RateLimitLease>(cancellationToken));
             }
 
-            return WaitAndAcquireAsyncCore(resourceID, permitCount, cancellationToken);
+            return WaitAndAcquireAsyncCore(resource, permitCount, cancellationToken);
         }
 
         /// <summary>
         /// Method that <see cref="PartitionedRateLimiter{TResource}"/> implementations implement for <see cref="WaitAndAcquireAsync"/>.
         /// </summary>
-        /// <param name="resourceID">The resource to limit.</param>
+        /// <param name="resource">The resource to limit.</param>
         /// <param name="permitCount">Number of permits to try and acquire.</param>
         /// <param name="cancellationToken">Optional token to allow canceling a queued request for permits.</param>
         /// <returns>A task that completes when the requested permits are acquired or when the requested permits are denied.</returns>
-        protected abstract ValueTask<RateLimitLease> WaitAndAcquireAsyncCore(TResource resourceID, int permitCount, CancellationToken cancellationToken);
+        protected abstract ValueTask<RateLimitLease> WaitAndAcquireAsyncCore(TResource resource, int permitCount, CancellationToken cancellationToken);
 
         /// <summary>
         /// Dispose method for implementations to write.
index db5569c..c0fc937 100644 (file)
@@ -689,7 +689,7 @@ namespace System.Threading.RateLimiting.Tests
         }
 
         [Fact]
-        public void AcquireForwardsCorrectResourceID()
+        public void AcquireForwardsCorrectResource()
         {
             var limiterFactory = new TrackingRateLimiterFactory<int>();
             using var limiter1 = PartitionedRateLimiter.Create<string, int>(resource =>
@@ -718,7 +718,7 @@ namespace System.Threading.RateLimiting.Tests
         }
 
         [Fact]
-        public async Task WaitAndAcquireAsyncForwardsCorrectResourceID()
+        public async Task WaitAndAcquireAsyncForwardsCorrectResource()
         {
             var limiterFactory = new TrackingRateLimiterFactory<int>();
             using var limiter1 = PartitionedRateLimiter.Create<string, int>(resource =>
index e2a4c11..6aef4c1 100644 (file)
@@ -37,9 +37,9 @@ namespace System.Threading.RateLimiting.Tests
 
     internal sealed class NotImplementedPartitionedRateLimiter<T> : PartitionedRateLimiter<T>
     {
-        public override int GetAvailablePermits(T resourceID) => throw new NotImplementedException();
-        protected override RateLimitLease AcquireCore(T resourceID, int permitCount) => throw new NotImplementedException();
-        protected override ValueTask<RateLimitLease> WaitAndAcquireAsyncCore(T resourceID, int permitCount, CancellationToken cancellationToken) => throw new NotImplementedException();
+        public override int GetAvailablePermits(T resource) => throw new NotImplementedException();
+        protected override RateLimitLease AcquireCore(T resource, int permitCount) => throw new NotImplementedException();
+        protected override ValueTask<RateLimitLease> WaitAndAcquireAsyncCore(T resource, int permitCount, CancellationToken cancellationToken) => throw new NotImplementedException();
     }
 
     internal sealed class TrackingRateLimiter : RateLimiter