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

|
6.2.4 パラメタの組み立て
(1)パラメタリストの生成
CORBA-ORB-CREATE-LISTメソッドにより、サーバアプリケーションに渡すパラメタを格納するための領域を保持するリストオブジェクトを生成します。このとき、パラメタとして、何個のパラメタを格納するかを指定します。その結果、NVListオブジェクトリファレンスが返されます。NVListオブジェクトインタフェースの詳細については、“NVListオブジェクト”を参照してください。
* Contained-Description構造体からパラメタ構造体の抽出
SET ADDRESS OF TMP-DESC TO DESCRIPTION.
MOVE IDL-VALUE OF TMP-DESC TO PARAM-ANY.
* パラメタ情報の抽出
SET ADDRESS OF TMP-OPR-DESC TO ANY-VALUE OF PARAM-ANY.
MOVE PARAMETERS OF TMP-OPR-DESC TO PARAMS.
MOVE LENGTH OF PARAMS TO NUM.
* リストオブジェクトの生成
CALL "CORBA-ORB-CREATE-LIST" USING
ORB
NUM
ARG-LIST
ENV
RET-VAL.
(2)パラメタリストの設定
CORBA-NVLIST-ADD-ITEMメソッドにより、サーバアプリケーションに渡すパラメタをリストオブジェクトに設定します。パラメタとして、CORBA-NVLISTオブジェクトリファレンス、サーバアプリケーションのパラメタの名前、型、値および長さを設定します。
MOVE FUNCTION ADDR(PARAMS) TO SEQ-POINTER.
MOVE "in_p" TO STR-BUF.
MOVE FUNCTION LENG (STR-BUF) TO STRING-LENGTH.
CALL "CORBA-STRING-SET" USING
STRING-POINTER
STRING-LENGTH
STR-BUF.
MOVE FUNCTION LENG (TC-LONG) TO STRING-LENGTH.
CALL "CORBA-STRING-SET" USING
TEMP-BUF
STRING-LENGTH
TC-LONG.
CALL "CORBA-ORB-TYPECODE-FROM-CGEN-TC" USING
TEMP-BUF
TMP-TYPE.
CALL "CORBA-FREE" USING
TEMP-BUF.
MOVE 1234 TO IN-P.
MOVE FUNCTION ADDR( IN-P ) TO PARAM-POINTER.
MOVE LSIZE OF TMPDATA TO NUM.
SET CORBA-ARG-IN OF FLAG TO TRUE.
CALL "CORBA-NVLIST-ADD-ITEM" USING
ARG-LIST
STRING-POINTER
TMP-TYPE
PARAM-POINTER
NUM
FLAG
ENV
RET-VAL.
Copyright 2005 FUJITSU LIMITED