Class PromiseCombiner
- java.lang.Object
-
- io.netty.util.concurrent.PromiseCombiner
-
public final class PromiseCombiner extends java.lang.Object
A promise combiner monitors the outcome of a number of discrete futures, then notifies a final, aggregate promise when all of the combined futures are finished. The aggregate promise will succeed if and only if all of the combined futures succeed. If any of the combined futures fail, the aggregate promise will fail. The cause failure for the aggregate promise will be the failure for one of the failed combined futures; if more than one of the combined futures fails, exactly which cause of failure will be assigned to the aggregate promise is undefined.
Callers may populate a promise combiner with any number of futures to be combined via the
add(Future)
andaddAll(Future[])
methods. When all futures to be combined have been added, callers must provide an aggregate promise to be notified when all combined promises have finished via thefinish(Promise)
method.This implementation is NOT thread-safe and all methods must be called from the
EventExecutor
thread.
-
-
Constructor Summary
Constructors Constructor Description PromiseCombiner()
Deprecated.PromiseCombiner(EventExecutor executor)
TheEventExecutor
to use for notifications.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
add(Future future)
Adds a new future to be combined.void
add(Promise promise)
Deprecated.Replaced byadd(Future)
.void
addAll(Future... futures)
Adds new futures to be combined.void
addAll(Promise... promises)
Deprecated.Replaced byaddAll(Future[])
void
finish(Promise<java.lang.Void> aggregatePromise)
Sets the promise to be notified when all combined futures have finished.
-
-
-
Constructor Detail
-
PromiseCombiner
@Deprecated public PromiseCombiner()
Deprecated.Deprecated usePromiseCombiner(EventExecutor)
.
-
PromiseCombiner
public PromiseCombiner(EventExecutor executor)
TheEventExecutor
to use for notifications. You must calladd(Future)
,addAll(Future[])
andfinish(Promise)
from within theEventExecutor
thread.- Parameters:
executor
- theEventExecutor
to use for notifications.
-
-
Method Detail
-
add
@Deprecated public void add(Promise promise)
Deprecated.Replaced byadd(Future)
.Adds a new promise to be combined. New promises may be added until an aggregate promise is added via thefinish(Promise)
method.- Parameters:
promise
- the promise to add to this promise combiner
-
add
public void add(Future future)
Adds a new future to be combined. New futures may be added until an aggregate promise is added via thefinish(Promise)
method.- Parameters:
future
- the future to add to this promise combiner
-
addAll
@Deprecated public void addAll(Promise... promises)
Deprecated.Replaced byaddAll(Future[])
Adds new promises to be combined. New promises may be added until an aggregate promise is added via thefinish(Promise)
method.- Parameters:
promises
- the promises to add to this promise combiner
-
addAll
public void addAll(Future... futures)
Adds new futures to be combined. New futures may be added until an aggregate promise is added via thefinish(Promise)
method.- Parameters:
futures
- the futures to add to this promise combiner
-
finish
public void finish(Promise<java.lang.Void> aggregatePromise)
Sets the promise to be notified when all combined futures have finished. If all combined futures succeed, then the aggregate promise will succeed. If one or more combined futures fails, then the aggregate promise will fail with the cause of one of the failed futures. If more than one combined future fails, then exactly which failure will be assigned to the aggregate promise is undefined.
After this method is called, no more futures may be added via the
add(Future)
oraddAll(Future[])
methods.- Parameters:
aggregatePromise
- the promise to notify when all combined futures have finished
-
-