ExactRateLimiter (Apache Tomcat 9.0.107 API Documentation)
Description: declaration: package: org.apache.catalina.util, class: ExactRateLimiter

# Class ExactRateLimiter

java.lang.Object
org.apache.catalina.util.RateLimiterBase
org.apache.catalina.util.ExactRateLimiter

All Implemented Interfaces:
  `RateLimiter`

public class ExactRateLimiter extends RateLimiterBase
A RateLimiter that compromises efficiency for accuracy in order to provide exact rate limiting.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ExactRateLimiter()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected String`
  `getDefaultPolicyName()`
  If policy name has not been specified, the first call of `RateLimiterBase.getPolicyName()` returns an auto-generated policy name using the default policy name as prefix and followed by auto-increase index.
  `protected TimeBucketCounterBase`
  `newCounterInstance(int duration, ScheduledExecutorService executorService)`
  Instantiate an instance of `TimeBucketCounterBase` for specific time bucket size.

  ### Methods inherited from class org.apache.catalina.util.RateLimiterBase

  `destroy, getBucketCounter, getDuration, getPolicyName, getRequests, increment, setDuration, setFilterConfig, setPolicyName, setRequests`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface org.apache.catalina.util.RateLimiter

  `getPolicy, getQuota`

- ## Constructor Details

  - ### ExactRateLimiter

    public ExactRateLimiter()

- ## Method Details

  - ### getDefaultPolicyName

    protected String getDefaultPolicyName()
    Description copied from class: `RateLimiterBase`
    If policy name has not been specified, the first call of `RateLimiterBase.getPolicyName()` returns an auto-generated policy name using the default policy name as prefix and followed by auto-increase index.
    Specified by:
      `getDefaultPolicyName` in class `RateLimiterBase`
    Returns:
      default policy name, as a prefix of auto-generated policy name.

  - ### newCounterInstance

    protected TimeBucketCounterBase newCounterInstance(int duration, ScheduledExecutorService executorService)
    Description copied from class: `RateLimiterBase`
    Instantiate an instance of `TimeBucketCounterBase` for specific time bucket size. Concrete classes determine its counter policy by returning different implementation instances.
    Specified by:
      `newCounterInstance` in class `RateLimiterBase`
    Parameters:
      `duration` - size of each time bucket in seconds
      `executorService` - the executor
    Returns:
      counter instance of `TimeBucketCounterBase`