TimeStamped

fs2.timeseries.TimeStamped$
See theTimeStamped companion class

Attributes

Companion:
class
Source:
TimeStamped.scala
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type

Members list

Concise view

Type members

Classlikes

object syntax

Attributes

Source:
TimeStamped.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
syntax.type

Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Attributes

Inherited from:
Mirror
Source:
Mirror.scala

The name of the type

The name of the type

Attributes

Inherited from:
Mirror
Source:
Mirror.scala

Value members

Concrete methods

def attemptReorderLocally[F[_], A](over: FiniteDuration): (F, TimeStamped[A]) => TimeStamped[A]

Scan that reorders timestamped values over a specified duration.

Scan that reorders timestamped values over a specified duration.

Values are kept in an internal buffer. Upon receiving a new value, any buffered values that are timestamped with value.time - over are emitted. Other values, and the new value, are kept in the buffer.

This is useful for ordering mostly ordered streams, where values may be out of order with close neighbors but are strictly less than values that come much later in the stream.

An example of such a structure is the result of merging streams of values generated with TimeStamped.now.

Caution: this scan should only be used on streams that are mostly ordered. In the worst case, if the source is in reverse order, all values in the source will be accumulated in to the buffer until the source halts, and then the values will be emitted in order.

Attributes

Source:
TimeStamped.scala
def increasing[F[_], A]: (F, TimeStamped[A]) => TimeStamped[A]

Scan that filters the specified timestamped values to ensure the output time stamps are always increasing in time. Other values are dropped.

Scan that filters the specified timestamped values to ensure the output time stamps are always increasing in time. Other values are dropped.

Attributes

Source:
TimeStamped.scala
def increasingEither[F[_], A]: (F, TimeStamped[A]) => Either[TimeStamped[A], TimeStamped[A]]

Scan that filters the specified timestamped values to ensure the output time stamps are always increasing in time. The increasing values are emitted wrapped in Right, while out of order values are emitted in Left.

Scan that filters the specified timestamped values to ensure the output time stamps are always increasing in time. The increasing values are emitted wrapped in Right, while out of order values are emitted in Left.

Attributes

Source:
TimeStamped.scala
def left[S, I, O, A](t: Scan[S, TimeStamped[I], TimeStamped[O]]): Scan[S, TimeStamped[Either[I, A]], TimeStamped[Either[O, A]]]

Attributes

Source:
TimeStamped.scala
def monotonic[F[_] : Clock, A](a: A): F[TimeStamped[A]]

Attributes

Source:
TimeStamped.scala
def perSecondRate[A, B : Monoid](f: A => B): Scan[(Option[FiniteDuration], B), TimeStamped[A], TimeStamped[B]]

Scan that converts a stream of TimeStamped[A] in to a stream of TimeStamped[B] where B is an accumulated feature of A over a second.

Scan that converts a stream of TimeStamped[A] in to a stream of TimeStamped[B] where B is an accumulated feature of A over a second.

For example, the emitted bits per second of a Stream[F, ByteVector] can be calculated using perSecondRate(_.size * 8), which yields a stream of the emitted bits per second.

Attributes

f

function which extracts a feature of A

Source:
TimeStamped.scala
def preserve[S, I, O](t: Scan[S, I, O]): Scan[S, TimeStamped[I], TimeStamped[O]]

Combinator that converts a Scan[A, B] in to a Scan[TimeStamped[A], TimeStamped[B]] such that timestamps are preserved on elements that flow through the stream.

Combinator that converts a Scan[A, B] in to a Scan[TimeStamped[A], TimeStamped[B]] such that timestamps are preserved on elements that flow through the stream.

Attributes

Source:
TimeStamped.scala
def rate[A, B : Monoid](over: FiniteDuration)(f: A => B): Scan[(Option[FiniteDuration], B), TimeStamped[A], TimeStamped[B]]

Scan that converts a stream of TimeStamped[A] in to a stream of TimeStamped[B] where B is an accumulated feature of A over a specified time period.

Scan that converts a stream of TimeStamped[A] in to a stream of TimeStamped[B] where B is an accumulated feature of A over a specified time period.

For example, the emitted bits per second of a Stream[F, ByteVector] can be calculated using rate(1.0)(_.size * 8), which yields a stream of the emitted bits per second.

Attributes

f

function which extracts a feature of A

over

time period over which to calculate

Source:
TimeStamped.scala
def realTime[F[_] : Clock, A](a: A): F[TimeStamped[A]]

Attributes

Source:
TimeStamped.scala
def reorderLocally[F[_], A](over: FiniteDuration): (F, TimeStamped[A]) => TimeStamped[A]

Scan that reorders a stream of timestamped values that are mostly ordered, using a time based buffer of the specified duration. See attemptReorderLocally for details.

