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

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

7.2.5 パラメタの組立て

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

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

* 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型)およびパラメタの形式を設定します。

* 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.

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

Copyright 2005 FUJITSU LIMITED