Package org.apache.mina.core.future
Class DefaultReadFuture
- java.lang.Object
-
- org.apache.mina.core.future.DefaultIoFuture
-
- org.apache.mina.core.future.DefaultReadFuture
-
- All Implemented Interfaces:
IoFuture
,ReadFuture
public class DefaultReadFuture extends DefaultIoFuture implements ReadFuture
A default implementation ofWriteFuture
.- Author:
- Apache MINA Project
-
-
Constructor Summary
Constructors Constructor Description DefaultReadFuture(IoSession session)
Creates a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ReadFuture
addListener(IoFutureListener<?> listener)
Adds an event listener which is notified when this future is completed.ReadFuture
await()
Wait for the asynchronous operation to complete.ReadFuture
awaitUninterruptibly()
Wait for the asynchronous operation to complete uninterruptibly.Throwable
getException()
Object
getMessage()
Get the read message.boolean
isClosed()
boolean
isRead()
ReadFuture
removeListener(IoFutureListener<?> listener)
Removes an existing event listener so it won't be notified when the future is completed.void
setClosed()
Sets the associatedIoSession
is closed.void
setException(Throwable exception)
Sets the cause of the read failure, and notifies all threads waiting for this future.void
setRead(Object message)
Sets the message is written, and notifies all threads waiting for this future.-
Methods inherited from class org.apache.mina.core.future.DefaultIoFuture
await, await, awaitUninterruptibly, awaitUninterruptibly, getSession, getValue, isDone, join, join, setValue
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.mina.core.future.IoFuture
await, await, awaitUninterruptibly, awaitUninterruptibly, getSession, isDone, join, join
-
-
-
-
Constructor Detail
-
DefaultReadFuture
public DefaultReadFuture(IoSession session)
Creates a new instance.- Parameters:
session
- The associated session
-
-
Method Detail
-
getMessage
public Object getMessage()
Get the read message.- Specified by:
getMessage
in interfaceReadFuture
- Returns:
- the received message. It returns null if this
future is not ready or the associated
IoSession
has been closed.
-
isRead
public boolean isRead()
- Specified by:
isRead
in interfaceReadFuture
- Returns:
- true if a message was received successfully.
-
isClosed
public boolean isClosed()
- Specified by:
isClosed
in interfaceReadFuture
- Returns:
- true if the
IoSession
associated with this future has been closed.
-
getException
public Throwable getException()
- Specified by:
getException
in interfaceReadFuture
- Returns:
- the cause of the read failure if and only if the read
operation has failed due to an
Exception
. Otherwise, null is returned.
-
setClosed
public void setClosed()
Sets the associatedIoSession
is closed. This method is invoked by MINA internally. Please do not call this method directly.- Specified by:
setClosed
in interfaceReadFuture
-
setRead
public 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.- Specified by:
setRead
in interfaceReadFuture
- Parameters:
message
- The received message to store in this future
-
setException
public void setException(Throwable exception)
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.- Specified by:
setException
in interfaceReadFuture
- Parameters:
exception
- The exception to store in the Future instance
-
await
public 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 interfaceIoFuture
- Specified by:
await
in interfaceReadFuture
- Overrides:
await
in classDefaultIoFuture
- Returns:
- The instance of IoFuture that we are waiting for
- Throws:
InterruptedException
- If the thread is interrupted while waiting
-
awaitUninterruptibly
public 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 interfaceIoFuture
- Specified by:
awaitUninterruptibly
in interfaceReadFuture
- Overrides:
awaitUninterruptibly
in classDefaultIoFuture
- Returns:
- the current IoFuture
-
addListener
public 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 interfaceIoFuture
- Specified by:
addListener
in interfaceReadFuture
- Overrides:
addListener
in classDefaultIoFuture
- Parameters:
listener
- The listener to add- Returns:
- the current IoFuture
-
removeListener
public ReadFuture removeListener(IoFutureListener<?> listener)
Removes an existing event listener so it won't be notified when the future is completed.- Specified by:
removeListener
in interfaceIoFuture
- Specified by:
removeListener
in interfaceReadFuture
- Overrides:
removeListener
in classDefaultIoFuture
- Parameters:
listener
- The listener to remove- Returns:
- the current IoFuture
-
-