ページの先頭行へ戻る
Interstage Application Server V13.0.0 アプリケーション作成ガイド(イベントサービス編)
FUJITSU Software

5.6 コンシューマとサプライヤのオブジェクトリファレンスの獲得

イベントチャネルに接続する際、自身のオブジェクトを登録します。このオブジェクトの生成方法(コンシューマのオブジェクトの作成例)を以下に示します。


イベントサービスの場合

[Pushモデルのコンシューマのオブジェクト]

CORBA_ORB                   orb;
CORBA_BOA                   boa; 
CORBA_Repository            intf_rep; 
CORBA_InterfaceDef          intf; 
CORBA_ImplementationDef     impl; 
CORBA_ReferenceData         refid; 
CosEventComm_PushConsumer   my_object; 

intf_rep = CORBA_ORB_resolve_initial_references(
       orb, CORBA_ORB_ObjectId_LightInterfaceRepository, &env ); 

intf =  CORBA_Repository_lookup_id(
       intf_rep, _INTF_CosEventComm_PushConsumer, &env ); 

refid._length = refid._maximum = 0; 
refid._value  = NULL; 
my_object = CORBA_BOA_create( boa, &refid, intf, impl, &env );

オブジェクトは、CORBA_BOA_createメソッドで作成します。

CORBA_BOA_createメソッドに指定するパラメタのインタフェース情報には、自身が実装するインタフェースリポジトリID(_INTF_CosEventComm_PushConsumer)を指定します。インプリメンテーション情報には、自身のインプリメンテーションリポジトリIDを指定します。

各アプリケーションが実装するインタフェースを以下に示します。アプリケーションは、CORBA_Repository_lookup_idメソッドに以下のパラメタを指定してインタフェースリポジトリIDを獲得します。

通信モデル

サプライヤ

コンシューマ

Push

_INTF_CosEventComm_PushSupplier

_INTF_CosEventComm_PushConsumer

Pull

_INTF_CosEventComm_PullSupplier

_INTF_CosEventComm_PullConsumer

Mixed

_INTF_CosEventComm_PushSupplier

_INTF_CosEventComm_PullConsumer


ノーティフィケーションサービスの場合

[Mixedモデルのコンシューマのオブジェクト]

CORBA_ORB                   orb;
CORBA_BOA                   boa; 
CORBA_Repository            intf_rep; 
CORBA_InterfaceDef          intf; 
CORBA_ImplementationDef     impl; 
CORBA_ReferenceData         refid; 
CosNotifyComm_PullConsumer   my_object; 

intf_rep = CORBA_ORB_resolve_initial_references(
       orb, CORBA_ORB_ObjectId_LightInterfaceRepository, &env ); 

intf =  CORBA_Repository_lookup_id(
       intf_rep, _INTF_CosEventComm_PullConsumer, &env ); 

refid._length = refid._maximum = 0; 
refid._value  = NULL; 
my_object = CORBA_BOA_create( boa, &refid, intf, impl, &env );

オブジェクトは、CORBA_BOA_createメソッドで作成します。

CORBA_BOA_createメソッドに指定するパラメタのインタフェース情報には、自身が実装するインタフェースリポジトリID(_INTF_CosEventComm_PullConsumer)を指定します。インプリメンテーション情報には、自身のインプリメンテーションリポジトリIDを指定します。

各アプリケーションが実装するインタフェースを以下に示します。アプリケーションは、CORBA_Repository_lookup_idメソッドに以下のパラメタを指定してインタフェースリポジトリIDを獲得します。

通信モデル

サプライヤ

コンシューマ

Mixed
(any)

_INTF_CosEventComm_PushSupplier

_INTF_CosEventComm_PullConsumer

Mixed
(StructuredEvent)

_INTF_CosNotifyComm_StructuredPushSupplier

_INTF_CosNotifyComm_StructuredPullConsumer