CHeaderManager クラスのマニュアル

(C)Copyright 2000 NTT Cyber Space Laboratories

# `CHeaderManagerクラス`

名前
  `CHeaderManager` - TwinVQ ビットストリームヘッダを管理するクラス
インタフェース
  `class CHeaderManager {
  public:
  // 初期化・デストラクタ
  static CHeaderManager* Create(CChunkChunk& twinChunk); // 初期化用スタティックメンバ関数
  virtual ~CHeaderManager(); // デストラクタ
  // 機能メンバ関数
  const std::string GetID(); // TwinVQ データの ID を取得
  CChunk GetPrimaryChunk(std::string chunkID); // 通常チャンクの情報を取得する
  CChunk GetSecondaryChunk(std::string chunkID); // 補助チャンクの情報を取得する
  // 例外
  class err_FailGetChunk; // チャンクの取得に失敗
  }`
機能説明
  クラス`CHeaderManager` は、与えられたビットストリームヘッダを保管し、ヘッダ情報をデータベースとして機能します。初期化時に、CChunkChunk クラスオブジェクトに格納されたヘッダ情報 `twinChunk` を読み込みヘッダ情報データベースを構築します。構築後は、`GetPrimaryChunk()` および `GetSecondaryChunk()` メンバ関数を使って、ヘッダ情報をチャンク単位に取得できます。
生成・初期化
  このクラスは、公開されたコンストラクタを持ちません。代わりに、`Create()`スタティックメンバ関数を使って生成・初期化します。この初期化関数はヘッダ情報 twinChunk を読み込み、CHeaderChunk クラスオブジェクトへのポインタを戻します。`twinChunk` のフォーマットが正しくないと生成に失敗し、この場合 `Create()`関数は NULL ポインタを戻します。
  twinChunk はTwinVQ データのヘッダ部から構成されます。サンプルプログラムでは、`TvqGetBsHeaderInfo()` 関数を使って作成しています。
  また、初期化したオブジェクトは自動的に消去されませんので、不要になった時点で delete により消去する必要があります。
  以下は、ヘッダマネージャ生成・初期化の例です (`theHeaderManager`)。

      CChunkChunk *twinChunk = TvqGetBsHeaderInfo(bfp);
      CHeaderManager *theHeaderManager = CHeaderManager::Create(*twinChunk);

機能メンバ関数の説明
  `std::string GetID()`
    この関数は、TwinVQ ヘッダの先頭に格納されているヘッダ ID を戻します。ヘッダ ID は "TWIN" で始まる 12 文字からなる文字列です。
  `CChunk GetPrimaryChunk( std::string chunkID)`
    この関数は、chunkID で指定された ID の通常ヘッダチャンク情報を CChunk 型のオブジェクトとして返します。取得に失敗すると、例外 `err_FailGetChunk` を発生します。
  `CChunk GetSecondaryChunk(std::string chunkID)`
    この関数は、chunkID で指定された ID の補助ヘッダチャンク情報を CChunk 型のオブジェクトとして返します。取得に失敗すると、例外 `err_FailGetChunk` を発生します。
利用に必要なインクルードファイル
  `CHeaderManager.h`
この関数が置かれているファイル
  `HeaderManager.cxx`
参照
  `TvqGetBsHeaderInfo()`, CChunk