copper-cti - v1.0.0
    Preparing search index...

    Class StreamBuilder

    フラグメントベースのストリーム書き込みビルダー。

    サーバーからの RES_ADD_BLOCK / RES_INSERT_BLOCK / RES_BLOCK_DATA に応じて Fragment リストを構築し、finish() 時に順序どおりに出力ストリームへフラッシュする。

    小さなデータはメモリ上で保持し、閉じきい場合は OS の一時ファイルへスピルアウトする。 HTTP レスポンスストリームなどが完了前に Content-Length を記載したい場合は FinishCallback を渡してそのタイミングでヘッダ添付できる。

    Hierarchy (View Summary)

    Implements

    Index

    Constructors

    Properties

    fd: FileHandle | null = null
    finishFunc: FinishCallback | null
    first: Fragment | null = null
    frgs: Fragment[] = []
    last: Fragment | null = null
    nextSegmentIndex: number = 0
    onMemory: number = 0
    out: Writable
    tempPath: string | null = null
    totalLength: number = 0

    Methods

    • 出力チェーンの末尾に新しいフラグメント (ブロック) を追加する。 追加されたブロックの ID は frgs 配列のインデックスで管理される。

      Returns void

    • 指定ブロックを閉じる。 StreamBuilder では使用しないため何も行わない。

      Parameters

      • _id: number

        閉じるブロックの ID (未使用)

      Returns void

    • フラグメント配列と一時ファイルを解放する。 エラー発生時にもリソースリークが発生しないよう必ず呼び出すこと。

      Returns Promise<void>

    • すべてのフラグメントを順番に出力ストリームへフラッシュする。 finishFunc が設定されている場合は先に呼び出す。 処理後は一時ファイルを削除してリソースを解放する。

      Returns Promise<void>

    • 指定した既存ブロックの直前に新しいフラグメントを挿入する。 双方向リンクリストのポインタを更新してフラグメント順序を調整する。

      Parameters

      • anchorId: number

        挿入基準となる既存ブロックの ID

      Returns void

    • 一時ファイルの指定位置からデータを読み込む。 一時ファイルが未作成の場合は 0 を返す。

      Parameters

      • buffer: Buffer

        読み込んだデータを格納するバッファ

      • position: number

        ファイル内の読み込み開始バイト位置

      Returns Promise<number>

      実際に読み込んだバイト数

    • データをフラグメント管理を介さず出力ストリームへ直接書き込む。 ストリームのバックプレッシャーを考慮して drain イベントを待機する。

      Parameters

      • data: Buffer

        書き込むバイナリデータ

      Returns Promise<void>

    • 指定 ID のフラグメントにデータを書き込む。 フラグメントのメモリ使用量に応じて、自動的にディスクへスピルアウトする。

      Parameters

      • id: number

        書き込み先フラグメントの ID

      • data: Buffer

        書き込むバイナリデータ

      Returns Promise<void>

    • 一時ファイルの指定位置にバッファを書き込む。 ファイルが存在しない場合は自動的に作成される。 Fragment クラスがディスクへのスピルアウト時に内部から呼び出す。

      Parameters

      • buffer: Buffer

        書き込むデータ

      • position: number

        ファイル内の書き込み開始バイト位置

      Returns Promise<void>