BidirectionalStream

abstract class BidirectionalStream


Classe permettant d'envoyer et de recevoir des données de manière bidirectionnelle via des connexions HTTP/2 ou QUIC. Créée par Builder.

Remarque : Les méthodes de BidirectionalStream sont soumises à des restrictions d'ordre. Veuillez consulter les méthodes individuelles pour obtenir une description des restrictions.

Résumé

Types imbriqués

Compilateur pour BidirectionalStream.

Classe de rappel utilisée pour recevoir des rappels d'un BidirectionalStream.

Constructeurs publics

Fonctions publiques

abstract Unit

Annule le flux.

abstract Unit

Vide les écritures en attente.

abstract Boolean

Renvoie true si le flux a été démarré et est terminé (réussi, annulé ou échoué).

abstract Unit
read(buffer: ByteBuffer!)

Lit les données du flux dans le tampon fourni.

abstract Unit

Démarre le flux. Tous les rappels sont envoyés à l'argument callback transmis au constructeur de BidirectionalStream.Builder.

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

Ajoute des données à écrire dans le flux.

Constructeurs publics

BidirectionalStream

BidirectionalStream()

Fonctions publiques

annuler

abstract fun cancel(): Unit

Annule le flux. Peut être appelé à tout moment après start. onCanceled() est appelé lorsque l'annulation est terminée et aucune autre méthode de rappel n'est appelée. Si le flux est terminé ou n'a pas démarré, l'appel de cancel() n'a aucun effet et onCanceled() n'est pas appelé. Si l'Executor transmis lors de la construction de BidirectionalStream exécute des tâches sur un seul thread et que cancel() est appelé sur ce thread, aucune méthode d'écouteur (à l'exception de onCanceled()) n'est appelée après l'appel de cancel(). Sinon, au maximum une méthode de rappel peut être appelée une fois cancel() terminé.

vider

abstract fun flush(): Unit

Vide les écritures en attente. Cette méthode ne doit pas être appelée avant onStreamReady(). Pour les write() précédemment retardés, un onWriteCompleted() correspondant est appelé lorsque le tampon est envoyé.

isDone

abstract fun isDone(): Boolean

Renvoie true si le flux a été démarré et est terminé (réussi, annulé ou échoué).

Renvoie
Boolean

true si le flux a été démarré et est terminé (réussi, annulé ou échoué). Sinon, renvoie false pour indiquer que le flux n'a pas encore démarré ou est en cours.

read

abstract fun read(buffer: ByteBuffer!): Unit

Lit les données du flux dans le tampon fourni. Ne peut être appelé qu'une seule fois au maximum en réponse à chaque appel des méthodes onStreamReady()/ onResponseHeadersReceived() et onReadCompleted() du Callback. Chaque appel entraîne l'appel de l'une des méthodes onReadCompleted() du Callback si des données sont lues, ou de sa méthode onFailed() en cas d'erreur. Une tentative de lecture des données dans buffer à partir de buffer.position() est lancée. Au maximum, buffer.remaining() octets sont lus. buffer.position() est mis à jour lors de l'appel de onReadCompleted() pour indiquer la quantité de données lues.

Paramètres
buffer: ByteBuffer!

Le ByteBuffer dans lequel lire les données. Doit être un ByteBuffer direct. L'intégrateur ne doit pas lire ni modifier la position, la limite ou les données du tampon entre sa position et sa limite tant que onReadCompleted(), onCanceled() ou onFailed() ne sont pas appelés.

démarrer

abstract fun start(): Unit

Démarre le flux. Tous les rappels sont envoyés à l'argument callback transmis au constructeur de BidirectionalStream.Builder. Ne doit être appelé qu'une seule fois.

write

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

Ajoute des données à écrire dans le flux. Les données ne sont envoyées qu'après l'appel de flush(). Chaque appel entraîne l'appel de l'une des méthodes onWriteCompleted() du Callback si des données sont envoyées, ou de sa méthode onFailed() en cas d'erreur.

Une tentative d'écriture des données à partir de buffer à partir de buffer.position() est lancée. buffer.remaining() octets sont écrits. onWriteCompleted() n'est appelé que lorsque le ByteBuffer complet est écrit.

Paramètres
buffer: ByteBuffer!

Le ByteBuffer à partir duquel écrire les données. Doit être un ByteBuffer direct. L'intégrateur ne doit pas lire ni modifier la position, la limite ou les données du tampon entre sa position et sa limite tant que onWriteCompleted(), onCanceled() ou onFailed() ne sont pas appelés. Peut être vide lorsque endOfStream est true.

endOfStream: Boolean

Si true, buffer est le dernier tampon à écrire. Une fois écrit, le flux est fermé côté client, ce qui entraîne un flux semi-fermé ou un flux complètement fermé si le côté distant est déjà fermé.