Interstage Application Server リファレンスマニュアル(API編) |
目次
索引
![]() ![]() |
第2章 C++言語インタフェース | > 2.14 その他の関数 |
CORBA::ORB::register_reply_interceptor - 出口関数の登録
void CORBA::ORB::register_reply_interceptor( void (*funcptr)(void), CORBA_Environment &env );
引数の関数ポインタ(funcptr)で指定した関数を出口関数として登録します。登録した出口関数は、サーバアプリケーションのインタフェース実装関数が処理を完了し、クライアントへリプライを送信した後に実行されます。
なお、インタフェース実装関数にonewayが指定されているなど、クライアントへリプライが送信されない場合でも、インタフェース実装関数の処理が完了した後に出口関数が実行されます。
正常復帰した場合、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 ); ... }
目次
索引
![]() ![]() |