Interstage Application Server アプリケーション作成ガイド (CORBAサービス編)
目次 索引 前ページ次ページ

第11章 CORBAアプリケーションの高度な使い方> 11.1 Factory

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; 

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

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005