Class MultiTargetRequest<T>
java.lang.Object
java.util.concurrent.CompletableFuture<T>
org.infinispan.remoting.transport.AbstractRequest<T>
org.infinispan.remoting.transport.impl.MultiTargetRequest<T>
- All Implemented Interfaces:
Callable<Void>,CompletionStage<T>,Future<T>,Request<T>
- Direct Known Subclasses:
StaggeredRequest
Request implementation that waits for responses from multiple target nodes.
- Since:
- 9.1
- Author:
- Dan Berindei
-
Nested Class Summary
Nested classes/interfaces inherited from class java.util.concurrent.CompletableFuture
CompletableFuture.AsynchronousCompletionTask -
Field Summary
Fields inherited from class org.infinispan.remoting.transport.AbstractRequest
repository, requestId, responseCollectorFields inherited from interface org.infinispan.remoting.transport.impl.Request
NO_REQUEST_ID -
Constructor Summary
ConstructorsConstructorDescriptionMultiTargetRequest(ResponseCollector<T> responseCollector, long requestId, RequestRepository repository, Collection<Address> targets, Address excluded, JGroupsMetricsManager metricsCollector) -
Method Summary
Modifier and TypeMethodDescriptionprotected RequestTrackergetTarget(int i) protected intbooleanCalled when the node received a new cluster view.voidonResponse(Address sender, Response response) Called when a response is received for this response.protected voidCalled when the timeout task scheduled withAbstractRequest.setTimeout(ScheduledExecutorService, long, TimeUnit)expires.Methods inherited from class org.infinispan.remoting.transport.AbstractRequest
call, cancel, cancel, complete, completeExceptionally, getRequestId, getTimeoutMs, setTimeoutMethods inherited from class java.util.concurrent.CompletableFuture
acceptEither, acceptEitherAsync, acceptEitherAsync, allOf, anyOf, applyToEither, applyToEitherAsync, applyToEitherAsync, completeAsync, completeAsync, completedFuture, completedStage, completeOnTimeout, copy, defaultExecutor, delayedExecutor, delayedExecutor, exceptionally, failedFuture, failedStage, get, get, getNow, getNumberOfDependents, handle, handleAsync, handleAsync, isCancelled, isCompletedExceptionally, isDone, join, minimalCompletionStage, newIncompleteFuture, obtrudeException, obtrudeValue, orTimeout, runAfterBoth, runAfterBothAsync, runAfterBothAsync, runAfterEither, runAfterEitherAsync, runAfterEitherAsync, runAsync, runAsync, supplyAsync, supplyAsync, thenAccept, thenAcceptAsync, thenAcceptAsync, thenAcceptBoth, thenAcceptBothAsync, thenAcceptBothAsync, thenApply, thenApplyAsync, thenApplyAsync, thenCombine, thenCombineAsync, thenCombineAsync, thenCompose, thenComposeAsync, thenComposeAsync, thenRun, thenRunAsync, thenRunAsync, toCompletableFuture, toString, whenComplete, whenCompleteAsync, whenCompleteAsyncMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.concurrent.CompletionStage
acceptEither, acceptEitherAsync, acceptEitherAsync, applyToEither, applyToEitherAsync, applyToEitherAsync, exceptionally, handle, handleAsync, handleAsync, runAfterBoth, runAfterBothAsync, runAfterBothAsync, runAfterEither, runAfterEitherAsync, runAfterEitherAsync, thenAccept, thenAcceptAsync, thenAcceptAsync, thenAcceptBoth, thenAcceptBothAsync, thenAcceptBothAsync, thenApply, thenApplyAsync, thenApplyAsync, thenCombine, thenCombineAsync, thenCombineAsync, thenCompose, thenComposeAsync, thenComposeAsync, thenRun, thenRunAsync, thenRunAsync, toCompletableFuture, whenComplete, whenCompleteAsync, whenCompleteAsync
-
Constructor Details
-
MultiTargetRequest
public MultiTargetRequest(ResponseCollector<T> responseCollector, long requestId, RequestRepository repository, Collection<Address> targets, Address excluded, JGroupsMetricsManager metricsCollector)
-
-
Method Details
-
getTargetsSize
protected int getTargetsSize() -
getTarget
- Returns:
- target
i, ornullif a response was already added for targeti.
-
onResponse
Description copied from interface:RequestCalled when a response is received for this response. -
onNewView
Description copied from interface:RequestCalled when the node received a new cluster view.- Returns:
trueif any of the request targets is not in the view.
-
onTimeout
protected void onTimeout()Description copied from class:AbstractRequestCalled when the timeout task scheduled withAbstractRequest.setTimeout(ScheduledExecutorService, long, TimeUnit)expires.- Specified by:
onTimeoutin classAbstractRequest<T>
-