Package org.glassfish.grizzly.impl
Class ReadyFutureImpl<R>
- java.lang.Object
-
- org.glassfish.grizzly.impl.ReadyFutureImpl<R>
-
- All Implemented Interfaces:
Future<R>
,Cacheable
,GrizzlyFuture<R>
,FutureImpl<R>
public final class ReadyFutureImpl<R> extends Object implements FutureImpl<R>
Future
implementation with the specific unmodifiable result.- Author:
- Alexey Stashok
- See Also:
Future
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addCompletionHandler(CompletionHandler<R> completionHandler)
Adds aCompletionHandler
, which will be notified once the asynchronous computation, represented by this Future, is complete.boolean
cancel(boolean mayInterruptIfRunning)
Do nothing.static <R> ReadyFutureImpl<R>
create()
Construct cancelledFuture
.static <R> ReadyFutureImpl<R>
create(Throwable failure)
Construct failedFuture
.static <R> ReadyFutureImpl<R>
create(R result)
ConstructFuture
with the result.void
failure(Throwable failure)
Should not be called for ReadyFutureImplR
get()
R
get(long timeout, TimeUnit unit)
R
getResult()
Get current result value without any blocking.boolean
isCancelled()
boolean
isDone()
void
markForRecycle(boolean recycleResult)
Mark GrizzlyFuture as recyclable, so once result will come - GrizzlyFuture object will be recycled and returned to a thread local object pool.void
recycle()
void
recycle(boolean recycleResult)
Recycle GrizzlyFuture now.void
result(R result)
Set the result value and notify about operation completion.void
setResult(R result)
Should not be called for ReadyFutureImpl
-
-
-
Field Detail
-
result
protected R result
-
-
Method Detail
-
create
public static <R> ReadyFutureImpl<R> create()
Construct cancelledFuture
.
-
create
public static <R> ReadyFutureImpl<R> create(R result)
ConstructFuture
with the result.
-
create
public static <R> ReadyFutureImpl<R> create(Throwable failure)
Construct failedFuture
.
-
addCompletionHandler
public void addCompletionHandler(CompletionHandler<R> completionHandler)
Adds aCompletionHandler
, which will be notified once the asynchronous computation, represented by this Future, is complete.- Specified by:
addCompletionHandler
in interfaceGrizzlyFuture<R>
- Parameters:
completionHandler
-CompletionHandler
-
getResult
public R getResult()
Get current result value without any blocking.- Specified by:
getResult
in interfaceFutureImpl<R>
- Returns:
- current result value without any blocking.
-
setResult
public void setResult(R result)
Should not be called for ReadyFutureImpl
-
cancel
public boolean cancel(boolean mayInterruptIfRunning)
Do nothing.
-
isCancelled
public boolean isCancelled()
- Specified by:
isCancelled
in interfaceFuture<R>
-
get
public R get() throws InterruptedException, ExecutionException
- Specified by:
get
in interfaceFuture<R>
- Throws:
InterruptedException
ExecutionException
-
get
public R get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
- Specified by:
get
in interfaceFuture<R>
- Throws:
InterruptedException
ExecutionException
TimeoutException
-
failure
public void failure(Throwable failure)
Should not be called for ReadyFutureImpl- Specified by:
failure
in interfaceFutureImpl<R>
-
result
public void result(R result)
Description copied from interface:FutureImpl
Set the result value and notify about operation completion.- Specified by:
result
in interfaceFutureImpl<R>
- Parameters:
result
- the result value
-
markForRecycle
public void markForRecycle(boolean recycleResult)
Description copied from interface:GrizzlyFuture
Mark GrizzlyFuture as recyclable, so once result will come - GrizzlyFuture object will be recycled and returned to a thread local object pool. You can consider to use this method, if you're not interested in using this GrizzlyFuture object.- Specified by:
markForRecycle
in interfaceGrizzlyFuture<R>
- Parameters:
recycleResult
- if true - the GrizzlyFuture result, if it support recyclable mechanism, will be also recycled together with this GrizzlyFuture object.
-
recycle
public void recycle(boolean recycleResult)
Description copied from interface:GrizzlyFuture
Recycle GrizzlyFuture now. This method could be used, if you're not interested in using this GrizzlyFuture object, and you're sure this object is not used by any other application part.- Specified by:
recycle
in interfaceGrizzlyFuture<R>
- Parameters:
recycleResult
- if true - the GrizzlyFuture result, if it support recyclable mechanism, will be also recycled together with this GrizzlyFuture object.
-
-