Module 

Class BlockingByteChannel

java.lang.Object
org.xnio.channels.BlockingByteChannel
All Implemented Interfaces:
Closeable, Flushable, AutoCloseable, ByteChannel, Channel, GatheringByteChannel, ReadableByteChannel, ScatteringByteChannel, WritableByteChannel

public class BlockingByteChannel extends Object implements ScatteringByteChannel, GatheringByteChannel, ByteChannel, Flushable
A blocking wrapper for a StreamChannel. Read and write operations will block until some data may be transferred. Once any amount of data is read or written, 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. If a write timeout is specified, then the write methods will throw a WriteTimeoutException if the timeout expires without writing any data.
  • Constructor Details

    • BlockingByteChannel

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

      public BlockingByteChannel(StreamChannel delegate, long timeout, TimeUnit timeoutUnit)
      Construct a new instance.
      Parameters:
      delegate - the channel to forward I/O operations to
      timeout - the read/write timeout
      timeoutUnit - the read/write timeout unit
    • BlockingByteChannel

      public BlockingByteChannel(StreamChannel delegate, long readTimeout, TimeUnit readTimeoutUnit, long writeTimeout, TimeUnit writeTimeoutUnit)
      Construct a new instance.
      Parameters:
      delegate - the channel to forward I/O operations to
      readTimeout - the read timeout
      readTimeoutUnit - the read timeout unit
      writeTimeout - the write timeout
      writeTimeoutUnit - the write timeout unit
  • Method Details

    • setReadTimeout

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

      public void setWriteTimeout(long writeTimeout, TimeUnit writeTimeoutUnit)
      Set the write timeout.
      Parameters:
      writeTimeout - the write timeout
      writeTimeoutUnit - the write timeout unit
    • read

      public long read(ByteBuffer[] dsts, int offset, int length) throws IOException
      Perform a blocking, scattering read operation.
      Specified by:
      read in interface 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:
      IOException - if an I/O error occurs
    • read

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

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

      public long write(ByteBuffer[] srcs, int offset, int length) throws IOException
      Perform a blocking, gathering write operation.
      Specified by:
      write in interface GatheringByteChannel
      Parameters:
      srcs - the source buffers
      offset - the offset into the destination buffer array
      length - the number of buffers to write from
      Returns:
      the number of bytes actually written (will be greater than zero)
      Throws:
      IOException - if an I/O error occurs
    • write

      public long write(ByteBuffer[] srcs) throws IOException
      Perform a blocking, gathering write operation.
      Specified by:
      write in interface GatheringByteChannel
      Parameters:
      srcs - the source buffers
      Returns:
      the number of bytes actually written (will be greater than zero)
      Throws:
      IOException - if an I/O error occurs
    • write

      public int write(ByteBuffer src) throws IOException
      Perform a blocking write operation.
      Specified by:
      write in interface WritableByteChannel
      Parameters:
      src - the source buffer
      Returns:
      the number of bytes actually written (will be greater than zero)
      Throws:
      IOException - if an I/O error occurs
    • isOpen

      public boolean isOpen()
      Specified by:
      isOpen in interface Channel
    • flush

      public void flush() throws IOException
      Specified by:
      flush in interface Flushable
      Throws:
      IOException
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Channel
      Specified by:
      close in interface Closeable
      Throws:
      IOException