Class DefaultWriteFuture

java.lang.Object
org.apache.mina.core.future.DefaultIoFuture
org.apache.mina.core.future.DefaultWriteFuture
All Implemented Interfaces:
IoFuture, WriteFuture

public class DefaultWriteFuture extends DefaultIoFuture implements WriteFuture
A default implementation of WriteFuture.
  • Constructor Details

    • DefaultWriteFuture

      public DefaultWriteFuture(IoSession session)
      Creates a new instance.
      Parameters:
      session - The associated session
  • Method Details

    • newWrittenFuture

      public static WriteFuture newWrittenFuture(IoSession session)
      Returns a new DefaultWriteFuture which is already marked as 'written'.
      Parameters:
      session - The associated session
      Returns:
      A new future for a written message
    • newNotWrittenFuture

      public static WriteFuture newNotWrittenFuture(IoSession session, Throwable cause)
      Returns a new DefaultWriteFuture which is already marked as 'not written'.
      Parameters:
      session - The associated session
      cause - The reason why the message has not be written
      Returns:
      A new future for not written message
    • isWritten

      public boolean isWritten()
      Specified by:
      isWritten in interface WriteFuture
      Returns:
      true if the write operation is finished successfully.
    • getException

      public Throwable getException()
      Specified by:
      getException in interface WriteFuture
      Returns:
      the cause of the write failure if and only if the write operation has failed due to an Exception. Otherwise, null is returned.
    • setWritten

      public void setWritten()
      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.
      Specified by:
      setWritten in interface WriteFuture
    • setException

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

      public WriteFuture 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
      Specified by:
      await in interface WriteFuture
      Overrides:
      await in class DefaultIoFuture
      Returns:
      The instance of IoFuture that we are waiting for
      Throws:
      InterruptedException - If the thread is interrupted while waiting
    • awaitUninterruptibly

      public WriteFuture 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
      Specified by:
      awaitUninterruptibly in interface WriteFuture
      Overrides:
      awaitUninterruptibly in class DefaultIoFuture
      Returns:
      the current IoFuture
    • addListener

      public WriteFuture 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
      Specified by:
      addListener in interface WriteFuture
      Overrides:
      addListener in class DefaultIoFuture
      Parameters:
      listener - The listener to add
      Returns:
      the current IoFuture
    • removeListener

      public WriteFuture 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
      Specified by:
      removeListener in interface WriteFuture
      Overrides:
      removeListener in class DefaultIoFuture
      Parameters:
      listener - The listener to remove
      Returns:
      the current IoFuture