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

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; 

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