-
- 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. AnInletrepresents a source from which aStreamletacquires state.In order for an
Inletto provide state to itsStreamlet, it must bind to aninputsource. The input source of anInletis anOutletof some otherStreamlet. ThebindInput(Outlet)method "plugs" theInletinto anOutlet. TheunbindInput()method "unplugs" theInletfrom its connectedOutlet.The state of an
Inlethas an integral version. When its version is negative, the state of theInletis considered decoherent. When any state on which anInlettransitively depends changes, theInletwill bedecohered. Decoherence does not immediately cause anInletto recompute its state. Instead, a separaterecoherestep causes all of the decoherent paths in the dataflow graph passing through theInletto make their states coherent again.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidbindInput(Outlet<? extends I> input)Connects thisInletto anOutletfrom which it will acquire its state.voiddecohereOutput()Marks thisInlet—and theStreamletto which thisInletis attached—as having decoherent state.voiddisconnectInputs()Disconnects allInlets dominated by thisInletin the dataflow dependency graph.voiddisconnectOutputs()Disconnects allOutlets dominated by thisInletin the dataflow graph.Outlet<? extends I>input()Returns theOutletfrom which thisInletacquires its state; returnsnullif thisInletis disconnected.voidrecohereOutput(int version)Updates the state of thisInletto make it consistent with thetargetversion.voidunbindInput()Disconnects thisInletfrom its inputOutlet, if connected.
-
-
-
Method Detail
-
input
Outlet<? extends I> input()
Returns theOutletfrom which thisInletacquires its state; returnsnullif thisInletis disconnected.
-
bindInput
void bindInput(Outlet<? extends I> input)
Connects thisInletto anOutletfrom which it will acquire its state. If thisInletis already connected, it will first disconnect from its existing input. Then, after updating itsinputproperty, theInletwill invokeOutlet.bindOutput(Inlet)on its newinput.
-
unbindInput
void unbindInput()
Disconnects thisInletfrom its inputOutlet, if connected. After setting itsinputproperty tonull, theInletwill invokeOutlet.unbindOutput(Inlet)on its old input, if defined.
-
disconnectInputs
void disconnectInputs()
Disconnects allInlets dominated by thisInletin the dataflow dependency graph. Used to recursively clean up chains of combinators terminating at thisInlet.
-
disconnectOutputs
void disconnectOutputs()
Disconnects allOutlets dominated by thisInletin the dataflow graph. Used to recursively clean up chains of combinators passing through thisInlet.
-
decohereOutput
void decohereOutput()
Marks thisInlet—and theStreamletto which thisInletis attached—as having decoherent state. Decohering anInletwill recursively decohere all streamlets that transitively depend on the state of thisInlet. Decohering anInletdoes not cause its state to be recomputed. A subsequentrecohereOutput(int)call will eventually make the state of theInletcoherent again.
-
recohereOutput
void recohereOutput(int version)
Updates the state of thisInletto make it consistent with thetargetversion. TheInletonly needs to update if its currentversiondiffers from the targetversion. To update its state, theInletfirst invokesOutlet.recohereInput(int)on itsinput, to ensure that its input is coherent. It then invokesStreamlet.recohere(int)on theStreamletto which it's attached, causing theStreamletto make its own state coherent again.
-
-