BidirectionalStream.Callback

public abstract class BidirectionalStream.Callback


Clase de devolución de llamada que se usa para recibir devoluciones de llamada de un BidirectionalStream.

Resumen

Constructores públicos

Métodos públicos

void

Se invoca si la transmisión se canceló a través de cancel.

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

Se invoca si la transmisión falla por algún motivo después de start.

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

Se invoca cuando se leen datos en el búfer que se pasa a read().

abstract void

Se invoca cuando se reciben los encabezados de respuesta iniciales.

void

Se invoca cuando se reciben avances antes de cerrar la transmisión.

abstract void

Se invoca cuando la transmisión está lista para leer y escribir.

abstract void

Se invoca cuando no hay datos para leer o escribir, y la transmisión se cierra correctamente de forma remota y local.

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

Se invoca cuando se envía todo el ByteBuffer que se pasa a write().

Constructores públicos

Callback

public Callback()

Métodos públicos

onCanceled

public void onCanceled(BidirectionalStream stream, UrlResponseInfo info)

Se invoca si la transmisión se canceló a través de cancel. Una vez que se invoca, no se invoca ningún otro método BidirectionalStream.Callback. La implementación predeterminada no realiza ninguna acción.

Parámetros
BidirectionalStream stream

la transmisión que se canceló

UrlResponseInfo info

la información de la respuesta. Puede ser null si no se recibió ninguna respuesta.

onFailed

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

Se invoca si la transmisión falla por algún motivo después de start. Los códigos de error de HTTP/2 se asignan a códigos getCronetInternalErrorCode. Una vez que se invoca, no se invoca ningún otro método BidirectionalStream.Callback.

Parámetros
BidirectionalStream stream

la transmisión que falló

UrlResponseInfo info

la información de la respuesta. Puede ser null si no se recibió ninguna respuesta.

CronetException error

información sobre la falla

onReadCompleted

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

Se invoca cuando se leen datos en el búfer que se pasa a read(). Solo se puede propagar parte del búfer. Para continuar leyendo, llama a read(). Se puede invocar después de onResponseTrailersReceived(), si había datos de lectura pendientes antes de que se recibieran los avances.

Parámetros
BidirectionalStream stream

la transmisión en la que se completó la lectura

UrlResponseInfo info

la información de la respuesta

ByteBuffer buffer

el búfer que se pasó a read(), que ahora contiene los datos recibidos. No se cambia el límite del búfer. La posición del búfer se establece al final de los datos recibidos. Si no se actualiza la posición, significa que el lado remoto indicó que no enviará más datos.

boolean endOfStream

si es verdadero, estos son los últimos datos leídos, el extremo remoto no enviará más datos y se cierra el lado de lectura.

onResponseHeadersReceived

public abstract void onResponseHeadersReceived(
    BidirectionalStream stream,
    UrlResponseInfo info
)

Se invoca cuando se reciben los encabezados de respuesta iniciales. Los encabezados están disponibles en info.getAllHeaders(). El consumidor puede llamar a read() para comenzar a leer. El consumidor puede llamar a write() para comenzar a escribir o cerrar la transmisión.

Parámetros
BidirectionalStream stream

la transmisión en la que se recibieron los encabezados de respuesta

UrlResponseInfo info

la información de la respuesta

onResponseTrailersReceived

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

Se invoca cuando se reciben avances antes de cerrar la transmisión. Solo se invoca cuando el servidor envía avances, lo que puede no hacer. Se puede invocar mientras queden datos de lectura en el búfer local. La implementación predeterminada no realiza ninguna acción.

Parámetros
BidirectionalStream stream

la transmisión en la que se recibieron los avances de respuesta

UrlResponseInfo info

la información de la respuesta

UrlResponseInfo.HeaderBlock trailers

los avances recibidos

onStreamReady

public abstract void onStreamReady(BidirectionalStream stream)

Se invoca cuando la transmisión está lista para leer y escribir. El consumidor puede llamar a read() para comenzar a leer datos. El consumidor puede llamar a write() para comenzar a escribir datos.

Parámetros
BidirectionalStream stream

la transmisión que está lista

onSucceeded

public abstract void onSucceeded(BidirectionalStream stream, UrlResponseInfo info)

Se invoca cuando no hay datos para leer o escribir, y la transmisión se cierra correctamente de forma remota y local. Una vez que se invoca, no se invoca ningún otro método BidirectionalStream.Callback.

Parámetros
BidirectionalStream stream

la transmisión que se cerró correctamente

UrlResponseInfo info

la información de la respuesta

onWriteCompleted

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

Se invoca cuando se envía todo el ByteBuffer que se pasa a write(). La posición del búfer se actualiza para que sea la misma que el límite del búfer. No se cambia el límite del búfer. Para continuar escribiendo, llama a write().

Parámetros
BidirectionalStream stream

la transmisión en la que se completó la escritura

UrlResponseInfo info

la información de la respuesta

ByteBuffer buffer

el búfer que se pasó a write(). La posición del búfer se establece en el límite del búfer. No se cambia el límite del búfer.

boolean endOfStream

la marca endOfStream que se pasó al write() correspondiente. Si es verdadero, se cierra el lado de escritura.