Interface Stream

All Superinterfaces:
BufferProvider

public interface Stream extends BufferProvider
A full duplex stream of bytes.
Since:
3.0
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Closes the connection.
    The address that this stream is connected to.
    boolean
    Returns the closed state of the connection
    void
    Open the stream.
    void
    Open the stream asynchronously.
    read(int numBytes)
    Read from the stream, blocking until the requested number of bytes have been read.
    default ByteBuf
    read(int numBytes, int additionalTimeout)
    Read from the stream, blocking until the requested number of bytes have been read.
    void
    readAsync(int numBytes, AsyncCompletionHandler<ByteBuf> handler)
    Read from the stream, asynchronously.
    default boolean
    Gets whether this implementation supports specifying an additional timeout for read operations
    void
    write(List<ByteBuf> buffers)
    Write each buffer in the list to the stream in order, blocking until all are completely written.
    void
    Write each buffer in the list to the stream in order, asynchronously.

    Methods inherited from interface com.mongodb.connection.BufferProvider

    getBuffer
  • Method Details

    • open

      void open() throws IOException
      Open the stream.
      Throws:
      IOException - if an I/O error occurs
    • openAsync

      void openAsync(AsyncCompletionHandler<Void> handler)
      Open the stream asynchronously.
      Parameters:
      handler - the completion handler for opening the stream
    • write

      void write(List<ByteBuf> buffers) throws IOException
      Write each buffer in the list to the stream in order, blocking until all are completely written.
      Parameters:
      buffers - the buffers to write
      Throws:
      IOException - if there are problems writing to the stream
    • read

      ByteBuf read(int numBytes) throws IOException
      Read from the stream, blocking until the requested number of bytes have been read.
      Parameters:
      numBytes - The number of bytes to read into the returned byte buffer
      Returns:
      a byte buffer filled with number of bytes requested
      Throws:
      IOException - if there are problems reading from the stream
    • supportsAdditionalTimeout

      default boolean supportsAdditionalTimeout()
      Gets whether this implementation supports specifying an additional timeout for read operations

      The default is to not support specifying an additional timeout

      Returns:
      true if this implementation supports specifying an additional timeouts for reads operations
      Since:
      4.1
      See Also:
    • read

      default ByteBuf read(int numBytes, int additionalTimeout) throws IOException
      Read from the stream, blocking until the requested number of bytes have been read. If supported by the implementation, adds the given additional timeout to the configured timeout for the stream.

      This method should not be called unless supportsAdditionalTimeout() returns true.

      The default behavior is to throw an UnsupportedOperationException

      Parameters:
      numBytes - The number of bytes to read into the returned byte buffer
      additionalTimeout - additional timeout in milliseconds to add to the configured timeout
      Returns:
      a byte buffer filled with number of bytes requested
      Throws:
      IOException - if there are problems reading from the stream
      UnsupportedOperationException - if this implementation does not support additional timeouts
      Since:
      4.1
      See Also:
    • writeAsync

      void writeAsync(List<ByteBuf> buffers, AsyncCompletionHandler<Void> handler)
      Write each buffer in the list to the stream in order, asynchronously. This method should return immediately, and invoke the given callback on completion.
      Parameters:
      buffers - the buffers to write
      handler - invoked when the write operation has completed
    • readAsync

      void readAsync(int numBytes, AsyncCompletionHandler<ByteBuf> handler)
      Read from the stream, asynchronously. This method should return immediately, and invoke the given callback when the number of requested bytes have been read.
      Parameters:
      numBytes - the number of bytes
      handler - invoked when the read operation has completed
    • getAddress

      ServerAddress getAddress()
      The address that this stream is connected to.
      Returns:
      the address
    • close

      void close()
      Closes the connection.
    • isClosed

      boolean isClosed()
      Returns the closed state of the connection
      Returns:
      true if connection is closed