BidirectionalStream

public abstract class BidirectionalStream


Klasse für das bidirektionale Senden und Empfangen von Daten über HTTP/2- oder QUIC-Verbindungen. Erstellt von Builder.

Hinweis: Für Methoden von BidirectionalStream gelten Einschränkungen hinsichtlich der Reihenfolge. Weitere Informationen finden Sie in den Beschreibungen der einzelnen Methoden.

Zusammenfassung

Verschachtelte Typen

public abstract class BidirectionalStream.Builder

Builder für BidirectionalStreams.

public abstract class BidirectionalStream.Callback

Callback-Klasse zum Empfangen von Callbacks von einem BidirectionalStream.

Öffentliche Konstruktoren

Öffentliche Methoden

abstract void

Bricht den Stream ab.

abstract void

Überträgt ausstehende Schreibvorgänge.

abstract boolean

Gibt true zurück, wenn der Stream erfolgreich gestartet wurde und jetzt abgeschlossen ist (erfolgreich, abgebrochen oder fehlgeschlagen).

abstract void
read(ByteBuffer buffer)

Liest Daten aus dem Stream in den angegebenen Puffer.

abstract void

Startet den Stream. Alle Callbacks werden an das callback-Argument gesendet, das an den Konstruktor von BidirectionalStream.Builder übergeben wurde.

abstract void
write(ByteBuffer buffer, boolean endOfStream)

Fügt Daten hinzu, die in den Stream geschrieben werden sollen.

Öffentliche Konstruktoren

BidirectionalStream

public BidirectionalStream()

Öffentliche Methoden

Abbrechen

public abstract void cancel()

Bricht den Stream ab. Kann jederzeit nach start aufgerufen werden. onCanceled() wird aufgerufen, wenn der Abbruch abgeschlossen ist. Es werden keine weiteren Callback-Methoden aufgerufen. Wenn der Stream abgeschlossen ist oder nicht gestartet wurde, hat der Aufruf von cancel() keine Auswirkungen und onCanceled() wird nicht aufgerufen. Wenn der während der BidirectionalStream-Erstellung übergebene Executor Aufgaben in einem einzelnen Thread ausführt und cancel() in diesem Thread aufgerufen wird, werden nach dem Aufruf von cancel() keine Listener-Methoden (außer onCanceled()) aufgerufen. Andernfalls kann nach Abschluss von cancel() höchstens eine Callback-Methode aufgerufen werden.

Leeren

public abstract void flush()

Überträgt ausstehende Schreibvorgänge. Diese Methode sollte nicht vor onStreamReady() aufgerufen werden. Bei zuvor verzögerten write()-Vorgängen wird ein entsprechendes onWriteCompleted() aufgerufen, wenn der Puffer gesendet wird.

isDone

public abstract boolean isDone()

Gibt true zurück, wenn der Stream erfolgreich gestartet wurde und jetzt abgeschlossen ist (erfolgreich, abgebrochen oder fehlgeschlagen).

Gibt Folgendes zurück:
boolean

true, wenn der Stream erfolgreich gestartet wurde und jetzt abgeschlossen ist (erfolgreich, abgebrochen oder fehlgeschlagen). Andernfalls wird false zurückgegeben, um anzugeben, dass der Stream noch nicht gestartet wurde oder gerade ausgeführt wird.

Lesen

public abstract void read(ByteBuffer buffer)

Liest Daten aus dem Stream in den angegebenen Puffer. Kann höchstens einmal als Reaktion auf jeden Aufruf der Methoden onStreamReady()/ onResponseHeadersReceived() und onReadCompleted() des Callback aufgerufen werden. Bei jedem Aufruf wird die Methode Callback des onReadCompleted() aufgerufen, wenn Daten gelesen werden, oder die Methode onFailed(), wenn ein Fehler auftritt. Es wird versucht, Daten ab buffer.position() in buffer zu lesen. Es werden höchstens buffer.remaining() Byte gelesen. buffer.position() wird beim Aufruf von onReadCompleted() aktualisiert, um anzugeben, wie viele Daten gelesen wurden.

Parameter
ByteBuffer buffer

Der ByteBuffer, in den Daten gelesen werden sollen. Muss ein direkter ByteBuffer sein. Der Einbettungscode darf die Position, das Limit oder die Daten des Puffers zwischen seiner Position und seinem Limit nicht lesen oder ändern, bis onReadCompleted(), onCanceled() oder onFailed() aufgerufen werden.

Starten

public abstract void start()

Startet den Stream. Alle Callbacks werden an das callback-Argument gesendet, das an den Konstruktor von BidirectionalStream.Builder übergeben wurde. Sollte nur einmal aufgerufen werden.

Schreiben

public abstract void write(ByteBuffer buffer, boolean endOfStream)

Fügt Daten hinzu, die in den Stream geschrieben werden sollen. Daten werden erst gesendet, nachdem flush() aufgerufen wurde. Bei jedem Aufruf wird die Methode Callback's onWriteCompleted() aufgerufen, wenn Daten gesendet werden, oder die Methode onFailed(), wenn ein Fehler auftritt.

Es wird versucht, Daten ab buffer.position() aus buffer zu schreiben. Es werden buffer.remaining() Byte geschrieben. onWriteCompleted() wird nur aufgerufen, wenn der gesamte ByteBuffer geschrieben wurde.

Parameter
ByteBuffer buffer

Der ByteBuffer, aus dem Daten geschrieben werden sollen. Muss ein direkter ByteBuffer sein. Der Einbettungscode darf die Position, das Limit oder die Daten des Puffers zwischen seiner Position und seinem Limit nicht lesen oder ändern, bis onWriteCompleted(), onCanceled() oder onFailed() aufgerufen werden. Kann leer sein, wenn endOfStream true ist.

boolean endOfStream

Wenn true, dann ist buffer der letzte zu schreibende Puffer. Nach dem Schreiben wird der Stream auf der Clientseite geschlossen, was zu einem halb geschlossenen oder vollständig geschlossenen Stream führt, wenn die Remoteseite bereits geschlossen wurde.