Packages

final case class LocalSoftDeadline[-I, +O, +E](tsSupplier: () ⇒ Long, now: () ⇒ Long, duration: Long, alterand: Stage[I, O, E]) extends Decorator[I, O, E] with Product with Serializable

A decorator that stops the pipeline when a time budget measured from the beginning of the current unit of work is exhausted.

Unlike h8io.stages.std.GlobalSoftDeadline, which measures time from the moment the stage is created and never resets, LocalSoftDeadline measures time from the apply call that started the current unit of work: the timestamp is captured at that call and preserved for as long as the evolution is invoked with h8io.stages.Status.Success. When the evolution is invoked with any other status, the clock is reset — the new window starts at the next apply call. The same reset happens after the deadline has been exceeded.

The deadline is soft: it is checked after the inner stage has already been applied. If it is exceeded, a h8io.stages.Status.Success in the current h8io.stages.Yield is upgraded to an errorless h8io.stages.Status.Complete; any other status is left unchanged.

If duration ≤ 0 the factory methods return h8io.stages.std.DeadEnd directly, ensuring the pipeline immediately terminates.

I

the input type (contravariant)

O

the output type (covariant)

E

the error type (covariant)

tsSupplier

a thunk that returns the timestamp of the start of the current deadline window

now

a supplier of the current time in nanoseconds

duration

the time budget in nanoseconds

alterand

the inner stage whose deadline is enforced

Linear Supertypes
Serializable, Serializable, Product, Equals, Alterator[Stage[I, O, E], I, O, E], Stage[I, O, E], (I) ⇒ Yield[I, O, E], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. LocalSoftDeadline
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. Alterator
  7. Stage
  8. Function1
  9. AnyRef
  10. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new LocalSoftDeadline(tsSupplier: () ⇒ Long, now: () ⇒ Long, duration: Long, alterand: Stage[I, O, E])

    tsSupplier

    a thunk that returns the timestamp of the start of the current deadline window

    now

    a supplier of the current time in nanoseconds

    duration

    the time budget in nanoseconds

    alterand

    the inner stage whose deadline is enforced

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. val alterand: Stage[I, O, E]

    The wrapped stage whose behavior is modified by this operator.

    The wrapped stage whose behavior is modified by this operator.

    Definition Classes
    LocalSoftDeadline → Alterator
  5. def andThen[A](g: (Yield[I, O, E]) ⇒ A): (I) ⇒ A
    Definition Classes
    Function1
    Annotations
    @unspecialized()
  6. def apply(in: I): Yield[I, O, E]

    Processes in and returns the Yield carrying the optional output, the status and the continuation.

    Processes in and returns the Yield carrying the optional output, the status and the continuation.

    A stage that throws from here must have released its own resources first — see the Lifecycle section above.

    Definition Classes
    LocalSoftDeadline → Stage → Function1
  7. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  8. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native() @IntrinsicCandidate()
  9. def compose[A](g: (A) ⇒ I): (A) ⇒ Yield[I, O, E]
    Definition Classes
    Function1
    Annotations
    @unspecialized()
  10. val duration: Long
  11. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  17. val now: () ⇒ Long
  18. def skip(): Evolution[I, O, E]

    Returns this stage's Evolution without consuming an input.

    Returns this stage's Evolution without consuming an input.

    Called instead of apply whenever the stage takes part in a run but has nothing to process: the upstream yielded no output, or a binary operator excluded this branch. The evolution must be the one the stage would have returned had it run. Like apply, skip() may perform side effects — a decorator, for instance, may advance or release the inner stage it owns.

    Definition Classes
    LocalSoftDeadline → Stage
  19. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  20. def toString(): String
    Definition Classes
    Function1 → AnyRef → Any
  21. val tsSupplier: () ⇒ Long
  22. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  24. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. final def ~>[_O, _E >: E](that: Stage[O, _O, _E]): Stage[I, _O, _E]

    Composes this stage with that, feeding this stage's output into it.

    Composes this stage with that, feeding this stage's output into it. See the Composition section above for what happens when there is no output to feed.

    Definition Classes
    Stage
    Annotations
    @inline()

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] ) @Deprecated
    Deprecated

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from Alterator[Stage[I, O, E], I, O, E]

Inherited from Stage[I, O, E]

Inherited from (I) ⇒ Yield[I, O, E]

Inherited from AnyRef

Inherited from Any

Ungrouped