class Debouncer extends AnyRef
Highly performant generic debouncer
Note: This is not written as an Actor for performance reasons. Debounced calls are filtered synchronously, in the caller thread, without the need for locks, context switches, or heap allocations. We use AtomicBoolean to resolve concurrent races; the probability of contending on an AtomicBoolean transition is very low.
- Alphabetic
- By Inheritance
- Debouncer
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
Debouncer(name: String, scheduler: SchedulerLike, delay: FiniteDuration, maxDelay: FiniteDuration, action: () ⇒ Unit, debounceFirst: Boolean = true, clock: Clock = Clock.systemUTC)
- name
The name of this debouncer
- scheduler
The scheduler implementation to use; Can accept an akka scheduler a la magnet pattern
- delay
The time after which to invoke action; each time Debouncer.call is invoked, this delay is reset
- maxDelay
The maximum time to delay the invocation of action()
- action
The action to invoke
- debounceFirst
If false, then the first invocation of call() calls action exactly once. Subsequent calls are debounced.
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
call(): Unit
Register that the provided action should be called according to the debounce logic
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )