ProtectedfdProtectedfinishProtectedfirstProtectedfrgsProtectedlastProtectedonProtectedoutProtectedtempProtectedtotal出力チェーンの末尾に新しいフラグメント (ブロック) を追加する。
追加されたブロックの ID は frgs 配列のインデックスで管理される。
指定ブロックを閉じる。
StreamBuilder では使用しないため何も行わない。
閉じるブロックの ID (未使用)
フラグメント配列と一時ファイルを解放する。 エラー発生時にもリソースリークが発生しないよう必ず呼び出すこと。
Protecteddisposeすべてのフラグメントを順番に出力ストリームへフラッシュする。
finishFunc が設定されている場合は先に呼び出す。
処理後は一時ファイルを削除してリソースを解放する。
指定した既存ブロックの直前に新しいフラグメントを挿入する。 双方向リンクリストのポインタを更新してフラグメント順序を調整する。
挿入基準となる既存ブロックの ID
一時ファイルの指定位置からデータを読み込む。 一時ファイルが未作成の場合は 0 を返す。
読み込んだデータを格納するバッファ
ファイル内の読み込み開始バイト位置
実際に読み込んだバイト数
データをフラグメント管理を介さず出力ストリームへ直接書き込む。
ストリームのバックプレッシャーを考慮して drain イベントを待機する。
書き込むバイナリデータ
指定 ID のフラグメントにデータを書き込む。 フラグメントのメモリ使用量に応じて、自動的にディスクへスピルアウトする。
書き込み先フラグメントの ID
書き込むバイナリデータ
一時ファイルの指定位置にバッファを書き込む。 ファイルが存在しない場合は自動的に作成される。 Fragment クラスがディスクへのスピルアウト時に内部から呼び出す。
書き込むデータ
ファイル内の書き込み開始バイト位置
フラグメントベースのストリーム書き込みビルダー。
サーバーからの
RES_ADD_BLOCK/RES_INSERT_BLOCK/RES_BLOCK_DATAに応じてFragmentリストを構築し、finish()時に順序どおりに出力ストリームへフラッシュする。小さなデータはメモリ上で保持し、閉じきい場合は OS の一時ファイルへスピルアウトする。 HTTP レスポンスストリームなどが完了前に
Content-Lengthを記載したい場合はFinishCallbackを渡してそのタイミングでヘッダ添付できる。