BidirectionalStream

abstract class BidirectionalStream


Clase para el envío y la recepción bidireccionales de datos a través de conexiones HTTP/2 o QUIC. Se crea con 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

Compilador para BidirectionalStream.

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

Constructores públicos

Funciones públicas

abstract Unit

Cancela la transmisión.

abstract Unit

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 Unit
read(buffer: ByteBuffer!)

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

abstract Unit

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

abstract Unit
write(buffer: ByteBuffer!, endOfStream: Boolean)

Agrega datos para escribirlos en la transmisión.

Constructores públicos

BidirectionalStream

BidirectionalStream()

Funciones públicas

cancelar

abstract fun cancel(): Unit

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

abstract fun flush(): Unit

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

abstract fun isDone(): Boolean

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

abstract fun read(buffer: ByteBuffer!): Unit

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
buffer: ByteBuffer!

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

abstract fun start(): Unit

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

abstract fun write(buffer: ByteBuffer!, endOfStream: Boolean): Unit

Agrega datos para escribirlos 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
buffer: ByteBuffer!

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.

endOfStream: Boolean

Si es true, 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ó.