Packages

c

akka.util

NanoTimeTokenBucket

final class NanoTimeTokenBucket extends TokenBucket

Default implementation of TokenBucket that uses System.nanoTime as the time source.

Source
TokenBucket.scala
Linear Supertypes
TokenBucket, AnyRef, Any
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. NanoTimeTokenBucket
  2. TokenBucket
  3. AnyRef
  4. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new NanoTimeTokenBucket(_cap: Long, _period: Long)

Value Members

  1. def currentTime: Long

    The current time in nanos.

    The current time in nanos. The returned value is monotonic, might wrap over and has no relationship with wall-clock.

    returns

    return the current time in nanos as a Long.

    Definition Classes
    NanoTimeTokenBucket → TokenBucket
  2. def init(): Unit

    This method must be called before the token bucket can be used.

    This method must be called before the token bucket can be used.

    Definition Classes
    TokenBucket
  3. def offer(cost: Long): Long

    Call this (side-effecting) method whenever an element should be passed through the token-bucket.

    Call this (side-effecting) method whenever an element should be passed through the token-bucket. This method will return the number of nanoseconds the element needs to be delayed to conform with the token bucket parameters. Returns zero if the element can be emitted immediately. The method does not handle overflow, if an element is to be delayed longer in nanoseconds than what can be represented as a positive Long then an undefined value is returned.

    If a non-zero value is returned, it is the responsibility of the caller to not call this method before the returned delay has been elapsed (but can be called later). This class does not check or protect against early calls.

    cost

    How many tokens the element costs. Can be larger than the capacity of the bucket.

    Definition Classes
    TokenBucket