-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProgressivePromise.java
More file actions
59 lines (45 loc) · 1.75 KB
/
ProgressivePromise.java
File metadata and controls
59 lines (45 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package concurrent;
/**
* A {@link Future} which is writable.
* @author mayanwei
* @date 2023-11-18.
*/
public interface ProgressivePromise<V> extends Promise<V>, ProgressiveFuture<V>{
/**
* Sets the current progress of the operation and notifies the listeners that implement
* {@link GenericProgressiveFutureListener}
* @param progress
* @param total
* @return
*/
ProgressivePromise<V> setPromise(long progress, long total);
/**
* Tries to set the current progress of the operation and notifies the listeners that implement
* {@link GenericProgressiveFutureListener}. If the operation is already complete or the progress is out of
* range, this method does nothing but return false.
* @param progress
* @param total
* @return
*/
boolean tryProgress(long progress, long total);
@Override
ProgressivePromise<V> setSuccess(V result);
@Override
ProgressivePromise<V> setFailed(Throwable cause);
@Override
ProgressiveFuture<V> addListener(GenericProgressiveFutureListener<? extends Future<? super V>> listener);
@Override
ProgressiveFuture<V> addListeners(GenericProgressiveFutureListener<? extends Future<? super V>>... listener);
@Override
ProgressiveFuture<V> removeListener(GenericProgressiveFutureListener<? extends Future<? super V>> listener);
@Override
ProgressiveFuture<V> removeListeners(GenericProgressiveFutureListener<? extends Future<? super V>>... listener);
@Override
ProgressiveFuture<V> sync() throws InterruptedException;
@Override
ProgressiveFuture<V> syncUninterruptible();
@Override
ProgressiveFuture<V> await() throws InterruptedException;
@Override
ProgressiveFuture<V> awaitUninterruptibly();
}