Module 

Class BufferPipeInputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public class BufferPipeInputStream
    extends java.io.InputStream
    An InputStream implementation which is populated asynchronously with ByteBuffer instances.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int available()
      void close()
      void push​(java.nio.ByteBuffer buffer)
      Push a buffer into the queue.
      void push​(Pooled<java.nio.ByteBuffer> pooledBuffer)
      Push a buffer into the queue.
      void pushEof()
      Push the EOF condition into the queue.
      void pushException​(java.io.IOException e)
      Push an exception condition into the queue.
      int read()
      int read​(byte[] b, int off, int len)
      long skip​(long qty)  
      • Methods inherited from class java.io.InputStream

        mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, transferTo
      • Methods inherited from class java.lang.Object

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

      • BufferPipeInputStream

        public BufferPipeInputStream​(BufferPipeInputStream.InputHandler inputHandler)
        Construct a new instance. The given inputHandler will be invoked after each buffer is fully read and when the stream is closed.
        Parameters:
        inputHandler - the input events handler
    • Method Detail

      • push

        public void push​(java.nio.ByteBuffer buffer)
        Push a buffer into the queue. There is no mechanism to limit the number of pushed buffers; if such a mechanism is desired, it must be implemented externally, for example maybe using a Semaphore.
        Parameters:
        buffer - the buffer from which more data should be read
      • push

        public void push​(Pooled<java.nio.ByteBuffer> pooledBuffer)
        Push a buffer into the queue. There is no mechanism to limit the number of pushed buffers; if such a mechanism is desired, it must be implemented externally, for example maybe using a Semaphore.
        Parameters:
        pooledBuffer - the buffer from which more data should be read
      • pushException

        public void pushException​(java.io.IOException e)
        Push an exception condition into the queue. After this method is called, no further buffers may be pushed into this instance.
        Parameters:
        e - the exception to push
      • pushEof

        public void pushEof()
        Push the EOF condition into the queue. After this method is called, no further buffers may be pushed into this instance.
      • read

        public int read()
                 throws java.io.IOException
        Specified by:
        read in class java.io.InputStream
        Throws:
        java.io.IOException
      • read

        public int read​(byte[] b,
                        int off,
                        int len)
                 throws java.io.IOException
        Overrides:
        read in class java.io.InputStream
        Throws:
        java.io.IOException
      • available

        public int available()
                      throws java.io.IOException
        Overrides:
        available in class java.io.InputStream
        Throws:
        java.io.IOException
      • skip

        public long skip​(long qty)
                  throws java.io.IOException
        Overrides:
        skip in class java.io.InputStream
        Throws:
        java.io.IOException
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.InputStream
        Throws:
        java.io.IOException