Module 

Class BlockingReadableByteChannel

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, java.nio.channels.Channel, java.nio.channels.ReadableByteChannel, java.nio.channels.ScatteringByteChannel

    public class BlockingReadableByteChannel
    extends java.lang.Object
    implements java.nio.channels.ScatteringByteChannel
    A blocking wrapper for a StreamSourceChannel. Read operations will block until some data may be transferred. Once any amount of data is read, the operation will return. If a read timeout is specified, then the read methods will throw a ReadTimeoutException if the timeout expires without reading any data.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      boolean isOpen()
      int read​(java.nio.ByteBuffer dst)
      Perform a blocking read operation.
      long read​(java.nio.ByteBuffer[] dsts)
      Perform a blocking, scattering read operation.
      long read​(java.nio.ByteBuffer[] dsts, int offset, int length)
      Perform a blocking, scattering read operation.
      void setReadTimeout​(long readTimeout, java.util.concurrent.TimeUnit readTimeoutUnit)
      Set the read timeout.
      • Methods inherited from class java.lang.Object

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

      • BlockingReadableByteChannel

        public BlockingReadableByteChannel​(StreamSourceChannel delegate)
        Construct a new instance.
        Parameters:
        delegate - the channel to forward I/O operations to
      • BlockingReadableByteChannel

        public BlockingReadableByteChannel​(StreamSourceChannel delegate,
                                           long readTimeout,
                                           java.util.concurrent.TimeUnit readTimeoutUnit)
        Construct a new instance.
        Parameters:
        delegate - the channel to forward I/O operations to
        readTimeout - the read timeout
        readTimeoutUnit - the read timeout unit
    • Method Detail

      • setReadTimeout

        public void setReadTimeout​(long readTimeout,
                                   java.util.concurrent.TimeUnit readTimeoutUnit)
        Set the read timeout.
        Parameters:
        readTimeout - the read timeout
        readTimeoutUnit - the read timeout unit
      • read

        public long read​(java.nio.ByteBuffer[] dsts,
                         int offset,
                         int length)
                  throws java.io.IOException
        Perform a blocking, scattering read operation.
        Specified by:
        read in interface java.nio.channels.ScatteringByteChannel
        Parameters:
        dsts - the destination buffers
        offset - the offset into the destination buffer array
        length - the number of buffers to read into
        Returns:
        the number of bytes actually read (will be greater than zero)
        Throws:
        java.io.IOException - if an I/O error occurs
      • read

        public long read​(java.nio.ByteBuffer[] dsts)
                  throws java.io.IOException
        Perform a blocking, scattering read operation.
        Specified by:
        read in interface java.nio.channels.ScatteringByteChannel
        Parameters:
        dsts - the destination buffers
        Returns:
        the number of bytes actually read (will be greater than zero)
        Throws:
        java.io.IOException - if an I/O error occurs
      • read

        public int read​(java.nio.ByteBuffer dst)
                 throws java.io.IOException
        Perform a blocking read operation.
        Specified by:
        read in interface java.nio.channels.ReadableByteChannel
        Parameters:
        dst - the destination buffer
        Returns:
        the number of bytes actually read (will be greater than zero)
        Throws:
        java.io.IOException - if an I/O error occurs
      • isOpen

        public boolean isOpen()
        Specified by:
        isOpen in interface java.nio.channels.Channel
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.nio.channels.Channel
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException