Class DefaultRateLimiter

java.lang.Object
com.mewna.catnip.rest.ratelimit.DefaultRateLimiter
All Implemented Interfaces:
RateLimiter

public class DefaultRateLimiter extends Object implements RateLimiter
  • Constructor Details

    • DefaultRateLimiter

      public DefaultRateLimiter()
  • Method Details

    • catnip

      public void catnip(@Nonnull Catnip catnip)
      Specified by:
      catnip in interface RateLimiter
    • requestExecution

      @Nonnull public io.reactivex.rxjava3.core.Completable requestExecution(@Nonnull Routes.Route route)
      Description copied from interface: RateLimiter
      Requests execution for a specific route. The route cannot be executed on until the bucket has requests available again, so the ratelimiter must handle this correctly.
      Specified by:
      requestExecution in interface RateLimiter
      Parameters:
      route - The route to execute.
      Returns:
      A Completable that completes when the route can execute again.
    • updateLimit

      public void updateLimit(@Nonnull Routes.Route route, int limit)
      Specified by:
      updateLimit in interface RateLimiter
    • updateRemaining

      public void updateRemaining(@Nonnull Routes.Route route, int remaining)
      Specified by:
      updateRemaining in interface RateLimiter
    • updateReset

      public void updateReset(@Nonnull Routes.Route route, long resetTimestamp)
      Specified by:
      updateReset in interface RateLimiter
    • updateDone

      public void updateDone(@Nonnull Routes.Route route)
      Specified by:
      updateDone in interface RateLimiter
    • updateGlobalRateLimit

      public void updateGlobalRateLimit(long resetTimestamp)
      Specified by:
      updateGlobalRateLimit in interface RateLimiter