Class AbstractOutlet<O>

java.lang.Object
swim.streamlet.AbstractOutlet<O>
All Implemented Interfaces:
Outlet<O>
Direct Known Subclasses:
AndOutlet, BinaryOutlet, ConditionalOutlet, GetOutlet, InvokeOutlet, KeyOutlet, OrOutlet, StreamletOutlet, UnaryOutlet, ValueInput

public abstract class AbstractOutlet<O> extends Object implements Outlet<O>
  • Field Details

    • outputs

      protected Inlet<? super O>[] outputs
    • version

      protected int version
  • Constructor Details

    • AbstractOutlet

      public AbstractOutlet()
  • Method Details

    • get

      public abstract O get()
      Description copied from interface: Outlet
      Returns the current state of this Outlet.
      Specified by:
      get in interface Outlet<O>
    • outputIterator

      public Iterator<Inlet<? super O>> outputIterator()
      Description copied from interface: Outlet
      Returns an Iterator over the set of Inlets that depend on the state of this Outlet.
      Specified by:
      outputIterator in interface Outlet<O>
    • bindOutput

      public void bindOutput(Inlet<? super O> output)
      Description copied from interface: Outlet
      Adds an output to the set of Inlets that depend on the state of this Outlet. The output will be decohered when the state of this Outlet is decohered, and recohered when this Outlet is recohered.
      Specified by:
      bindOutput in interface Outlet<O>
    • unbindOutput

      public void unbindOutput(Inlet<? super O> output)
      Description copied from interface: Outlet
      Removes an output from the set of Inlets that depend on the state of this Outlet.
      Specified by:
      unbindOutput in interface Outlet<O>
    • unbindOutputs

      public void unbindOutputs()
      Description copied from interface: Outlet
      Disconnects all outputs from this Outlet by invoking Inlet.unbindInput() on each Inelt that depends on the state of this Outlet.
      Specified by:
      unbindOutputs in interface Outlet<O>
    • disconnectOutputs

      public void disconnectOutputs()
      Description copied from interface: Outlet
      Disconnects all Outlets dominated by this Outlet in the dataflow graph. Used to recursively clean up chains of combinators originating from this Inlet.
      Specified by:
      disconnectOutputs in interface Outlet<O>
    • disconnectInputs

      public void disconnectInputs()
      Description copied from interface: Outlet
      Disconnects all Inlets dominated by this Outlet in the dataflow dependency graph. Used to recursively clean up chains of combinators passing through this Outlet.
      Specified by:
      disconnectInputs in interface Outlet<O>
    • decohereInput

      public void decohereInput()
      Description copied from interface: Outlet
      Marks this Outlet—and all outputs that depend on the state of this Outlet—as having decoherent state.
      Specified by:
      decohereInput in interface Outlet<O>
    • recohereInput

      public void recohereInput(int version)
      Description copied from interface: Outlet
      Updates the state of this Outlet to make it consistent with the target version. The Outlet only needs to update if its current version differs from the target version. To update its state, the Outlet first invokes Streamlet.recohere(int) on the Streamlet to which it's attached. It then invokes Inlet.recohereOutput(int) on each of its dependent outputs.
      Specified by:
      recohereInput in interface Outlet<O>
    • willDecohereInput

      protected void willDecohereInput()
    • onDecohereInput

      protected void onDecohereInput()
    • didDecohereInput

      protected void didDecohereInput()
    • willRecohereInput

      protected void willRecohereInput(int version)
    • onRecohereInput

      protected void onRecohereInput(int version)
    • didRecohereInput

      protected void didRecohereInput(int version)