イベントチャネルに接続する際、自身のオブジェクトを登録します。このオブジェクトの生成方法(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モデルのコンシューマのオブジェクトは登録できません。