ページの先頭行へ戻る
Interstage Application Server リファレンスマニュアル(API編)

2.14.17 CORBA::ORB::register_reply_interceptor()

名前

  CORBA::ORB::register_reply_interceptor - 出口関数の登録

形式

  void
  CORBA::ORB::register_reply_interceptor(
        void                    (*funcptr)(void),
        CORBA_Environment       &env );

機能説明

  引数の関数ポインタ(funcptr)で指定した関数を出口関数として登録します。登録した出口関数は、サーバアプリケーションのインタフェース実装関数が処理を完了し、クライアントへリプライを送信した後に実行されます。
  なお、インタフェース実装関数にonewayが指定されているなど、クライアントへリプライが送信されない場合でも、インタフェース実装関数の処理が完了した後に出口関数が実行されます。

パラメタ

  funcptr

  出口関数の関数ポインタ。

  env

  例外情報が格納される構造体。

復帰値

  正常復帰した場合、envのexceptionメンバにNULLオブジェクトリファレンスが設定されます。
  異常終了した場合は、envのexceptionメンバにSystemExceptionオブジェクトのオブジェクトリファレンスが設定されます。設定される例外情報及びマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。

  CORBA_BAD_INV_ORDER

  活性化関数(CORBA::BOA::impl_is_readyまたはCORBA::BOA::obj_is_ready)発行後に、本関数が発行されました。

  CORBA_BAD_PARAM

  出口関数の関数ポインタ(funcptr)にNULLが指定されました。

  CORBA_NO_IMPLEMENT

  クライアント用ライブラリ(ODWINCPP.LIB)が使用されています。

  CORBA_NO_RESOURCE

  既に出口関数が登録されています。

注意事項

使用例

class MyClass
{
public:
    static void exitfunc()
    {
        /* 出口関数の処理 */
    }
};

int
main( int argc, char *argv[] )
{
    CORBA::ORB_ptr  orb;
    CORBA::Environment_ptr  env = new CORBA::Environment;

    orb = CORBA::ORB_init( argc, argv, FJ_OM_ORBid, *env );

    orb->register_reply_interceptor( MyClass::exitfunc, *env );

    ...
}