- java.lang.Object
-
- org.xnio.FinishedIoFuture<T>
-
- Type Parameters:
T
- the type of result that this operation produces
- All Implemented Interfaces:
Cancellable
,IoFuture<T>
public class FinishedIoFuture<T> extends java.lang.Object implements IoFuture<T>
An implementation ofIoFuture
that represents an immediately-successful operation.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.xnio.IoFuture
IoFuture.HandlingNotifier<T,A>, IoFuture.Notifier<T,A>, IoFuture.Status
-
-
Constructor Summary
Constructors Constructor Description FinishedIoFuture(T result)
Create an instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <A> IoFuture<T>
addNotifier(IoFuture.Notifier<? super T,A> notifier, A attachment)
Add a notifier to be called when this operation is complete.IoFuture.Status
await()
Wait for the operation to complete.IoFuture.Status
await(long time, java.util.concurrent.TimeUnit timeUnit)
Wait for the operation to complete, with a timeout.IoFuture.Status
awaitInterruptibly()
Wait for the operation to complete.IoFuture.Status
awaitInterruptibly(long time, java.util.concurrent.TimeUnit timeUnit)
Wait for the operation to complete, with a timeout.IoFuture<T>
cancel()
Cancel the operation.T
get()
Get the result of the operation.java.io.IOException
getException()
Get the failure reason.T
getInterruptibly()
Get the result of the operation.IoFuture.Status
getStatus()
Get the current status.
-
-
-
Constructor Detail
-
FinishedIoFuture
public FinishedIoFuture(T result)
Create an instance.- Parameters:
result
- the operation result
-
-
Method Detail
-
cancel
public IoFuture<T> cancel()
Cancel the operation. Since this operation is always complete, this is a no-op.- Specified by:
cancel
in interfaceCancellable
- Specified by:
cancel
in interfaceIoFuture<T>
- Returns:
- this instance
-
getStatus
public IoFuture.Status getStatus()
Description copied from interface:IoFuture
Get the current status.
-
await
public IoFuture.Status await()
Description copied from interface:IoFuture
Wait for the operation to complete. This method will block until the status changes fromIoFuture.Status.WAITING
.
-
await
public IoFuture.Status await(long time, java.util.concurrent.TimeUnit timeUnit)
Description copied from interface:IoFuture
Wait for the operation to complete, with a timeout. This method will block until the status changes fromIoFuture.Status.WAITING
, or the given time elapses. If the time elapses before the operation is complete,IoFuture.Status.WAITING
is returned.- Specified by:
await
in interfaceIoFuture<T>
- Parameters:
time
- the amount of time to waittimeUnit
- the time unit- Returns:
- the new status, or
IoFuture.Status.WAITING
if the timeout expired
-
awaitInterruptibly
public IoFuture.Status awaitInterruptibly() throws java.lang.InterruptedException
Description copied from interface:IoFuture
Wait for the operation to complete. This method will block until the status changes fromIoFuture.Status.WAITING
, or the current thread is interrupted.- Specified by:
awaitInterruptibly
in interfaceIoFuture<T>
- Returns:
- the new status
- Throws:
java.lang.InterruptedException
- if the operation is interrupted
-
awaitInterruptibly
public IoFuture.Status awaitInterruptibly(long time, java.util.concurrent.TimeUnit timeUnit) throws java.lang.InterruptedException
Description copied from interface:IoFuture
Wait for the operation to complete, with a timeout. This method will block until the status changes fromIoFuture.Status.WAITING
, the given time elapses, or the current thread is interrupted. If the time elapses before the operation is complete,IoFuture.Status.WAITING
is returned.- Specified by:
awaitInterruptibly
in interfaceIoFuture<T>
- Parameters:
time
- the amount of time to waittimeUnit
- the time unit- Returns:
- the new status, or
IoFuture.Status.WAITING
if the timeout expired - Throws:
java.lang.InterruptedException
- if the operation is interrupted
-
get
public T get() throws java.io.IOException, java.util.concurrent.CancellationException
Description copied from interface:IoFuture
Get the result of the operation. If the operation is not complete, blocks until the operation completes. If the operation fails, or has already failed at the time this method is called, the failure reason is thrown.
-
getInterruptibly
public T getInterruptibly() throws java.io.IOException, java.lang.InterruptedException, java.util.concurrent.CancellationException
Description copied from interface:IoFuture
Get the result of the operation. If the operation is not complete, blocks until the operation completes. If the operation fails, or has already failed at the time this method is called, the failure reason is thrown. If the current thread is interrupted while waiting, an exception is thrown.- Specified by:
getInterruptibly
in interfaceIoFuture<T>
- Returns:
- the result of the operation
- Throws:
java.io.IOException
- if the operation failedjava.lang.InterruptedException
- if the operation is interruptedjava.util.concurrent.CancellationException
- if the operation was cancelled
-
getException
public java.io.IOException getException() throws java.lang.IllegalStateException
Description copied from interface:IoFuture
Get the failure reason.- Specified by:
getException
in interfaceIoFuture<T>
- Returns:
- the failure reason
- Throws:
java.lang.IllegalStateException
- if the operation did not fail
-
addNotifier
public <A> IoFuture<T> addNotifier(IoFuture.Notifier<? super T,A> notifier, A attachment)
Description copied from interface:IoFuture
Add a notifier to be called when this operation is complete. If the operation is already complete, the notifier is called immediately, possibly in the caller's thread. The given attachment is provided to the notifier.- Specified by:
addNotifier
in interfaceIoFuture<T>
- Type Parameters:
A
- the attachment type- Parameters:
notifier
- the notifier to be calledattachment
- the attachment to pass in to the notifier- Returns:
- this instance
-
-