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 after a given duration has elapsed since the last successful
h8io.stages.Evolution transition.
Unlike h8io.stages.std.GlobalSoftDeadline, which measures time from the moment the stage is created,
LocalSoftDeadline resets its clock on every onSuccess transition: the timestamp is captured at each apply call
and preserved through the onSuccess transition, so the deadline window of the next stage starts from when the
previous apply was evaluated. On onComplete and onError transitions the clock is also reset (to now), but
the deadline is checked on the very next apply call.
If the deadline is exceeded, the h8io.stages.Status of the current h8io.stages.Yield is upgraded to its break
variant (e.g. Success → Complete) by applying break to the status.
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 captured at the last
applycall- now
a supplier of the current time in nanoseconds
- duration
the time budget in nanoseconds
- alterand
the inner stage whose deadline is enforced
- Source
- LocalSoftDeadline.scala
- Alphabetic
- By Inheritance
- LocalSoftDeadline
- Serializable
- Product
- Equals
- Alterator
- Stage
- Function1
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new LocalSoftDeadline(tsSupplier: () => Long, now: () => Long, duration: Long, alterand: Stage[I, O, E])
- tsSupplier
a thunk that returns the timestamp captured at the last
applycall- 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
- 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
- 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
- def andThen[A](g: (Yield[I, O, E]) => A): (I) => A
- Definition Classes
- Function1
- Annotations
- @unspecialized()
- def apply(in: I): Yield[I, O, E]
Applies this stage to the given input, producing a Yield.
Applies this stage to the given input, producing a Yield.
- in
the input value
- returns
a Yield containing the optional output, status, and evolution
- Definition Classes
- LocalSoftDeadline → Stage → Function1
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- def compose[A](g: (A) => I): (A) => Yield[I, O, E]
- Definition Classes
- Function1
- Annotations
- @unspecialized()
- val duration: Long
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def execute(in: I): Outcome[O, E]
Executes this stage end-to-end and returns a plain Outcome.
Executes this stage end-to-end and returns a plain Outcome.
Internally this method:
- Applies the stage to
in, obtaining a Yield. - Disposes the Evolution carried by the Yield — since
executeis a terminal operation, the continuation is not needed and the resources held by this stage must be released immediately. - Wraps the result in an Outcome.Some or Outcome.None.
Disposal failures do not prevent the result from being returned. Any non-fatal exception raised by Evolution.dispose is captured in Outcome.disposeFailure and the outcome is still produced. Fatal exceptions are not caught and will propagate.
- in
the input value
- returns
Outcome.Some if this stage produced an output, Outcome.None otherwise
- Definition Classes
- Stage
- Annotations
- @inline()
- Applies the stage to
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- 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
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- val now: () => Long
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- def skip(): Evolution[I, O, E]
Returns the Evolution for this stage without processing any input.
Returns the Evolution for this stage without processing any input.
Any stage that participates in a pipeline run but does not process the current input must call
skip()instead ofapply. Common triggers: an upstream stage produced no output (Yield.None), or a non-inclusive binary operation excluded this branch. The stage must return its Evolution as it would have appeared had it run, but must not perform any side effects or consume input.See the Lifecycle section in Stage for the full contract.
- returns
the Evolution representing how the pipeline should continue from this stage
- Definition Classes
- LocalSoftDeadline → Stage
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- Function1 → AnyRef → Any
- val tsSupplier: () => Long
- 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])
- final def ~>[_O, _E >: E](that: Stage[O, _O, _E]): Stage[I, _O, _E]
Composes this stage with
that, producing a new stage that feeds the output of this stage intothat.Composes this stage with
that, producing a new stage that feeds the output of this stage intothat.The resulting Stage.AndThen feeds the output of this stage into
that. If this stage produces an output, the statuses and evolutions of both stages are merged; if it produces no output, only the evolutions are composed andthatis not invoked for the current input.- _O
the output type of the composed pipeline
- _E
the combined error type (must be a supertype of
E)- that
the stage to execute after this one
- returns
a composed stage
this ~> that
- Definition Classes
- Stage
- Annotations
- @inline()
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)