BidirectionalStream

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 die Methoden von BidirectionalStream gelten Einschränkungen hinsichtlich der Reihenfolge. Weitere Informationen finden Sie in den Beschreibungen der einzelnen Methoden.

Zusammenfassung

Verschachtelte Typen

Builder für BidirectionalStreams.

Callback-Klasse zum Empfangen von Callbacks von einem BidirectionalStream.

Öffentliche Konstruktoren

Öffentliche Funktionen

abstract Unit

Bricht den Stream ab.

abstract Unit

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

Liest Daten aus dem Stream in den angegebenen Puffer.

abstract Unit

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

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

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

Öffentliche Konstruktoren

BidirectionalStream

BidirectionalStream()

Öffentliche Funktionen

Abbrechen

abstract fun cancel(): Unit

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

abstract fun flush(): Unit

Überträgt ausstehende Schreibvorgänge. Diese Methode sollte nicht vor onStreamReady() aufgerufen werden. Für zuvor verzögerte write()-Aufrufe wird ein entsprechendes onWriteCompleted() aufgerufen, wenn der Puffer gesendet wird.

isDone

abstract fun isDone(): Boolean

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

abstract fun read(buffer: ByteBuffer!): Unit

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. Jeder Aufruf führt zu einem Aufruf der Methode Callback des onReadCompleted(), wenn Daten gelesen werden, oder der 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
buffer: ByteBuffer!

Der ByteBuffer, in den Daten gelesen werden sollen. Muss ein direkter ByteBuffer sein. Der Einbettungsanbieter darf die Position, die Begrenzung oder die Daten des Puffers zwischen seiner Position und seiner Begrenzung erst lesen oder ändern, wenn onReadCompleted(), onCanceled() oder onFailed() aufgerufen werden.

Starten

abstract fun start(): Unit

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

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

Fügt Daten hinzu, die in den Stream geschrieben werden sollen. Daten werden erst gesendet, nachdem flush() aufgerufen wurde. Jeder Aufruf führt zu einem Aufruf der Methode Callback des onWriteCompleted(), wenn Daten gesendet werden, oder der 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
buffer: ByteBuffer!

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

endOfStream: Boolean

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 Remote-Seite bereits geschlossen wurde.