Interstage Application Server リファレンスマニュアル(API編) |
目次
索引
![]() ![]() |
第1章 C言語インタフェース | > 1.17 イベントサービスインタフェース | > 1.17.1 CosEventCommインタフェース |
CosEventComm_PullSupplier_try_pull
#include <EventService.h> CORBA_any *CosEventComm_PullSupplier_try_pull( CosEventComm_PullSupplier obj, CORBA_boolean *has_event, CORBA_Environment *env );
サプライヤにイベントデータを要求します。サプライヤからイベントデータが取り出せない場合は即座に復帰します。なお、イベントデータが取り出せるまでブロックしたい場合には、CosEventComm_PullSupplier_pullを使用してください。
objには、CosEventChannelAdmin_ConsumerAdmin_obtain_pull_supplierが返すオブジェクトリファレンスを指定します。
取り出したany型のイベントデータは、この領域が不要になった時点で、CORBA_free()を使用して領域を解放する必要があります。
正常終了した場合は、env構造体の_majorにCORBA_NO_EXCEPTIONが設定されます。イベントデータを取り出せた場合は、has_eventにCORBA_TRUEが設定され、サプライヤからのイベントデータが復帰します。イベントデータが取り出せなかった場合には、has_eventにCORBA_FALSEが設定されます。この場合も空のany型のイベントデータの領域が獲得されるので、取り出したany型のイベントデータの領域は、CORBA_free()を使用して領域を解放する必要があります。
異常終了した場合は、env構造体の_majorにCORBA_SYSTEM_EXCEPTIONまたはCORBA_USER_EXCEPTIONが設定され、env構造体の_idに詳細情報が設定されます。
ユーザ例外の場合、以下の詳細情報が設定されます。
システム例外の場合、“メッセージ集”の“イベントサービスから通知される例外情報/マイナーコード”および“CORBAサービスから通知される例外情報/マイナーコード”を参照し、設定されたシステム例外およびマイナーコードに対する対処を行ってください。
ローカルトランザクション運用中に、has_eventにCORBA_FALSEが設定された場合は、ES_ChannelUtil_local_rollback()によりキャンセルを通知する必要はありません。ES_ChannelUtil_local_commit()により完了を通知してください。
グルーバルトランザクション運用中に、has_eventにCORBA_FALSEが設定された場合は、CosTransactions_Current_rollback()によりキャンセルを通知する必要はありません。CosTransactions_Current_commit()により完了を通知してください。
目次
索引
![]() ![]() |