BidirectionalStream.Callback

public abstract class BidirectionalStream.Callback


Callback class used to receive callbacks from a BidirectionalStream.

Summary

Public constructors

Public methods

void

Invoked if the stream was canceled via cancel.

abstract void
onFailed(
    BidirectionalStream stream,
    UrlResponseInfo info,
    CronetException error
)

Invoked if the stream failed for any reason after start.

abstract void
onReadCompleted(
    BidirectionalStream stream,
    UrlResponseInfo info,
    ByteBuffer buffer,
    boolean endOfStream
)

Invoked when data is read into the buffer passed to read().

abstract void

Invoked when initial response headers are received.

void

Invoked when trailers are received before closing the stream.

abstract void

Invoked when the stream is ready for reading and writing.

abstract void

Invoked when there is no data to be read or written and the stream is closed successfully remotely and locally.

abstract void
onWriteCompleted(
    BidirectionalStream stream,
    UrlResponseInfo info,
    ByteBuffer buffer,
    boolean endOfStream
)

Invoked when the entire ByteBuffer passed to write() is sent.

Public constructors

Callback

public Callback()

Public methods

onCanceled

public void onCanceled(BidirectionalStream stream, UrlResponseInfo info)

Invoked if the stream was canceled via cancel. Once invoked, no further BidirectionalStream.Callback methods will be invoked. Default implementation takes no action.

Parameters
BidirectionalStream stream

the stream that was canceled

UrlResponseInfo info

the response information. May be null if no response was received.

onFailed

public abstract void onFailed(
    BidirectionalStream stream,
    UrlResponseInfo info,
    CronetException error
)

Invoked if the stream failed for any reason after start. HTTP/2 error codes are mapped to getCronetInternalErrorCode codes. Once invoked, no further BidirectionalStream.Callback methods will be invoked.

Parameters
BidirectionalStream stream

the stream which has failed

UrlResponseInfo info

the response information. May be null if no response was received.

CronetException error

information about the failure

onReadCompleted

public abstract void onReadCompleted(
    BidirectionalStream stream,
    UrlResponseInfo info,
    ByteBuffer buffer,
    boolean endOfStream
)

Invoked when data is read into the buffer passed to read(). Only part of the buffer may be populated. To continue reading, call read(). It may be invoked after onResponseTrailersReceived(), if there was pending read data before trailers were received.

Parameters
BidirectionalStream stream

the stream on which the read completed

UrlResponseInfo info

the response information

ByteBuffer buffer

the buffer that was passed to read(), now containing the received data. The buffer's limit is not changed. The buffer's position is set to the end of the received data. If position is not updated, it means the remote side has signaled that it will send no more data.

boolean endOfStream

if true, this is the last read data, remote will not send more data, and the read side is closed.

onResponseHeadersReceived

public abstract void onResponseHeadersReceived(
    BidirectionalStream stream,
    UrlResponseInfo info
)

Invoked when initial response headers are received. Headers are available from info.getAllHeaders(). Consumer may call read() to start reading. Consumer may call write() to start writing or close the stream.

Parameters
BidirectionalStream stream

the stream on which response headers were received.

UrlResponseInfo info

the response information.

onResponseTrailersReceived

public void onResponseTrailersReceived(
    BidirectionalStream stream,
    UrlResponseInfo info,
    UrlResponseInfo.HeaderBlock trailers
)

Invoked when trailers are received before closing the stream. Only invoked when server sends trailers, which it may not. May be invoked while there is read data remaining in local buffer. Default implementation takes no action.

Parameters
BidirectionalStream stream

the stream on which response trailers were received

UrlResponseInfo info

the response information

UrlResponseInfo.HeaderBlock trailers

the trailers received

onStreamReady

public abstract void onStreamReady(BidirectionalStream stream)

Invoked when the stream is ready for reading and writing. Consumer may call read() to start reading data. Consumer may call write() to start writing data.

Parameters
BidirectionalStream stream

the stream that is ready.

onSucceeded

public abstract void onSucceeded(BidirectionalStream stream, UrlResponseInfo info)

Invoked when there is no data to be read or written and the stream is closed successfully remotely and locally. Once invoked, no further BidirectionalStream.Callback methods will be invoked.

Parameters
BidirectionalStream stream

the stream which is closed successfully

UrlResponseInfo info

the response information

onWriteCompleted

public abstract void onWriteCompleted(
    BidirectionalStream stream,
    UrlResponseInfo info,
    ByteBuffer buffer,
    boolean endOfStream
)

Invoked when the entire ByteBuffer passed to write() is sent. The buffer's position is updated to be the same as the buffer's limit. The buffer's limit is not changed. To continue writing, call write().

Parameters
BidirectionalStream stream

the stream on which the write completed

UrlResponseInfo info

the response information

ByteBuffer buffer

the buffer that was passed to write(). The buffer's position is set to the buffer's limit. The buffer's limit is not changed.

boolean endOfStream

the endOfStream flag that was passed to the corresponding write(). If true, the write side is closed.