Interface ReadFuture

  • All Superinterfaces:
    IoFuture
    All Known Implementing Classes:
    DefaultReadFuture

    public interface ReadFuture
    extends IoFuture
    An IoFuture for asynchronous read requests.

    Example

     IoSession session = ...;
     
     // useReadOperation must be enabled to use read operation.
     session.getConfig().setUseReadOperation(true);
     
     ReadFuture future = session.read();
     
     // Wait until a message is received.
     future.awaitUninterruptibly();
     
     try {
         Object message = future.getMessage();
     } catch (Exception e) {
         ...
     }
     
    Author:
    Apache MINA Project
    • Method Detail

      • getMessage

        Object getMessage()
        Get the read message.
        Returns:
        the received message. It returns null if this future is not ready or the associated IoSession has been closed.
      • isRead

        boolean isRead()
        Returns:
        true if a message was received successfully.
      • isClosed

        boolean isClosed()
        Returns:
        true if the IoSession associated with this future has been closed.
      • getException

        Throwable getException()
        Returns:
        the cause of the read failure if and only if the read operation has failed due to an Exception. Otherwise, null is returned.
      • setRead

        void setRead​(Object message)
        Sets the message is written, and notifies all threads waiting for this future. This method is invoked by MINA internally. Please do not call this method directly.
        Parameters:
        message - The received message to store in this future
      • setClosed

        void setClosed()
        Sets the associated IoSession is closed. This method is invoked by MINA internally. Please do not call this method directly.
      • setException

        void setException​(Throwable cause)
        Sets the cause of the read failure, and notifies all threads waiting for this future. This method is invoked by MINA internally. Please do not call this method directly.
        Parameters:
        cause - The exception to store in the Future instance
      • await

        ReadFuture await()
                  throws InterruptedException
        Wait for the asynchronous operation to complete. The attached listeners will be notified when the operation is completed.
        Specified by:
        await in interface IoFuture
        Returns:
        The instance of IoFuture that we are waiting for
        Throws:
        InterruptedException - If the thread is interrupted while waiting
      • awaitUninterruptibly

        ReadFuture awaitUninterruptibly()
        Wait for the asynchronous operation to complete uninterruptibly. The attached listeners will be notified when the operation is completed.
        Specified by:
        awaitUninterruptibly in interface IoFuture
        Returns:
        the current IoFuture
      • addListener

        ReadFuture addListener​(IoFutureListener<?> listener)
        Adds an event listener which is notified when this future is completed. If the listener is added after the completion, the listener is directly notified.
        Specified by:
        addListener in interface IoFuture
        Parameters:
        listener - The listener to add
        Returns:
        the current IoFuture
      • removeListener

        ReadFuture removeListener​(IoFutureListener<?> listener)
        Removes an existing event listener so it won't be notified when the future is completed.
        Specified by:
        removeListener in interface IoFuture
        Parameters:
        listener - The listener to remove
        Returns:
        the current IoFuture