ImplicitFlowControlCallback

public abstract class ImplicitFlowControlCallback extends UrlRequest.Callback
Known Direct Subclasses
Known Indirect Subclasses

An implementation of UrlRequest.Callback that takes away the difficulty of managing the request lifecycle away, and automatically proceeds to read the response entirely.

Public Constructor Summary

Public Method Summary

final void
onCanceled(UrlRequest request, UrlResponseInfo info)
Invoked if request was canceled via UrlRequest.cancel().
final void
onFailed(UrlRequest request, UrlResponseInfo info, CronetException error)
Invoked if request failed for any reason after UrlRequest.start().
final void
onReadCompleted(UrlRequest request, UrlResponseInfo info, ByteBuffer byteBuffer)
Invoked whenever part of the response body has been read.
final void
onRedirectReceived(UrlRequest request, UrlResponseInfo info, String newLocationUrl)
Invoked whenever a redirect is encountered.
final void
onResponseStarted(UrlRequest request, UrlResponseInfo info)
Invoked when the final set of headers, after all redirects, is received.
final void
onSucceeded(UrlRequest request, UrlResponseInfo info)
Invoked when request is completed successfully.

Protected Method Summary

abstract void
onBodyChunkRead(UrlResponseInfo info, ByteBuffer bodyChunk)
Invoked whenever part of the response body has been read.
abstract void
onCanceled(UrlResponseInfo info)
Invoked if request was canceled via UrlRequest.cancel().
abstract void
onFailed(UrlResponseInfo info, CronetException exception)
Invoked if request failed for any reason after UrlRequest.start().
abstract void
onResponseStarted(UrlResponseInfo info)
Invoked when the final set of headers, after all redirects, is received.
abstract void
onSucceeded(UrlResponseInfo info)
Invoked when request is completed successfully.
abstract boolean
shouldFollowRedirect(UrlResponseInfo info, String newLocationUrl)
Invoked whenever a redirect is encountered.

Inherited Method Summary

Public Constructors

public ImplicitFlowControlCallback ()

Public Methods

public final void onCanceled (UrlRequest request, UrlResponseInfo info)

Invoked if request was canceled via UrlRequest.cancel(). Once invoked, no other UrlRequest.Callback methods will be invoked. Default implementation takes no action.

Parameters
request Request that was canceled.
info Response information. May be null if no response was received.

public final void onFailed (UrlRequest request, UrlResponseInfo info, CronetException error)

Invoked if request failed for any reason after UrlRequest.start(). Once invoked, no other UrlRequest.Callback methods will be invoked. error provides information about the failure.

Parameters
request Request that failed.
info Response information. May be null if no response was received.
error information about error.

public final void onReadCompleted (UrlRequest request, UrlResponseInfo info, ByteBuffer byteBuffer)

Invoked whenever part of the response body has been read. Only part of the buffer may be populated, even if the entire response body has not yet been consumed. With the exception of onCanceled(), no other UrlRequest.Callback method will be invoked for the request, including onSucceeded() and onFailed(), until UrlRequest.read() is called to attempt to continue reading the response body.

Parameters
request Request that received data.
info Response information.
byteBuffer The buffer that was passed in to UrlRequest.read(), now containing the received data. The buffer's position is updated to the end of the received data. The buffer's limit is not changed.
Throws
Exception

public final void onRedirectReceived (UrlRequest request, UrlResponseInfo info, String newLocationUrl)

Invoked whenever a redirect is encountered. This will only be invoked between the call to UrlRequest.start() and onResponseStarted(). The body of the redirect response, if it has one, will be ignored. The redirect will not be followed until the URLRequest's UrlRequest.followRedirect() method is called, either synchronously or asynchronously.

Parameters
request Request being redirected.
info Response information.
newLocationUrl Location where request is redirected.
Throws
Exception

public final void onResponseStarted (UrlRequest request, UrlResponseInfo info)

Invoked when the final set of headers, after all redirects, is received. Will only be invoked once for each request. With the exception of onCanceled(), no other UrlRequest.Callback method will be invoked for the request, including onSucceeded() and onFailed(), until UrlRequest.read() is called to attempt to start reading the response body.

Parameters
request Request that started to get response.
info Response information.
Throws
Exception

public final void onSucceeded (UrlRequest request, UrlResponseInfo info)

Invoked when request is completed successfully. Once invoked, no other UrlRequest.Callback methods will be invoked.

Parameters
request Request that succeeded.
info Response information.

Protected Methods

protected abstract void onBodyChunkRead (UrlResponseInfo info, ByteBuffer bodyChunk)

Invoked whenever part of the response body has been read. Only part of the buffer may be populated, even if the entire response body has not yet been consumed. The buffer is ready for reading. Buffers are reused internally so the implementing class shouldn't store the buffer or use it anywhere else than in the implementation of this method.

Parameters
info Response information.
bodyChunk The buffer that contains the received data, flipped for reading.
Throws
Exception if an error occurs while processing a read completion. onFailed(UrlRequest, UrlResponseInfo, CronetException) will be called with the thrown exception set as the cause of the CallbackException.

protected abstract void onCanceled (UrlResponseInfo info)

Invoked if request was canceled via UrlRequest.cancel(). Once invoked, no other UrlRequest.Callback methods will be invoked.

Parameters
info Response information. May be null if no response was received.

protected abstract void onFailed (UrlResponseInfo info, CronetException exception)

Invoked if request failed for any reason after UrlRequest.start(). Once invoked, no other UrlRequest.Callback methods will be invoked. error provides information about the failure.

Parameters
info Response information. May be null if no response was received.
exception information about error.

protected abstract void onResponseStarted (UrlResponseInfo info)

Invoked when the final set of headers, after all redirects, is received. Will only be invoked once for each request. It's guaranteed that Cronet doesn't start reading the body until this method returns.

Parameters
info Response information.
Throws
Exception if an error occurs while processing response start. onFailed(UrlRequest, UrlResponseInfo, CronetException) will be called with the thrown exception set as the cause of the CallbackException.

protected abstract void onSucceeded (UrlResponseInfo info)

Invoked when request is completed successfully. Once invoked, no other UrlRequest.Callback methods will be invoked.

Parameters
info Response information.

protected abstract boolean shouldFollowRedirect (UrlResponseInfo info, String newLocationUrl)

Invoked whenever a redirect is encountered. This will only be invoked between the call to UrlRequest.start() and onResponseStarted(). The body of the redirect response, if it has one, will be ignored.

Parameters
info Response information.
newLocationUrl Location where request is redirected.
Returns
  • true if the redirect should be followed, false if the request should be canceled.
Throws
Exception if an error occurs while processing a redirect. onFailed(UrlRequest, UrlResponseInfo, CronetException) will be called with the thrown exception set as the cause of the CallbackException.