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

3.8 any型、sequence型のリリースフラグ

可変長データは、データをクライアントへ返却後、スケルトン中で自動的に解放します。そのため、解放したくないデータについては、どこか別の領域にそのデータを複写しておく必要があります。文字列(string)を例に説明します。



しかし、any、sequenceのような複雑な型の場合は、コピーする処理が複雑なため、リリースフラグを設定し、解放する/しないを設定できるようになっています。
リリースフラグの設定方法について以下に示します。

変数型

設定方法

any

CORBA_any_set_releaseを使用。デフォルトは、CORBA_FALSE (注)
例)
CORBA_any *any = CORBA_any_alloc();
CORBA_any_set_release(any, CORBA_TRUE);

sequence

CORBA_sequence_set_releaseを使用。デフォルトは、CORBA_FALSE (注)
例)
struct sequence<long> data;
data = CORBA_data_alloc();
CORBA_sequence_set_release(data, CORBA_TRUE);

) CORBA_TRUEの場合は、解放されます。CORBA_FALSEの場合は、解放されません。