Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]() ![]() |
第8章 アプリケーションの開発(OOCOBOL) | > 8.2 クライアントアプリケーションのプログラミング(動的起動インタフェース) |
インタフェースリポジトリには、IDLで定義されたモジュール名、インタフェース名、オペレーション名およびパラメタが階層構造で格納されます。サーバアプリケーションの情報を獲得するため、以下の手順で検索を行います。
インタフェースリポジトリからサーバアプリケーションの情報を獲得するためには、INTERFACEDEFオブジェクトのオブジェクトリファレンスが必要です。CORBA-OBJECT-GET_INTERFACE_DEFメソッドを使用します。
DATA DIVISION. WORKING-STORAGE SECTION. 01 INTF-OBJ OBJECT REFERENCE CORBA-OBJECT. 01 INTF OBJECT REFERENCE CORBA-INTERFACEDEF. PROCEDURE DIVISION. * CORBA-INTERFACEDEFオブジェクトリファレンス取得 INVOKE OBJ "GET_INTERFACE_DEF" RETURNING INTF-OBJ. INVOKE CORBA-INTERFACEDEF "NARROW" USING INTF-OBJ RETURNING INTF.
CORBA-INTERFACEDEF-LOOKUP_NAMEメソッドにより、サーバアプリケーションが複数もっているメソッドから指定されたメソッドをインタフェースリポジトリから検索します。パラメタとしてサーバアプリケーションのメソッド名を指定します。結果として、指定したメソッド情報が格納されているSEQUENCE-CORBA-CONTAINEDオブジェクトのオブジェクトリファレンスが返されます。
DATA DIVISION. WORKING-STORAGE SECTION. 01 DK-TYPE TYPE CORBA-DEFINITIONKIND. 01 CTD-SEQ OBJECT REFERENCE SEQUENCE-CORBA-CONTAINED. PROCEDURE DIVISION. * SEQUENCE-CORBA-CONTAINEDオブジェクトリファレンス取得 SET CORBA-DK_OPERATION OF DK-TYPE TO TRUE. INVOKE INTF "LOOKUP_NAME" USING "calculate" -1 DK-TYPE CORBA-FALSE RETURNING CTD-SEQ.
CORBA-CONTAINED-DESCRIBEメソッドにより、サーバアプリケーションがもっているメソッドのパラメタの情報(パラメタの名前、個数、パラメタの型等)をインタフェースリポジトリから検索します。パラメタとして、CORBA-CONTAINED-DESCRIPTIONオブジェクトリファレンスを指定します。
DATA DIVISION. WORKING-STORAGE SECTION. 01 TMP-CTD OBJECT REFERENCE CORBA-CONTAINED. 01 CTD-DES OBJECT REFERENCE CORBA-CONTAINED-DESCRIPTION. PROCEDURE DIVISION. * 指定されたメソッドのパラメタ情報を検索 INVOKE CTD-SEQ "GET-VALUE" USING 1 RETURNING TMP-CTD. INVOKE TMP-CTD "DESCRIBE" RETURNING CTD-DES.
目次
索引
![]() ![]() |