BidirectionalStream

public 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

public abstract class BidirectionalStream.Builder

Compilateur pour les BidirectionalStream.

public abstract class BidirectionalStream.Callback

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

Constructeurs publics

Méthodes publiques

abstract void

Annule le flux.

abstract void

Vide les écritures en attente.

abstract boolean

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

abstract void
read(ByteBuffer buffer)

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

abstract void

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

abstract void
write(ByteBuffer buffer, boolean endOfStream)

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

Constructeurs publics

BidirectionalStream

public BidirectionalStream()

Méthodes publiques

annuler

public abstract void cancel()

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

public abstract void flush()

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

public abstract boolean isDone()

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

Renvoie
boolean

true si le flux a été démarré et est maintenant 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

public abstract void read(ByteBuffer buffer)

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

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

public abstract void start()

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

public abstract void write(ByteBuffer buffer, boolean endOfStream)

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

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.

boolean endOfStream

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é.