Scan that reorders a stream of timestamped values that are mostly ordered, using a time based buffer of the specified duration. See attemptReorderLocally for details.

The resulting stream is guaranteed to always emit values in time increasing order. Values may be dropped from the source stream if they were not successfully reordered.

Attributes

Source:
TimeStamped.scala

Scan that reorders a stream of timestamped values that are mostly ordered, using a time based buffer of the specified duration. See attemptReorderLocally for details.

Scan that reorders a stream of timestamped values that are mostly ordered, using a time based buffer of the specified duration. See attemptReorderLocally for details.

The resulting stream is guaranteed to always emit output values in time increasing order, wrapped in Right. Any values that could not be reordered due to insufficient buffer space are emitted wrapped in Left.

Attributes

Source:
TimeStamped.scala
def right[S, I, O, A](t: Scan[S, TimeStamped[I], TimeStamped[O]]): Scan[S, TimeStamped[Either[A, I]], TimeStamped[Either[A, O]]]

Attributes

Source:
TimeStamped.scala
def throttle[F[_] : Temporal, A](throttlingFactor: Double, tickResolution: FiniteDuration): (F, TimeStamped[A]) => TimeStamped[A]

Returns a stream that is the throttled version of the source stream.

Returns a stream that is the throttled version of the source stream.

Given two adjacent items from the source stream, a and b, where a is emitted first and b is emitted second, their time delta is b.time - a.time.

This function creates a stream that emits values at wall clock times such that the time delta between any two adjacent values is proportional to their time delta in the source stream.

The throttlingFactor is a scaling factor that determines how much source time a unit of wall clock time is worth. A value of 1.0 causes the output stream to emit values spaced in wall clock time equal to their time deltas. A value of 2.0 emits values at twice the speed of wall clock time.

This is particularly useful when timestamped data can be read in bulk (e.g., from a capture file) but should be "played back" at real time speeds.

Attributes

Source:
TimeStamped.scala
def tick(time: FiniteDuration): TimeStamped[Option[Nothing]]

Attributes

Source:
TimeStamped.scala

Orders values by timestamp -- values with the same timestamp are considered equal.

Orders values by timestamp -- values with the same timestamp are considered equal.

Attributes

Source:
TimeStamped.scala
def unsafeMonotonic[A](a: A): TimeStamped[A]

Attributes

Source:
TimeStamped.scala
def unsafeRealTime[A](a: A): TimeStamped[A]

Attributes

Source:
TimeStamped.scala
def withPerSecondRate[A, B : Monoid](f: A => B): Scan[(Option[FiniteDuration], B), TimeStamped[A], TimeStamped[Either[B, A]]]

Scan that converts a stream of TimeStamped[A] in to a stream of TimeStamped[B Either A] where B is an accumulated feature of A over a second.

Scan that converts a stream of TimeStamped[A] in to a stream of TimeStamped[B Either A] where B is an accumulated feature of A over a second.

Every incoming A is echoed to the output.

For example, the emitted bits per second of a Stream[F, ByteVector] can be calculated using perSecondRate(_.size * 8), which yields a stream of the emitted bits per second.

Attributes

f

function which extracts a feature of A

Source:
TimeStamped.scala
def withRate[A, B](over: FiniteDuration)(f: A => B)(implicit B: Monoid[B]): Scan[(Option[FiniteDuration], B), TimeStamped[A], TimeStamped[Either[B, A]]]

Scan that converts a stream of TimeStamped[A] in to a stream of TimeStamped[Either[B, A]] where B is an accumulated feature of A over a specified time period.

Scan that converts a stream of TimeStamped[A] in to a stream of TimeStamped[Either[B, A]] where B is an accumulated feature of A over a specified time period.

Every incoming A is echoed to the output.

For example, the emitted bits per second of a Stream[F, ByteVector] can be calculated using rate(1.second)(_.size * 8), which yields a stream of the emitted bits per second.

Attributes

f

function which extracts a feature of A

over

time period over which to calculate

Source:
TimeStamped.scala

Deprecated methods

def now[F[_] : Clock, A](a: A): F[TimeStamped[A]]

Attributes

Deprecated
true
Source:
TimeStamped.scala
def unsafeNow[A](a: A): TimeStamped[A]

Attributes

Deprecated
true
Source:
TimeStamped.scala

Implicits

Implicits

implicit val functor: Functor[TimeStamped]

Attributes

Source:
TimeStamped.scala
implicit def ordering[A](implicit A: Ordering[A]): Ordering[TimeStamped[A]]

Orders values by timestamp, then by value.

Orders values by timestamp, then by value.

Attributes

Source:
TimeStamped.scala