org.glassfish.grizzly.impl
Class SafeFutureImpl<R>

java.lang.Object
  extended by org.glassfish.grizzly.impl.SafeFutureImpl<R>
All Implemented Interfaces:
java.util.concurrent.Future<R>, Cacheable, GrizzlyFuture<R>, FutureImpl<R>

public class SafeFutureImpl<R>
extends java.lang.Object
implements FutureImpl<R>

Safe FutureImpl implementation. (Based on the JDK FutureTask)

Author:
Alexey Stashok
See Also:
Future

Constructor Summary
SafeFutureImpl()
          Creates SafeFutureImpl
 
Method Summary
 boolean cancel(boolean mayInterruptIfRunning)
           
static
<R> SafeFutureImpl<R>
create()
          Construct SafeFutureImpl.
protected  void done(int lifeCounter)
          Protected method invoked when this task transitions to state isDone (whether normally or via cancellation).
 void failure(java.lang.Throwable failure)
          Notify about the failure, occurred during asynchronous operation execution.
 R get()
           
 R get(long timeout, java.util.concurrent.TimeUnit unit)
           
 R getResult()
          Get current result value without any blocking.
 boolean isCancelled()
           
 boolean isDone()
           
 void markForRecycle(boolean recycleResult)
          Mark GrizzlyFuture as recycleable, 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.
protected  void reset()
           
 void result(R result)
          Set the result value and notify about operation completion.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SafeFutureImpl

public SafeFutureImpl()
Creates SafeFutureImpl

Method Detail

create

public static <R> SafeFutureImpl<R> create()
Construct SafeFutureImpl.


isCancelled

public boolean isCancelled()
Specified by:
isCancelled in interface java.util.concurrent.Future<R>

isDone

public boolean isDone()
Specified by:
isDone in interface java.util.concurrent.Future<R>

cancel

public boolean cancel(boolean mayInterruptIfRunning)
Specified by:
cancel in interface java.util.concurrent.Future<R>

get

public R get()
      throws java.lang.InterruptedException,
             java.util.concurrent.ExecutionException
Specified by:
get in interface java.util.concurrent.Future<R>
Throws:
java.util.concurrent.CancellationException
java.lang.InterruptedException
java.util.concurrent.ExecutionException

get

public R get(long timeout,
             java.util.concurrent.TimeUnit unit)
      throws java.lang.InterruptedException,
             java.util.concurrent.ExecutionException,
             java.util.concurrent.TimeoutException
Specified by:
get in interface java.util.concurrent.Future<R>
Throws:
java.util.concurrent.CancellationException
java.lang.InterruptedException
java.util.concurrent.ExecutionException
java.util.concurrent.TimeoutException

getResult

public R getResult()
Get current result value without any blocking.

Specified by:
getResult in interface FutureImpl<R>
Returns:
current result value without any blocking.

result

public void result(R result)
Set the result value and notify about operation completion.

Specified by:
result in interface FutureImpl<R>
Parameters:
result - the result value

failure

public void failure(java.lang.Throwable failure)
Notify about the failure, occurred during asynchronous operation execution.

Specified by:
failure in interface FutureImpl<R>
Parameters:
failure -

markForRecycle

public void markForRecycle(boolean recycleResult)
Description copied from interface: GrizzlyFuture
Mark GrizzlyFuture as recycleable, 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 interface GrizzlyFuture<R>
Parameters:
recycleResult - if true - the GrizzlyFuture result, if it support recycleable mechanism, will be also recycled together with this GrizzlyFuture object.

reset

protected void reset()

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 interface GrizzlyFuture<R>
Parameters:
recycleResult - if true - the GrizzlyFuture result, if it support recycleable mechanism, will be also recycled together with this GrizzlyFuture object.

recycle

public void recycle()
Specified by:
recycle in interface Cacheable

done

protected void done(int lifeCounter)
Protected method invoked when this task transitions to state isDone (whether normally or via cancellation).



Copyright © 2012 Oracle Corporation. All Rights Reserved.