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, responseCollector
Fields inherited from interface org.infinispan.remoting.transport.impl.Request
NO_REQUEST_ID
-
Constructor Summary
ConstructorDescriptionMultiTargetRequest
(ResponseCollector<T> responseCollector, long requestId, RequestRepository repository, Collection<Address> targets, Address excluded, JGroupsMetricsManager metricsCollector) -
Method Summary
Modifier and TypeMethodDescriptionprotected RequestTracker
getTarget
(int i) protected int
boolean
Called when the node received a new cluster view.void
onResponse
(Address sender, Response response) Called when a response is received for this response.protected void
Called 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, setTimeout
Methods 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, exceptionallyAsync, exceptionallyAsync, exceptionallyCompose, exceptionallyComposeAsync, exceptionallyComposeAsync, 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, whenCompleteAsync
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.concurrent.CompletionStage
acceptEither, acceptEitherAsync, acceptEitherAsync, applyToEither, applyToEitherAsync, applyToEitherAsync, exceptionally, exceptionallyAsync, exceptionallyAsync, exceptionallyCompose, exceptionallyComposeAsync, exceptionallyComposeAsync, 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
, ornull
if a response was already added for targeti
.
-
onResponse
Description copied from interface:Request
Called when a response is received for this response. -
onNewView
Description copied from interface:Request
Called when the node received a new cluster view.- Returns:
true
if any of the request targets is not in the view.
-
onTimeout
protected void onTimeout()Description copied from class:AbstractRequest
Called when the timeout task scheduled withAbstractRequest.setTimeout(ScheduledExecutorService, long, TimeUnit)
expires.- Specified by:
onTimeout
in classAbstractRequest<T>
-