BidirectionalStream

public abstract class BidirectionalStream


HTTP/2 または QUIC 接続を介してデータを双方向に送受信するためのクラス。Builder によって作成されます。

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

概要

ネストされたタイプ

public abstract class BidirectionalStream.Builder

BidirectionalStream のビルダー。

public abstract class BidirectionalStream.Callback

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

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

パブリック メソッド

abstract void

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

abstract void

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

abstract boolean

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

abstract void
read(ByteBuffer buffer)

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

abstract void

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

abstract void
write(ByteBuffer buffer, boolean endOfStream)

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

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

BidirectionalStream

public BidirectionalStream()

パブリック メソッド

キャンセル

public abstract void cancel()

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

フラッシュ(する)

public abstract void flush()

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

isDone

public abstract boolean isDone()

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

戻り値
boolean

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

read

public abstract void read(ByteBuffer buffer)

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

パラメータ
ByteBuffer buffer

データを読み取る ByteBuffer。直接 ByteBuffer である必要があります。onReadCompleted()onCanceled()onFailed() が呼び出されるまで、埋め込みはバッファの位置、制限、位置と制限の間のデータを読み取ったり変更したりしないでください。

start

public abstract void start()

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

write

public abstract void write(ByteBuffer buffer, boolean endOfStream)

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

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

パラメータ
ByteBuffer buffer

データを書き込む ByteBuffer。直接 ByteBuffer である必要があります。onWriteCompleted() onCanceled()onFailed() が呼び出されるまで、埋め込みはバッファの位置、制限、位置と制限の間のデータを読み取ったり変更したりしないでください。endOfStreamtrue の場合は空にできます。

boolean endOfStream

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