前のページ次のページ上に戻るホーム SophiaFramework 2.1

7.1. BREW インターフェイス

BREW API プログラミングでは、 BREW が提供するインターフェイスを使用してシステムにアクセスします。 しかし、BREW API は C 言語で記述されているので、 プログラムの作成に C++ を使用する場合でも、 C 言語的な記述しかできません。 また、参照カウントを正確に管理しなければならないため、 コーディングに負担がかかります。

例 7.1. BREW API だけを使ったインターフェイスの扱い方

// BREW API だけを使う場合のプログラミング例
Void MyFunc() {
    IHash* pHash
    ISHELL_CreateInstance(pShell, AEECLSID_MD5, (void**) &pHash);
    /* ... pHash の関数呼び出し */
    pHash->Release();
}

SophiaFremwork では BREW インターフェイスに対応する C++ ラッパー クラスを用意することによって、 C++ のオブジェクト指向構文で BREW API を呼び出すことを可能にしました。 また、ラッパー クラスとスマート ポインタを組み合わせることによって、 BREW インターフェイスの参照カウント管理を自動化することできます。

例 7.2. SophiaFramework を使ったインターフェイスの扱い方

// SophiaFramework のラッパー クラスを利用したプログラミング例
Void MyFunc() {
    SFUBrewPtr<SFBShell> shell = SFBShell::Instance();
    SFUBrewPtr<SFBHash> hash;
    shell->CreateInstance(AEECLSID_MD5, &hash);
    /* hash の関数呼び出し */
    /* インターフェイスの解放は気にしなくてよい */
}