Interstage Application Server アプリケーション作成ガイド (CORBAサービス編)
目次 索引 前ページ次ページ

第8章 アプリケーションの開発(OOCOBOL)> 8.2 クライアントアプリケーションのプログラミング(動的起動インタフェース)

8.2.5 パラメタの組立て

(1)パラメタリストの生成

 CORBA-ORB-CREATE_LISTメソッドにより、サーバアプリケーションに渡すパラメタを格納するための領域を保持するリストオブジェクトを生成します。このとき、何個のパラメタを格納するかを指定します。結果として、NVListオブジェクトリファレンスが通知されます。NVListオブジェクトインタフェースの詳細については、“NVListオブジェクト”を参照してください。

   DATA DIVISION.
   WORKING-STORAGE        SECTION.
   01 OPE-ANY             OBJECT REFERENCE CORBA-ANY.
   01 OPE-DES             OBJECT REFERENCE CORBA-OPERATIONDESCRIPTION.
   01 PARA-SEQ            TYPE             CORBA-PARDESCRIPTIONSEQ.
   01 PARAM-COUNT         TYPE             CORBA-LONG.
   01 NVLIST              OBJECT REFERENCE CORBA-NVLIST.

  PROCEDURE DIVISION.
* CORBA-CONTAINED-DESCRIPTION構造体からパラメタ情報構造体の抽出
      SET OPE-ANY TO IDL-VALUE OF CTD-DES.
      INVOKE CORBA-OPERATIONDESCRIPTION--H  "EXTRACT" USING OPE-ANY
                                                      RETURNING OPE-DES.
* パラメタ情報の抽出
      SET PARA-SEQ TO PARAMETERS OF OPE-DES.
      MOVE SEQ-LENGTH OF PARA-SEQ TO PARAM-COUNT.
* リストオブジェクトの生成
      INVOKE ORB "CREATE_LIST" USING  PARAM-COUNT
                                      NVLIST.

(2)パラメタリストの設定

 CORBA-NVLIST-ADD_VALUEメソッドにより、サーバアプリケーションに渡すパラメタをリストオブジェクトに設定します。パラメタとして、サーバアプリケーションのパラメタの名前、値(Any型)およびパラメタの形式を設定します。

   DATA DIVISION.
   WORKING-STORAGE        SECTION.
   01 PARA-DES1           OBJECT REFERENCE CORBA-PARAMETERDESCRIPTION.
   01 PARA-DES2           OBJECT REFERENCE CORBA-PARAMETERDESCRIPTION.
   01 STR-1               OBJECT REFERENCE CORBA-STRING.
   01 NAME1               PIC    X(40).
   01 STR-2               OBJECT REFERENCE CORBA-STRING.
   01 NAME2               PIC    X(40).
   01 ANY-A               OBJECT REFERENCE CORBA-ANY.
   01 ANY-B               OBJECT REFERENCE CORBA-ANY.
   01 TMP-NAMEDVALUE      OBJECT REFERENCE CORBA-NAMEDVALUE.
   01 FLG                 TYPE             CORBA-FLAGS.

  PROCEDURE DIVISION.
* PARAMERTER 1
      INVOKE PARA-SEQ "GET-VALUE" USING 1
                                  RETURNING PARA-DES1
      SET STR-1 TO  NAME OF PARA-DES1.
      INVOKE STR-1 "GET-VALUE" RETURNING NAME1.
      INVOKE CORBA-ANY "NEW" RETURNING  ANY-A.
      INVOKE ANY-A "INSERT_LONG" USING  100.
      SET CORBA-ARG_IN OF FLG TO TRUE.
      INVOKE NVLIST "ADD_VALUE" USING      NAME1
                                           ANY-A
                                           FLG
                                RETURNING  TMP-NAMEDVALUE.
* PARAMETER 2
      INVOKE PARA-SEQ "GET-VALUE" USING 2
                                  RETURNING PARA-DES2
      SET STR-2 TO  NAME OF PARA-DES2.
      INVOKE STR-2 "GET-VALUE" RETURNING NAME2.
      INVOKE CORBA-ANY "NEW" RETURNING  ANY-B.
      INVOKE ANY-B "INSERT_LONG" USING  20.
      SET CORBA-ARG_IN OF FLG TO TRUE.
      INVOKE NVLIST "ADD_VALUE" USING      NAME2
                                           ANY-B
                                           FLG
                                RETURNING  TMP-NAMEDVALUE.

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

All Rights Reserved, Copyright(C) 富士通株式会社 2005