trait Aggregator[T, A] extends AnyRef

Tooling and state wrapper to efficiently compute aggregates over sliding windows, in contexts where this is possible. Instead of aggregating huge slices of a time series, this class iteratively calculates the aggregated value when an entry is added. This allows to only store the summed value instead of all the entries in the case of addition, for example.

The aggregator will be applied sequentially, so it may keep track of any state from one entry the next.

T

the type of the entries being aggregated over

A

the type of the aggregated value

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Aggregator
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def addEntry(e: TSEntry[T]): Unit

    Update the internal aggregated value according to the entry that is about to be added to the window.

    Update the internal aggregated value according to the entry that is about to be added to the window.

    e

    the entry that is about to enter the window

  2. abstract def currentValue: Option[A]

    returns

    the current aggregated value or None

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def addEntry(e: TSEntry[T], currentWindow: Queue[TSEntry[T]]): Unit

    Update the internal aggregated value according to the entry that is about to be added to the window.

    Update the internal aggregated value according to the entry that is about to be added to the window.

    e

    the entry that is about to enter the window

    currentWindow

    the current content of the window: it does not include 'e' at this point.

    Note

    By default this ignores the currentWindow and passes the entry to the function that only takes the entry. If you want to use the entire window in the aggregaton you can override this method.

  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  10. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  17. def toString(): String
    Definition Classes
    AnyRef → Any
  18. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  19. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  20. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from AnyRef

Inherited from Any

Ungrouped