Class SafeFutureImpl<R>

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

public class SafeFutureImpl<R> extends Object implements FutureImpl<R>
Safe FutureImpl implementation.

(Based on the JDK FutureTask)

See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates SafeFutureImpl
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Adds a CompletionHandler, which will be notified once the asynchronous computation, represented by this Future, is complete.
    boolean
    cancel(boolean mayInterruptIfRunning)
    static <R> SafeFutureImpl<R>
    Construct SafeFutureImpl.
    protected void
    Protected method invoked when this task transitions to state isDone (whether normally or via cancellation).
    void
    failure(Throwable failure)
    Notify about the failure, occurred during asynchronous operation execution.
    get()
     
    get(long timeout, TimeUnit unit)
     
    Get current result value without any blocking.
    boolean
    boolean
    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.
    protected void
    The method is called when this SafeFutureImpl is marked as completed.
    void
     
    void
    recycle(boolean recycleResult)
    Recycle GrizzlyFuture now.
    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 Details

    • SafeFutureImpl

      public SafeFutureImpl()
      Creates SafeFutureImpl
  • Method Details

    • addCompletionHandler

      public void addCompletionHandler(CompletionHandler<R> completionHandler)
      Adds a CompletionHandler, which will be notified once the asynchronous computation, represented by this Future, is complete.
      Specified by:
      addCompletionHandler in interface GrizzlyFuture<R>
      Parameters:
      completionHandler - CompletionHandler
    • create

      public static <R> SafeFutureImpl<R> create()
      Construct SafeFutureImpl.
    • 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(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 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 interface GrizzlyFuture<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 interface GrizzlyFuture<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()
      Specified by:
      recycle in interface Cacheable
    • getResult

      public R getResult()
      Description copied from interface: FutureImpl
      Get current result value without any blocking.
      Specified by:
      getResult in interface FutureImpl<R>
      Returns:
      current result value without any blocking.
    • onComplete

      protected void onComplete()
      The method is called when this SafeFutureImpl is marked as completed. Subclasses can override this method.
    • isCancelled

      public boolean isCancelled()
      Specified by:
      isCancelled in interface Future<R>
    • isDone

      public boolean isDone()
      Specified by:
      isDone in interface Future<R>
    • cancel

      public boolean cancel(boolean mayInterruptIfRunning)
      Specified by:
      cancel in interface Future<R>
    • get

      Specified by:
      get in interface Future<R>
      Throws:
      CancellationException
      InterruptedException
      ExecutionException
    • get

      public R get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
      Specified by:
      get in interface Future<R>
      Throws:
      CancellationException
      InterruptedException
      ExecutionException
      TimeoutException
    • done

      protected void done()
      Protected method invoked when this task transitions to state isDone (whether normally or via cancellation). The default implementation does nothing. Subclasses may override this method to invoke completion callbacks or perform bookkeeping. Note that you can query status inside the implementation of this method to determine whether this task has been cancelled.