-
- 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
public interface Inlet<I>
Input connector into aStreamlet
. AnInlet
represents a source from which aStreamlet
acquires state.In order for an
Inlet
to provide state to itsStreamlet
, it must bind to aninput
source. The input source of anInlet
is anOutlet
of some otherStreamlet
. ThebindInput(Outlet)
method "plugs" theInlet
into anOutlet
. TheunbindInput()
method "unplugs" theInlet
from its connectedOutlet
.The state of an
Inlet
has an integral version. When its version is negative, the state of theInlet
is considered decoherent. When any state on which anInlet
transitively depends changes, theInlet
will bedecohered
. Decoherence does not immediately cause anInlet
to recompute its state. Instead, a separaterecohere
step causes all of the decoherent paths in the dataflow graph passing through theInlet
to make their states coherent again.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
bindInput(Outlet<? extends I> input)
Connects thisInlet
to anOutlet
from which it will acquire its state.void
decohereOutput()
Marks thisInlet
—and theStreamlet
to which thisInlet
is attached—as having decoherent state.void
disconnectInputs()
Disconnects allInlet
s dominated by thisInlet
in the dataflow dependency graph.void
disconnectOutputs()
Disconnects allOutlet
s dominated by thisInlet
in the dataflow graph.Outlet<? extends I>
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
unbindInput()
Disconnects thisInlet
from its inputOutlet
, if connected.
-
-
-
Method Detail
-
input
Outlet<? extends I> input()
Returns theOutlet
from which thisInlet
acquires its state; returnsnull
if thisInlet
is disconnected.
-
bindInput
void bindInput(Outlet<? extends I> input)
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.
-
-