Interstage Application Server リファレンスマニュアル(API編)
目次 索引 前ページ次ページ

第2章 C++言語インタフェース> 2.15 イベントサービスインタフェース> 2.15.1 CosEventCommクラス

2.15.1.5 CosEventComm::PullSupplier::try_pull()

名前

  CosEventComm::PullSupplier::try_pull

形式

  #include  <EventService_cplus.h>
  CORBA::Any  *CosEventComm::PullSupplier::try_pull(
                CORBA::Boolean&         has_event,
                CORBA::Environment&     env )
                throw( CORBA::Exception );

機能説明

 サプライヤにイベントデータを要求します。サプライヤからイベントデータを取り出せない場合は、即座に復帰します。なお、イベントデータを取り出せるまでブロックしたい場合には、CosEventComm::PullSupplier::pullを使用してください。
 取り出したany型のイベントデータは、この領域が不要になった時点で、deleteを使用して領域を解放する必要があります。

パラメタ

 has_event(outパラメタ)
 イベントデータを取り出せた場合は、CORBA_TRUEが設定されます。
 イベントデータを取り出せなかった場合は、CORBA_FALSEが設定されます。
 env
 例外情報が格納される構造体。

復帰値

 正常終了した場合は、envのexceptionメンバにNULLオブジェクトリファレンスが設定され、サプライヤからのイベントデータが通知されます。イベントデータを取り出せた場合は、has_eventにCORBA_TRUEが設定されます。イベントデータを取り出せなかった場合には、has_eventにCORBA_FALSEが設定されます。この場合もany型の空のイベントデータの領域が獲得されるので、取り出したany型のイベントデータの領域は、deleteを使用して領域を解放する必要があります。
 異常終了した場合は、envのexceptionメンバにSystemExceptionオブジェクト、またはUserExceptionオブジェクトのオブジェクトリファレンスが設定されます。

 ユーザ例外の場合、以下の例外が発生します。

 CosEventComm::Disconnected
 イベントチャネルに接続されていません。

 システム例外の場合、“メッセージ集”の“イベントサービスから通知される例外情報/マイナーコード”および“CORBAサービスから通知される例外情報/マイナーコード”を参照し、発生したシステム例外およびマイナーコードに対する対処を行ってください。

注意事項

 ローカルトランザクション運用中に、has_eventにCORBA_FALSEが設定された場合は、ES::ChannelUtil::local_rollback()によりキャンセルを通知する必要はありません。ES::ChannelUtil::local_commit()により完了を通知してください。
 グルーバルトランザクション運用中に、has_eventにCORBA_FALSEが設定された場合は、CosTransactions::Current::rollback()によりキャンセルを通知する必要はありません。CosTransactions::Current::commit()により完了を通知してください。


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

Copyright 2007 FUJITSU LIMITED