BidirectionalStream

public abstract class BidirectionalStream


Clase para el envío y la recepción bidireccionales de datos a través de conexiones HTTP/2 o QUIC. Creada por Builder.

Nota: Existen restricciones de ordenamiento en los métodos de BidirectionalStream. Consulta los métodos individuales para obtener una descripción de las restricciones.

Resumen

Tipos anidados

public abstract class BidirectionalStream.Builder

Compilador para BidirectionalStreams.

public abstract class BidirectionalStream.Callback

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

Constructores públicos

Métodos públicos

abstract void

Cancela la transmisión.

abstract void

Vacía las escrituras pendientes.

abstract boolean

Muestra true si la transmisión se inició correctamente y ahora está lista (se completó, se canceló o falló).

abstract void
read(ByteBuffer buffer)

Lee datos de la transmisión en el búfer proporcionado.

abstract void

Inicia la transmisión. Todas las devoluciones de llamada van al argumento callback que se pasa al constructor de BidirectionalStream.Builder.

abstract void
write(ByteBuffer buffer, boolean endOfStream)

Agrega datos para escribir en la transmisión.

Constructores públicos

BidirectionalStream

public BidirectionalStream()

Métodos públicos

cancelar

public abstract void cancel()

Cancela la transmisión. Se puede llamar en cualquier momento después de start. Se invocará onCanceled() cuando se complete la cancelación y no se invocarán más métodos de devolución de llamada. Si la transmisión se completó o no se inició, llamar a cancel() no tiene ningún efecto y no se invocará onCanceled(). Si el Executor que se pasó durante la construcción de BidirectionalStream ejecuta tareas en un solo subproceso y se llama a cancel() en ese subproceso, no se invocará ningún método de objeto de escucha (además de onCanceled()) después de que se llame a cancel(). De lo contrario, se puede invocar como máximo un método de devolución de llamada después de que se complete cancel().

vaciar

public abstract void flush()

Vacía las escrituras pendientes. Este método no se debe invocar antes de onStreamReady(). Para las write()s retrasadas anteriormente, se invocará un onWriteCompleted() correspondiente cuando se envíe el búfer.

isDone

public abstract boolean isDone()

Muestra true si la transmisión se inició correctamente y ahora está lista (se completó, se canceló o falló).

Muestra
boolean

true si la transmisión se inició correctamente y ahora está lista (se completó, se canceló o falló). De lo contrario, muestra false para indicar que la transmisión aún no se inició o está en curso.

read

public abstract void read(ByteBuffer buffer)

Lee datos de la transmisión en el búfer proporcionado. Solo se puede llamar como máximo una vez en respuesta a cada invocación de los métodos onStreamReady()/ onResponseHeadersReceived() y onReadCompleted() de Callback. Cada llamada generará una invocación de uno de los Callback's onReadCompleted() método si se leen datos, o su onFailed() método si hay un error. Se inicia un intento de leer datos en buffer a partir de buffer.position(). Se leen como máximo buffer.remaining() bytes. buffer.position() se actualiza cuando se invoca onReadCompleted() para indicar cuántos datos se leyeron.

Parámetros
ByteBuffer buffer

el ByteBuffer en el que se leerán los datos. Debe ser un ByteBuffer directo. El incorporador no debe leer ni modificar la posición, el límite ni los datos del búfer entre su posición y límite hasta que se invoquen onReadCompleted(), onCanceled() o onFailed().

start

public abstract void start()

Inicia la transmisión. Todas las devoluciones de llamada van al argumento callback que se pasa al constructor de BidirectionalStream.Builder. Solo se debe llamar una vez.

write

public abstract void write(ByteBuffer buffer, boolean endOfStream)

Agrega datos para escribir en la transmisión. Los datos se enviarán solo después de que se llame a flush(). Cada llamada generará una invocación de uno de los métodos onWriteCompleted() de Callback si se envían datos, o su método onFailed() si hay un error.

Se inicia un intento de escribir datos desde buffer a partir de buffer.position(). Se escribirán buffer.remaining() bytes. Se invocará onWriteCompleted() solo cuando se escriba el ByteBuffer completo.

Parámetros
ByteBuffer buffer

el ByteBuffer desde el que se escribirán los datos. Debe ser un ByteBuffer directo. El incorporador no debe leer ni modificar la posición, el límite ni los datos del búfer entre su posición y límite hasta que se invoquen onWriteCompleted(), onCanceled() o onFailed(). Puede estar vacío cuando endOfStream es true.

boolean endOfStream

si es true, entonces buffer es el último búfer que se escribirá y, una vez escrito, la transmisión se cierra desde el cliente, lo que genera una transmisión semicerrada o una transmisión completamente cerrada si el extremo remoto ya se cerró.