Class PipedChannel

  • All Implemented Interfaces:
    BoundedChannel, Channel, Puttable, Takable

    public class PipedChannel
    extends SemaphoreControlledChannel
    A channel based on a java.io.PipedInputStream and java.io.PipedOutputStream. Elements are serialized using ObjectInputStreams and ObjectOutputStreams upon insertion and extraction from the pipe.

    IO Exceptions are transformed into Errors. This is in general not a good idea, but seems to be the most reasonable compromise for the intended usage contexts.

    Status Uncertain. There are enough conceptual and implementation snags surrounding use of pipes as Channels to downplay use. However, without such bridges, people would have to duplicate code that should work the same way in both cases.

    [ Introduction to this package. ]

    • Constructor Summary

      Constructors 
      Constructor Description
      PipedChannel()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected java.lang.Object extract()
      Shared mechanics for take-based methods
      protected java.io.ObjectInputStream in()
      Return input stream, first constructing if necessary.
      protected void insert​(java.lang.Object x)
      Shared mechanics for put-based methods
      protected java.io.ObjectOutputStream out()
      Return output stream, first constructing if necessary.
      java.lang.Object peek()
      Stubbed out for now
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • in_

        protected java.io.ObjectInputStream in_
      • out_

        protected java.io.ObjectOutputStream out_
      • outp_

        protected final java.io.PipedOutputStream outp_
      • inp_

        protected final java.io.PipedInputStream inp_
    • Constructor Detail

      • PipedChannel

        public PipedChannel()
    • Method Detail

      • in

        protected java.io.ObjectInputStream in()
        Return input stream, first constructing if necessary. Needed because Object streams can block on open.
      • out

        protected java.io.ObjectOutputStream out()
        Return output stream, first constructing if necessary. Needed because Object streams can block on open.
      • peek

        public java.lang.Object peek()
        Stubbed out for now