- 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 TypeMethodDescriptionvoidConnects thisInletto anOutletfrom which it will acquire its state.voidMarks thisInlet—and theStreamletto which thisInletis attached—as having decoherent state.voidDisconnects allInlets dominated by thisInletin the dataflow dependency graph.voidDisconnects allOutlets dominated by thisInletin the dataflow graph.input()Returns theOutletfrom which thisInletacquires its state; returnsnullif thisInletis disconnected.voidrecohereOutput(int version) Updates the state of thisInletto make it consistent with thetargetversion.voidDisconnects thisInletfrom its inputOutlet, if connected.
-
Method Details
-
input
Returns theOutletfrom which thisInletacquires its state; returnsnullif thisInletis disconnected. -
bindInput
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.
-