Class UnsafeFutureImpl<R>

  • All Implemented Interfaces:
    java.util.concurrent.Future<R>, Cacheable, GrizzlyFuture<R>, FutureImpl<R>

    public final class UnsafeFutureImpl<R>
    extends java.lang.Object
    implements FutureImpl<R>
    Simple thread-unsafe Future implementation.
    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 a CompletionHandler, which will be notified once the asynchronous computation, represented by this Future, is complete.
      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 recyclable, 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

      • 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 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.
      • 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 recyclable mechanism, will be also recycled together with this GrizzlyFuture object.
      • recycle

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