1 package cz.cuni.amis.utils.future;
2
3 /**
4 * Status of the {@link FutureWithListeners} object. It can tell you in a single enum what state the future is in.
5 *
6 * @author Jimmy
7 */
8 public enum FutureStatus {
9
10 /**
11 * The future has not been computed yet, methods {@link FutureWithListeners#get()} and {@link FutureWithListeners#get(long, java.util.concurrent.TimeUnit)} will block.
12 */
13 FUTURE_IS_BEING_COMPUTED,
14
15 /**
16 * Future is ready, methods {@link FutureWithListeners#get()} and {@link FutureWithListeners#get(long, java.util.concurrent.TimeUnit)} won't block
17 * and will immediately return a result.
18 */
19 FUTURE_IS_READY,
20
21 /**
22 * The computation of the future has been canceled. The future result is (and will remain) unavailable.
23 */
24 CANCELED,
25
26 /**
27 * An exception has happenned during the future computation. The future result is (and will remain) unavailable.
28 */
29 COMPUTATION_EXCEPTION;
30
31 }