ページの先頭行へ戻る
Interstage Application Server アプリケーション作成ガイド(CORBAサービス編)
Interstage

4.7 varクラス

CORBAでは、クライアント上の可変長データを以下のように扱います。

ユーザミスにより上記解放処理が行われなかった場合は、解放漏れとなり、無駄な資源がメモリ中に残ることになります。
CORBAでは、上記解放処理の簡易化のため、varクラスが提供されています。varクラスは、CORBAの可変長データを自動変数化して扱うための機能を提供します。varクラスで提供している主な機能は、以下のとおりです。

varクラスは、以下の4とおりあります。

String_varクラス

文字列を扱うためのvarクラス

WString_varクラス

ワイド文字列を扱うためのvarクラス

Any_varクラス

Any型を扱うためのvarクラス

ユーザ定義型varクラス

ユーザ定義により作成されるデータ型に対するvarクラス。シーケンス型、構造体、共用体、配列、各インタフェースにより作成されるObject型。

varクラスの使用イメージを以下に示します。



func()
{
    SampleStruct *data = new SampleStruct; 
    ...                   // dataに値を設定。
    SampleStruct_var  var_data
    var_data = data;      // dataのポインタをvar_dataに格納。
    ... 
    var_data->para1 = 3;  // var_dataに格納されているポインタを取り出し、
                          // 構造体の要素para1のデータを書き換えます。
    ... 
}    // 関数終了時に自動変数var_dataが解放されます。その際、デストラクタが起動され、
     // newで獲得したSampleStructの領域も同時に解放されます。