View Javadoc

1   package cz.cuni.amis.utils.future;
2   
3   import java.util.concurrent.Future;
4   import java.util.concurrent.TimeUnit;
5   
6   import cz.cuni.amis.utils.exception.PogamutCancellationException;
7   import cz.cuni.amis.utils.exception.PogamutInterruptedException;
8   import cz.cuni.amis.utils.exception.PogamutTimeoutException;
9   
10  public interface IFuture<RESULT> extends Future<RESULT> {
11  	
12  	/**
13       * Waits if necessary for the computation to complete, and then
14       * retrieves its result.
15       *
16       * @return the computed result
17       * @throws PogamutInterruptedException if the current thread was interrupted while waiting
18       */
19  	@Override
20      public RESULT get() throws PogamutInterruptedException;
21      
22      /**
23       * Waits if necessary for at most the given time for the computation
24       * to complete, and then retrieves its result, if available.
25       *
26       * @param timeout the maximum time to wait
27       * @param unit the time unit of the timeout argument
28       * @return the computed result
29       * @throws PogamutCancellationException if the computation was cancelled
30       * @throws PogamutInterruptedException if the current thread was interrupted while waiting
31       * @throws PogamutTimeoutException if the wait timed out
32       */
33  	@Override
34      public RESULT get(long timeout, TimeUnit unit) throws PogamutInterruptedException, PogamutCancellationException, PogamutTimeoutException;
35  	
36  }