org.apache.mina.core.future

## Interface WriteFuture

- All Superinterfaces:
    IoFuture
  All Known Implementing Classes:
    DefaultWriteFuture

      public interface WriteFuture
      extends IoFuture

  An `IoFuture` for asynchronous write requests.

  ### Example

       IoSession session = ...;
       WriteFuture future = session.write(...);
       // Wait until the message is completely written out to the O/S buffer.
       future.join();
       if( future.isWritten() )
       {
           // The message has been written successfully.
       }
       else
       {
           // The messsage couldn't be written out completely for some reason.
           // (e.g. Connection is closed)
       }

  Author:
    Apache MINA Project

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `WriteFuture` | `addListener(IoFutureListener<?> listener)` Adds an event `listener` which is notified when this future is completed.
    `WriteFuture` | `await()` Wait for the asynchronous operation to complete.
    `WriteFuture` | `awaitUninterruptibly()` Wait for the asynchronous operation to complete uninterruptibly.
    `Throwable` | `getException()` Returns the cause of the write failure if and only if the write operation has failed due to an `Exception`.
    `boolean` | `isWritten()` Returns `true` if the write operation is finished successfully.
    `WriteFuture` | `removeListener(IoFutureListener<?> listener)` Removes an existing event `listener` so it won't be notified when the future is completed.
    `void` | `setException(Throwable cause)` Sets the cause of the write failure, and notifies all threads waiting for this future.
    `void` | `setWritten()` Sets the message is written, and notifies all threads waiting for this future.

    - ### Methods inherited from interface org.apache.mina.core.future.IoFuture

      `await, await, awaitUninterruptibly, awaitUninterruptibly, getSession, isDone, join, join`

- - ### Method Detail

    - #### isWritten

          boolean isWritten()

      Returns `true` if the write operation is finished successfully.

    - #### getException

          Throwable getException()

      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

          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.

    - #### setException

          void setException(Throwable cause)

      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.

    - #### await

          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`
      Returns:
        the created `WriteFuture`
      Throws:
        `InterruptedException`

    - #### awaitUninterruptibly

          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`
      Returns:
        the current IoFuture

    - #### addListener

          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`

    - #### removeListener

          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`

Copyright © 2004-2012 Apache MINA Project. All Rights Reserved.