final class NanoTimeTokenBucket extends TokenBucket
Default implementation of TokenBucket that uses System.nanoTime
as the time source.
- Source
- TokenBucket.scala
- Alphabetic
- By Inheritance
- NanoTimeTokenBucket
- TokenBucket
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- Implicit
- This member is added by an implicit conversion from NanoTimeTokenBucket toany2stringadd[NanoTimeTokenBucket] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
- def ->[B](y: B): (NanoTimeTokenBucket, B)
- Implicit
- This member is added by an implicit conversion from NanoTimeTokenBucket toArrowAssoc[NanoTimeTokenBucket] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- 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
- def ensuring(cond: (NanoTimeTokenBucket) => Boolean, msg: => Any): NanoTimeTokenBucket
- Implicit
- This member is added by an implicit conversion from NanoTimeTokenBucket toEnsuring[NanoTimeTokenBucket] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (NanoTimeTokenBucket) => Boolean): NanoTimeTokenBucket
- Implicit
- This member is added by an implicit conversion from NanoTimeTokenBucket toEnsuring[NanoTimeTokenBucket] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: => Any): NanoTimeTokenBucket
- Implicit
- This member is added by an implicit conversion from NanoTimeTokenBucket toEnsuring[NanoTimeTokenBucket] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): NanoTimeTokenBucket
- Implicit
- This member is added by an implicit conversion from NanoTimeTokenBucket toEnsuring[NanoTimeTokenBucket] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- 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
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- 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
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from NanoTimeTokenBucket toStringFormat[NanoTimeTokenBucket] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)
instead ofvalue.formatted(formatString)
, or use thef""
string interpolator. In Java 15 and later,formatted
resolves to the new method in String which has reversed parameters.
- def →[B](y: B): (NanoTimeTokenBucket, B)
- Implicit
- This member is added by an implicit conversion from NanoTimeTokenBucket toArrowAssoc[NanoTimeTokenBucket] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->
instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.