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
- Alphabetic
- By Inheritance
- LocalSoftDeadline
- Serializable
- Serializable
- Product
- Equals
- Alterator
- Stage
- Function1
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
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
-
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]
Processes
inand returns the Yield carrying the optional output, the status and the continuation.Processes
inand 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
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @IntrinsicCandidate()
-
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
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
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
- @native() @IntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- val now: () ⇒ Long
-
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
applywhenever 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. Likeapply,skip()may perform side effects — a decorator, for instance, may advance or release the inner stage it owns.- 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( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
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
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated