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

11.1.5 終了処理のプログラミング

メソッド内でdisposeが呼び出された場合は、スケルトンに実装されているインプリメンテーションクラスのデストラクタが呼び出されます。
IDLコンパイラの作成したスケルトン(xxxx_C++_skel.c)を編集することにより、アプリケーション用の終了処理を実装できます。


(1) サーバアプリケーションの処理

thisポインタに対して、CORBA::BOA::dispose()を発行します。
終了処理メソッドの例を以下に示します。

// 終了処理メソッド
void
ODsample_intf1_impl::destroy( CORBA::Environment &env ) 
      throw( CORBA::Exception ) 
{
      try {
              boa->dispose( this,  env ); 
      }
      catch( CORBA::SystemException &se ){
              throw( se ); 
      }
}

(2) スケルトンの変更

デストラクタは、スケルトンに以下のように生成されます。必要に応じて終了処理を追加します。可変長のprivateデータを使用した場合は、解放処理を追加します。

ODsample_intf1_impl::~ODsample_intf1_impl() 
{

// privateデータの解放 
    if (data) 
        delete data; 

// 終了処理を記述 
    ..... 
}