Class FutureResponseListener
java.lang.Object
org.eclipse.jetty.client.api.Response.Listener.Adapter
org.eclipse.jetty.client.util.BufferingResponseListener
org.eclipse.jetty.client.util.FutureResponseListener
- All Implemented Interfaces:
Future<ContentResponse>, EventListener, Response.AsyncContentListener, Response.BeginListener, Response.CompleteListener, Response.ContentListener, Response.DemandedContentListener, Response.FailureListener, Response.HeaderListener, Response.HeadersListener, Response.Listener, Response.ResponseListener, Response.SuccessListener
public class FutureResponseListener
extends BufferingResponseListener
implements Future<ContentResponse>
A
BufferingResponseListener that is also a Future, to allow applications
to block (indefinitely or for a timeout) until onComplete(Result) is called,
or to abort the request/response conversation.
Typical usage is:
Request request = httpClient.newRequest(...)...; FutureResponseListener listener = new FutureResponseListener(request); request.send(listener); // Asynchronous send ContentResponse response = listener.get(5, TimeUnit.SECONDS); // Timed block
-
Nested Class Summary
Nested classes/interfaces inherited from interface Response.Listener
Response.Listener.Adapter -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate Throwableprivate final CountDownLatchprivate final Requestprivate ContentResponse -
Constructor Summary
ConstructorsConstructorDescriptionFutureResponseListener(Request request) FutureResponseListener(Request request, int maxLength) -
Method Summary
Modifier and TypeMethodDescriptionbooleancancel(boolean mayInterruptIfRunning) get()private ContentResponsebooleanbooleanisDone()voidonComplete(Result result) Callback method invoked when the request and the response have been processed, either successfully or not.Methods inherited from class BufferingResponseListener
getContent, getContentAsInputStream, getContentAsString, getContentAsString, getContentAsString, getEncoding, getMediaType, onContent, onHeadersMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Response.AsyncContentListener
onContentMethods inherited from interface Response.ContentListener
onContentMethods inherited from interface Response.DemandedContentListener
onBeforeContentMethods inherited from interface Response.Listener
onBegin, onFailure, onHeader, onSuccess
-
Field Details
-
latch
-
request
-
response
-
failure
-
cancelled
private volatile boolean cancelled
-
-
Constructor Details
-
FutureResponseListener
-
FutureResponseListener
-
-
Method Details
-
getRequest
-
onComplete
Description copied from interface:Response.CompleteListenerCallback method invoked when the request and the response have been processed, either successfully or not.The
resultparameter contains the request, the response, and eventual failures.Requests may complete after response, for example in case of big uploads that are discarded or read asynchronously by the server. This method is always invoked after
Response.SuccessListener.onSuccess(Response)orResponse.FailureListener.onFailure(Response, Throwable), and only when request indicates that it is completed.- Specified by:
onCompletein interfaceResponse.CompleteListener- Specified by:
onCompletein interfaceResponse.Listener- Specified by:
onCompletein classBufferingResponseListener- Parameters:
result- the result of the request / response exchange
-
cancel
public boolean cancel(boolean mayInterruptIfRunning) - Specified by:
cancelin interfaceFuture<ContentResponse>
-
isCancelled
public boolean isCancelled()- Specified by:
isCancelledin interfaceFuture<ContentResponse>
-
isDone
public boolean isDone()- Specified by:
isDonein interfaceFuture<ContentResponse>
-
get
- Specified by:
getin interfaceFuture<ContentResponse>- Throws:
InterruptedExceptionExecutionException
-
get
public ContentResponse get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException - Specified by:
getin interfaceFuture<ContentResponse>- Throws:
InterruptedExceptionExecutionExceptionTimeoutException
-
getResult
- Throws:
ExecutionException
-