Package com.yahoo.jdisc.handler
Class FutureResponse
- All Implemented Interfaces:
ResponseHandler
,CompletionStage<Response>
,Future<Response>
This class provides an implementation of
ResponseHandler
that allows you to wait for a Response
to
be returned.- Author:
- Simon Thoresen Hult
-
Nested Class Summary
Nested classes/interfaces inherited from class java.util.concurrent.CompletableFuture
CompletableFuture.AsynchronousCompletionTask
-
Constructor Summary
ConstructorDescriptionConstructs a new FutureResponse that returns aNullContent
whenhandleResponse(Response)
is invoked.FutureResponse
(ContentChannel content) Constructs a new FutureResponse that returns the givenContentChannel
whenhandleResponse(Response)
is invoked.FutureResponse
(ResponseHandler handler) Constructs a new FutureResponse that calls the givenResponseHandler
whenhandleResponse(Response)
is invoked. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addListener
(Runnable r, Executor e) final boolean
cancel
(boolean mayInterruptIfRunning) handleResponse
(Response response) This method will process the givenResponse
and return aContentChannel
into which the caller can write the Response's content.final boolean
Methods inherited from class java.util.concurrent.CompletableFuture
acceptEither, acceptEitherAsync, acceptEitherAsync, allOf, anyOf, applyToEither, applyToEitherAsync, applyToEitherAsync, complete, completeAsync, completeAsync, completedFuture, completedStage, completeExceptionally, completeOnTimeout, copy, defaultExecutor, delayedExecutor, delayedExecutor, exceptionally, exceptionallyAsync, exceptionallyAsync, exceptionallyCompose, exceptionallyComposeAsync, exceptionallyComposeAsync, failedFuture, failedStage, get, get, getNow, getNumberOfDependents, handle, handleAsync, handleAsync, 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
-
Constructor Details
-
FutureResponse
public FutureResponse()Constructs a new FutureResponse that returns a
NullContent
whenhandleResponse(Response)
is invoked. -
FutureResponse
Constructs a new FutureResponse that returns the given
ContentChannel
whenhandleResponse(Response)
is invoked.- Parameters:
content
- The content channel for the Response.
-
FutureResponse
Constructs a new FutureResponse that calls the given
ResponseHandler
whenhandleResponse(Response)
is invoked.- Parameters:
handler
- The ResponseHandler to invoke.
-
-
Method Details
-
addListener
-
handleResponse
Description copied from interface:ResponseHandler
This method will process the givenResponse
and return aContentChannel
into which the caller can write the Response's content.- Specified by:
handleResponse
in interfaceResponseHandler
- Parameters:
response
- the Response to handle- Returns:
- the ContentChannel to write the Response content to. Notice that the ContentChannel holds a Container reference, so failure to close this will prevent the Container from ever shutting down.
-
cancel
public final boolean cancel(boolean mayInterruptIfRunning) -
isCancelled
public final boolean isCancelled()- Specified by:
isCancelled
in interfaceFuture<Response>
- Overrides:
isCancelled
in classCompletableFuture<Response>
-