The method that reacts to events from the two parent streams.
The method that reacts to events from the two parent streams.
Generally, the body of this method will include calls to fire
or stop
, depending on the received event
.
**Note:** if both parents are stopped
, this method will be
ignored, and this EventJoin will automatically become stopped
as well.
An event sent from one of the two parent streams.
Events from the leftParent
will be wrapped in a Left
, while
events from the rightParent
will be wrapped in a Right
.
Whether or not to keep the handle
method attached to
the parent stream that sent the event
. Returning true
will
maintain the attachment. Returning false
will cause the
corresponding parent to detach the handle
.
The "left" parent EventStream.
The "left" parent EventStream. Events from this stream
will be passed into the handle
method, wrapped in a
scala.util.Left
.
The "right" parent EventStream.
The "right" parent EventStream. Events from this stream
will be passed into the handle
method, wrapped in a
scala.util.Right
.
Returns a Future
that will complete when this stream stop
s.
Returns a Future
that will complete when this stream stop
s. The
resulting value will be a rough estimate (System.currentTimeMillis
)
of when the stream ended. If the stream never ends, the resulting
Future will never complete.
A Future
containing a time stamp describing when this stream stopped.
Attach an event handler for data fired by this stream.
Attach an event handler for data fired by this stream.
A function that takes in an event data and performs side effects.
Returns a Future
that will complete with the value of the last
event fired by this stream.
Returns a Future
that will complete with the value of the last
event fired by this stream. If the stream is stopped or becomes stopped
before firing an event, the Future will fail with a NoSuchElementException
.
A Future
containing the last event fired by this stream.
This is needed so that the respective closure is not garbage-collected.
This is needed so that the respective closure is not garbage-collected.
Returns a Future
that will complete with the value of the next
event fired by this stream.
Returns a Future
that will complete with the value of the next
event fired by this stream. If the stream is stopped, or if it
stops before firing an event, the Future will fail with a
NoSuchElementException
.
A Future
containing the next event fired by this stream.
Assign a block of code that will run when this stream stop
s.
Assign a block of code that will run when this stream stop
s. If this stream
is already stopped, the block of code will run immediately.
A block of code that will run when this stream sends a Stop
event.
Assign a handler for the next event fired by this stream.
Assign a handler for the next event fired by this stream.
A function that takes in an event data and performs side effects.
It can be assumed that f
will be run at most once.
Checks whether both parent streams are stopped.
Checks whether both parent streams are stopped.
true
if and only if both the leftParent
and
rightParent
streams are stopped
.
Produce a new item.
Produce a new item. All handler
functions will be called with item
as
the argument. There is no guarantee of the order in which the handler
functions will be called.
The item to be sent to all handler
s (sinks).
A number indicating the minimum number of cleared references that must be encountered before purging all cleared references from the list.
A number indicating the minimum number of cleared references that must be encountered before purging all cleared references from the list. This method may be overridden - the default value is 5.
This is needed so that the respective closure is not garbage-collected.
This is needed so that the respective closure is not garbage-collected.
Add a handler function that acts as a sink
for items produced by this
Source
.
Add a handler function that acts as a sink
for items produced by this
Source
. The handler
is expected to return true
as long as it remains
active. Once the handler
function returns false
in response to some
produced item, it will be deactivated and will no longer receive new items.
There is no guarantee of the order that handlers will be called.
The handler function to receive items produced by this Source
.
Once the handler
returns false
in response to some produced item, it will
be deactivated and will no longer receive new items.
An implicit Observer
which is required in order to properly
manage references between this Source
and any handler
s, avoiding
reference loops.
Marks whether or not this stream is stopped.
Marks whether or not this stream is stopped. A stopped stream will not produce any more events.
true
if this stream is stopped, false
otherwise.
(eventJoin: StringAdd).self
(eventJoin: StringFormat).self
(eventJoin: ArrowAssoc[EventJoin[A, B, C]]).x
(Since version 2.10.0) Use leftOfArrow
instead
(eventJoin: Ensuring[EventJoin[A, B, C]]).x
(Since version 2.10.0) Use resultOfEnsuring
instead
An EventJoin is a transformer that takes in events of type
A
andB
from two parent EventStreams and produces any number of new events of typeC
in response.To create an EventJoin, implement the three required methods:
Generally,
handle
will callfire
and/orstop
. **Note:** to see the method signatures in this documentation, make sure to select "Visibility: All".