Creates intermediate state and collects all incoming signals in reversed order until some data appear on the trigger.
Creates intermediate state and collects all incoming signals in reversed order until some data appear on the trigger. Then clears the state and returns collected data in a single list.
Creates intermediate state and collects all incoming signals in direct order until some data appear on the trigger.
Creates intermediate state and collects all incoming signals in direct order until some data appear on the trigger. Then clears the state and returns collected data in a single list.
Saves incoming signals to internal state.
Saves incoming signals to internal state. The previous value is replaced with the new one. When a signal appears on the trigger contact the current remembered value
in1.lastJoinUntil(in2).map{ case (data1, data2) => }
if there were no input, then the trigger signal do not appear on the output
should clear internal state on trigger. Otherwise keeps the previous state. Prefer to use rightJoin.
JOINs two signals.
JOINs two signals.
Creates intermediate state and collects all incoming signals from the source contact until some data appear on the trigger. Then clears the state and returns collected data in a single list together with the trigger signal.
in1.prependUntil(in2).map{ case (list1, data2) => ... }
Creates a state for temporary storing the value from the current contact.
Creates a state for temporary storing the value from the current contact.
A kind of a latch.
for all trigger signals that appear during latch delay
the join is successful.
If nothing has been remembered, then nothing appears on the output.
The latched value is cleared automatically after the given delay.
This is better than lastJoinUntil
when trigger do not appear in our timeslot. The
remembered value is automatically removed anyway.