- All Known Subinterfaces:
Inoutlet<I,
,O> MapDownlink<K,
,V> MapInlet<K,
,V, I> MapInletMapOutlet<KI,
,KO, VI, VO, I, O> MapInletOutlet<K,
,V, I, O> MapInoutlet<K,
,VI, VO, I, O> MapLane<K,
,V> ValueDownlink<V>
,ValueLane<V>
- All Known Implementing Classes:
AbstractInlet
,AbstractInoutlet
,AbstractMapInlet
,AbstractMapInletMapOutlet
,AbstractMapInletOutlet
,AbstractMapInoutlet
,FilterFieldsCombinator
,FilterFieldsOperator
,JoinMapLaneDownlink
,JoinValueLaneDownlink
,MapDownlinkView
,MapFieldValuesCombinator
,MapFieldValuesOperator
,MapLaneView
,MapOutput
,MapValueCombinator
,MapValueOperator
,MemoizeMapCombinator
,MemoizeValueCombinator
,OutletInlet
,OutletMapInlet
,RecordFieldUpdater
,ReduceFieldsCombinator
,ReduceFieldsOperator
,StreamletInlet
,StreamletInoutlet
,ValueDownlinkView
,ValueLaneView
,ValueOutput
,WatchFieldsCombinator
,WatchFieldsOperator
,WatchValueCombinator
,WatchValueOperator
Streamlet
. An Inlet
represents a
source from which a Streamlet
acquires state.
In order for an Inlet
to provide state to its Streamlet
,
it must bind to an input
source. The input source of an
Inlet
is an Outlet
of some other Streamlet
. The
bindInput(Outlet)
method "plugs" the Inlet
into
an Outlet
. The unbindInput()
method "unplugs"
the Inlet
from its connected Outlet
.
The state of an Inlet
has an integral version. When its
version is negative, the state of the Inlet
is considered
decoherent. When any state on which an Inlet
transitively
depends changes, the Inlet
will be decohered
. Decoherence does not immediately cause an Inlet
to
recompute its state. Instead, a separate recohere
step causes all of the decoherent paths in the dataflow graph
passing through the Inlet
to make their states coherent again.
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Connects thisInlet
to anOutlet
from which it will acquire its state.void
Marks thisInlet
—and theStreamlet
to which thisInlet
is attached—as having decoherent state.void
Disconnects allInlet
s dominated by thisInlet
in the dataflow dependency graph.void
Disconnects allOutlet
s dominated by thisInlet
in the dataflow graph.input()
Returns theOutlet
from which thisInlet
acquires its state; returnsnull
if thisInlet
is disconnected.void
recohereOutput
(int version) Updates the state of thisInlet
to make it consistent with thetarget
version.void
Disconnects thisInlet
from its inputOutlet
, if connected.
-
Method Details
-
input
Returns theOutlet
from which thisInlet
acquires its state; returnsnull
if thisInlet
is disconnected. -
bindInput
Connects thisInlet
to anOutlet
from which it will acquire its state. If thisInlet
is already connected, it will first disconnect from its existing input. Then, after updating itsinput
property, theInlet
will invokeOutlet.bindOutput(Inlet)
on its newinput
. -
unbindInput
void unbindInput()Disconnects thisInlet
from its inputOutlet
, if connected. After setting itsinput
property tonull
, theInlet
will invokeOutlet.unbindOutput(Inlet)
on its old input, if defined. -
disconnectInputs
void disconnectInputs()Disconnects allInlet
s dominated by thisInlet
in the dataflow dependency graph. Used to recursively clean up chains of combinators terminating at thisInlet
. -
disconnectOutputs
void disconnectOutputs()Disconnects allOutlet
s dominated by thisInlet
in the dataflow graph. Used to recursively clean up chains of combinators passing through thisInlet
. -
decohereOutput
void decohereOutput()Marks thisInlet
—and theStreamlet
to which thisInlet
is attached—as having decoherent state. Decohering anInlet
will recursively decohere all streamlets that transitively depend on the state of thisInlet
. Decohering anInlet
does not cause its state to be recomputed. A subsequentrecohereOutput(int)
call will eventually make the state of theInlet
coherent again. -
recohereOutput
void recohereOutput(int version) Updates the state of thisInlet
to make it consistent with thetarget
version. TheInlet
only needs to update if its currentversion
differs from the targetversion
. To update its state, theInlet
first invokesOutlet.recohereInput(int)
on itsinput
, to ensure that its input is coherent. It then invokesStreamlet.recohere(int)
on theStreamlet
to which it's attached, causing theStreamlet
to make its own state coherent again.
-