イベントチャネルに接続する際、自身のオブジェクトを登録します。このオブジェクトの生成方法(Pushモデルのコンシューマのオブジェクトの作成例)を以下に示します。
01 COPY ORB IN CORBA REPLACING CORBA-ORB BY ORB.
01 COPY BOA IN CORBA REPLACING CORBA-BOA BY BOA.
01 COPY REPOSITORYID IN CORBA REPLACING CORBA-REPOSITORYID BY INTF-REP.
01 COPY INTERFACEDEF IN CORBA REPLACING CORBA-INTERFACEDEF BY INTF.
01 COPY IMPLEMENTATIONDEF IN CORBA REPLACING CORBA-IMPLEMENTATIONDEF BY IMPL.
01 COPY REFERENCEDATA IN CORBA REPLACING CORBA-REFERENCEDATA BY REF.
01 COPY OBJECT IN CORBA REPLACING CORBA-OBJECT BY MY-OBJ.
MOVE FUNCTION LENG (CORBA-ORB-OBJECTID-LIGHTINTFR) TO STRING-LENGTH
CALL "CORBA-STRING-SET" USING
TEMP-BUF
STRING-LENGTH
CORBA-ORB-OBJECTID-LIGHTINTFR.
CALL "CORBA-ORB-RESOLVE-INITIAL-REFERENCES" USING
ORB
TEMP-BUF
ENV
INTF-REP.
MOVE FUNCTION LENG (INTF-COSEVENTCOMM-PUSHCONSUMER) TO STRING-LENGTH
CALL "CORBA-STRING-SET" USING
TEMP-BUF
STRING-LENGTH
INTF-COSEVENTCOMM-PUSHCONSUMER
CALL "CORBA-REPOSITORY-LOOKUP-ID" USING
INTF-REP
TEMP-BUF
ENV
INTF.
MOVE 0 TO SEQ-LENGTH OF REF.
MOVE 0 TO SEQ-MAXIMUM OF REF.
SET CORBA-OCTET OF REF TO NULL.
MOVE FUNCTION ADDR(REF) TO REF-P.
CALL "CORBA-BOA-CREATE" USING
BOA
REF-P
INTF
IMPL
ENV
MY-OBJ.オブジェクトは、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モデルのコンシューマのオブジェクトは登録できません。