public class ResumableAsyncHandler extends java.lang.Object implements AsyncHandler<Response>
AsyncHandler
which support resumable download, e.g when used with an ResumableIOExceptionFilter
,
this handler can resume the download operation at the point it was before the interruption occurred. This prevent having to
download the entire file again. It's the responsibility of the ResumableAsyncHandler
to track how many bytes has been transferred and to properly adjust the file's write position.
Beware that it registers a shutdown hook, that will cause a ClassLoader leak when used in an appserver and only redeploying the application.
Modifier and Type | Class and Description |
---|---|
static interface |
ResumableAsyncHandler.ResumableProcessor
An interface to implement in order to manage the way the incomplete file management are handled.
|
AsyncHandler.State
Constructor and Description |
---|
ResumableAsyncHandler() |
ResumableAsyncHandler(AsyncHandler<Response> decoratedAsyncHandler) |
ResumableAsyncHandler(boolean accumulateBody) |
ResumableAsyncHandler(long byteTransferred) |
ResumableAsyncHandler(long byteTransferred,
AsyncHandler<Response> decoratedAsyncHandler) |
ResumableAsyncHandler(ResumableAsyncHandler.ResumableProcessor resumableProcessor) |
ResumableAsyncHandler(ResumableAsyncHandler.ResumableProcessor resumableProcessor,
boolean accumulateBody) |
Modifier and Type | Method and Description |
---|---|
Request |
adjustRequestRange(Request request)
Invoke this API if you want to set the Range header on your
Request based on the last valid bytes
position. |
AsyncHandler.State |
onBodyPartReceived(HttpResponseBodyPart bodyPart)
Invoked as soon as some response body part are received.
|
Response |
onCompleted()
Invoked once the HTTP response processing is finished.
|
AsyncHandler.State |
onHeadersReceived(io.netty.handler.codec.http.HttpHeaders headers)
Invoked as soon as the HTTP headers have been received.
|
AsyncHandler.State |
onStatusReceived(HttpResponseStatus status)
Invoked as soon as the HTTP status line has been received
|
void |
onThrowable(java.lang.Throwable t)
Invoked when an unexpected exception occurs during the processing of the response.
|
AsyncHandler.State |
onTrailingHeadersReceived(io.netty.handler.codec.http.HttpHeaders headers)
Invoked when trailing headers have been received.
|
ResumableAsyncHandler |
setResumableListener(ResumableListener resumableListener)
Set a
ResumableListener |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
onConnectionOffer, onConnectionPoolAttempt, onConnectionPooled, onHostnameResolutionAttempt, onHostnameResolutionFailure, onHostnameResolutionSuccess, onRequestSend, onRetry, onTcpConnectAttempt, onTcpConnectFailure, onTcpConnectSuccess, onTlsHandshakeAttempt, onTlsHandshakeFailure, onTlsHandshakeSuccess
public ResumableAsyncHandler(long byteTransferred)
public ResumableAsyncHandler(boolean accumulateBody)
public ResumableAsyncHandler()
public ResumableAsyncHandler(AsyncHandler<Response> decoratedAsyncHandler)
public ResumableAsyncHandler(long byteTransferred, AsyncHandler<Response> decoratedAsyncHandler)
public ResumableAsyncHandler(ResumableAsyncHandler.ResumableProcessor resumableProcessor)
public ResumableAsyncHandler(ResumableAsyncHandler.ResumableProcessor resumableProcessor, boolean accumulateBody)
public AsyncHandler.State onStatusReceived(HttpResponseStatus status) throws java.lang.Exception
AsyncHandler
onStatusReceived
in interface AsyncHandler<Response>
status
- the status code and test of the responseAsyncHandler.State
telling to CONTINUE or ABORT the current processing.java.lang.Exception
- if something wrong happenspublic void onThrowable(java.lang.Throwable t)
AsyncHandler
onThrowable
in interface AsyncHandler<Response>
t
- a Throwable
public AsyncHandler.State onBodyPartReceived(HttpResponseBodyPart bodyPart) throws java.lang.Exception
AsyncHandler
onBodyPartReceived
in interface AsyncHandler<Response>
bodyPart
- response's body part.AsyncHandler.State
telling to CONTINUE or ABORT the current processing. Aborting will also close the connection.java.lang.Exception
- if something wrong happenspublic Response onCompleted() throws java.lang.Exception
AsyncHandler
onCompleted
in interface AsyncHandler<Response>
Future
java.lang.Exception
- if something wrong happenspublic AsyncHandler.State onHeadersReceived(io.netty.handler.codec.http.HttpHeaders headers) throws java.lang.Exception
AsyncHandler
onHeadersReceived
in interface AsyncHandler<Response>
headers
- the HTTP headers.AsyncHandler.State
telling to CONTINUE or ABORT the current processing.java.lang.Exception
- if something wrong happenspublic AsyncHandler.State onTrailingHeadersReceived(io.netty.handler.codec.http.HttpHeaders headers)
AsyncHandler
onTrailingHeadersReceived
in interface AsyncHandler<Response>
headers
- the trailing HTTP headers.AsyncHandler.State
telling to CONTINUE or ABORT the current processing.public Request adjustRequestRange(Request request)
Request
based on the last valid bytes
position.public ResumableAsyncHandler setResumableListener(ResumableListener resumableListener)
ResumableListener
resumableListener
- a ResumableListener
Copyright © 2018. All Rights Reserved.