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

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

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

Simple thread-unsafe Future implementation.

Author:
Alexey Stashok
See Also:
Future

Field Summary
protected  java.lang.Throwable failure
           
protected  boolean isCancelled
           
protected  boolean isDone
           
protected  int recycleMark
           
protected  R result
           
 
Method Summary
 boolean cancel(boolean mayInterruptIfRunning)
          
static
<R> UnsafeFutureImpl<R>
create()
          Construct Future.
 void failure(java.lang.Throwable failure)
          Notify about the failure, occured 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.
protected  void notifyHaveResult()
          Notify blocked listeners threads about operation completion.
 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
 

Field Detail

isDone

protected boolean isDone

isCancelled

protected boolean isCancelled

failure

protected java.lang.Throwable failure

result

protected R result

recycleMark

protected int recycleMark
Method Detail

create

public static <R> UnsafeFutureImpl<R> create()
Construct Future.


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

cancel

public boolean cancel(boolean mayInterruptIfRunning)

Specified by:
cancel in interface java.util.concurrent.Future<R>

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>

get

public R get()
      throws java.lang.InterruptedException,
             java.util.concurrent.ExecutionException

Specified by:
get in interface java.util.concurrent.Future<R>
Throws:
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.lang.InterruptedException
java.util.concurrent.ExecutionException
java.util.concurrent.TimeoutException

failure

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

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

notifyHaveResult

protected void notifyHaveResult()
Notify blocked listeners threads about operation completion.


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


Copyright © 2011 Oracle Corpration. All Rights Reserved.