Class Promise<T>


  • public class Promise<T>
    extends java.lang.Object
    Allows a thread to submit an asynchronous request and to wait for the result. The caller may choose to check for the result at a later time, or immediately and it may block or not. Both the caller and responder have to know the promise.
    Version:
    $Id: Promise.java,v 1.12.2.1 2007/11/20 08:37:24 belaban Exp $
    Author:
    Bela Ban
    • Constructor Summary

      Constructors 
      Constructor Description
      Promise()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.concurrent.locks.Condition getCond()  
      java.util.concurrent.locks.Lock getLock()  
      T getResult()  
      T getResult​(long timeout)
      Returns the result, but never throws a TimeoutException; returns null instead.
      T getResultWithTimeout​(long timeout)
      Blocks until a result is available, or timeout milliseconds have elapsed
      boolean hasResult()
      Checks whether result is available.
      void reset()
      Causes all waiting threads to return
      void setResult​(T obj)
      Sets the result and notifies any threads waiting for it
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • Promise

        public Promise()
    • Method Detail

      • getLock

        public java.util.concurrent.locks.Lock getLock()
      • getCond

        public java.util.concurrent.locks.Condition getCond()
      • getResultWithTimeout

        public T getResultWithTimeout​(long timeout)
                               throws TimeoutException
        Blocks until a result is available, or timeout milliseconds have elapsed
        Parameters:
        timeout -
        Returns:
        An object
        Throws:
        TimeoutException - If a timeout occurred (implies that timeout > 0)
      • getResult

        public T getResult()
      • getResult

        public T getResult​(long timeout)
        Returns the result, but never throws a TimeoutException; returns null instead.
        Parameters:
        timeout -
        Returns:
        Object
      • hasResult

        public boolean hasResult()
        Checks whether result is available. Does not block.
      • setResult

        public void setResult​(T obj)
        Sets the result and notifies any threads waiting for it
      • reset

        public void reset()
        Causes all waiting threads to return
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object