BidirectionalStream

abstract class BidirectionalStream


HTTP/2 または QUIC 接続を介したデータの双方向送受信を行うクラス。作成者: Builder

注: BidirectionalStream のメソッドには順序に関する制限があります。制限の説明については、個々のメソッドをご覧ください。

概要

ネストされた型

BidirectionalStream のビルダー。

BidirectionalStream からコールバックを受信するために使用されるコールバック クラス。

パブリック コンストラクタ

パブリック関数

abstract Unit

ストリームをキャンセルします。

abstract Unit

保留中の書き込みをフラッシュします。

abstract Boolean

ストリームが正常に開始され、完了(成功、キャンセル、失敗)した場合は true を返します。

abstract Unit
read(buffer: ByteBuffer!)

ストリームから指定されたバッファにデータを読み取ります。

abstract Unit

ストリームを開始します。すべてのコールバックは、BidirectionalStream.Builder のコンストラクタに渡された callback 引数に送られます。

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

ストリームに書き込むデータを追加します。

パブリック コンストラクタ

BidirectionalStream

BidirectionalStream()

パブリック関数

キャンセル

abstract fun cancel(): Unit

ストリームをキャンセルします。start の後であればいつでも呼び出すことができます。キャンセルが完了すると onCanceled() が呼び出され、それ以上のコールバック メソッドは呼び出されません。ストリームが完了しているか、まだ開始していない場合、cancel() を呼び出しても効果はなく、onCanceled() は呼び出されません。BidirectionalStream の構築時に渡された Executor が単一のスレッドでタスクを実行し、そのスレッドで cancel() が呼び出されると、cancel() が呼び出された後にリスナー メソッド(onCanceled() を除く)は呼び出されません。それ以外の場合、cancel() の完了後に呼び出すことができるコールバック メソッドは 1 つだけです。

フラッシュ(する)

abstract fun flush(): Unit

保留中の書き込みをフラッシュします。このメソッドは、 onStreamReady() の前に呼び出さないでください。以前に遅延した write() の場合、バッファが送信されると、対応する onWriteCompleted() が呼び出されます。

isDone

abstract fun isDone(): Boolean

ストリームが正常に開始され、完了(成功、キャンセル、失敗)した場合は true を返します。

戻り値
Boolean

ストリームが正常に開始され、完了(完了、キャンセル、失敗)した場合は true。それ以外の場合は、ストリームがまだ開始されていないか、進行中であることを示す false を返します。

read

abstract fun read(buffer: ByteBuffer!): Unit

ストリームから指定されたバッファにデータを読み取ります。CallbackonStreamReady()/ onResponseHeadersReceived() メソッドと onReadCompleted() メソッドの呼び出しごとに、最大 1 回のみ呼び出すことができます。各呼び出しでは、データが読み取られた場合は Callback onReadCompleted() メソッドが呼び出され、エラーが発生した場合は onFailed() メソッドが呼び出されます。buffer.position() から始まる buffer へのデータの読み取りが開始されます。最大 buffer.remaining() バイトが読み取られます。onReadCompleted() の呼び出し時に buffer.position() が更新され、読み取られたデータ量が示されます。

パラメータ
buffer: ByteBuffer!

データを読み込む ByteBuffer。ダイレクト ByteBuffer である必要があります。エンベッダは、onReadCompleted()onCanceled()、または onFailed() が呼び出されるまで、バッファの位置、上限、または位置と上限の間のデータを読み取ったり変更したりしてはなりません。

start

abstract fun start(): Unit

ストリームを開始します。すべてのコールバックは、BidirectionalStream.Builder のコンストラクタに渡された callback 引数に送られます。1 回だけ呼び出す必要があります。

write

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

ストリームに書き込むデータを追加します。データは flush() が呼び出された後にのみ送信されます。各呼び出しでは、データが送信された場合は CallbackonWriteCompleted() メソッドが呼び出され、エラーが発生した場合は onFailed() メソッドが呼び出されます。

buffer.position() から始まる buffer からのデータの書き込みが試行されます。buffer.remaining() バイトが書き込まれます。onWriteCompleted() は、ByteBuffer 全体が書き込まれた場合にのみ呼び出されます。

パラメータ
buffer: ByteBuffer!

ByteBuffer からデータを書き込みます。ダイレクト ByteBuffer である必要があります。エンベッダは、onWriteCompleted() onCanceled()、または onFailed() が呼び出されるまで、バッファの位置、上限、または位置と上限の間のデータを読み取ったり変更したりしてはなりません。endOfStreamtrue の場合は、空にできます。

endOfStream: Boolean

true の場合、buffer は書き込まれる最後のバッファです。書き込まれると、クライアント側からストリームが閉じられ、リモート側がすでに閉じている場合は半閉じストリームまたは完全に閉じられたストリームになります。