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

1.11.15 CORBA_ORB_register_reply_interceptor()

名前

CORBA_ORB_register_reply_interceptor

形式

void
CORBA_ORB_register_reply_interceptor(
      CORBA_ORB              orb,
      void                   (*funcptr)(void),
      CORBA_Environment      *env );

機能説明

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

パラメタ

orb

CORBA_ORB_init()によって獲得したORBのオブジェクトリファレンス。

funcptr

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

env

対象の例外情報が格納されている構造体。

復帰値

正常復帰した場合、env構造体の_majorにはCORBA_NO_EXCEPTIONが設定されます。
異常終了した場合、env構造体の_majorにはCORBA_SYSTEM_EXCEPTIONが設定され、_idと_minorに詳細情報が設定されます。設定される例外情報の意味は以下のとおりです。マイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。

IDL:CORBA/StExcep/BAD_INV_ORDER:1.0

活性化関数(CORBA_BOA_impl_is_readyまたはCORBA_BOA_obj_is_ready)発行後に、本関数が発行されました。

IDL:CORBA/StExcep/BAD_PARAM:1.0

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

IDL:CORBA/StExcep/NO_IMPLEMENT:1.0

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

IDL:CORBA/StExcep/NO_RESOURCE:1.0

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

注意事項

使用例

void
exitfunc()
{
    /* 出口関数の処理 */
}

int
main( int argc, char *argv[] )
{
    CORBA_ORB  orb;
    CORBA_Environment  env; 

    orb = CORBA_ORB_init( &argc, argv, FJ_OM_ORBid, &env );

    CORBA_ORB_register_reply_interceptor( orb, exitfunc, &env );

    ...
}