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

|
7.2.4 パラメタの組み立て
(1)パラメタリストの生成
CORBA-ORB-CREATE-LISTメソッドにより、サーバアプリケーションに渡すパラメタを格納するための領域を保持するリストオブジェクトを生成します。このとき、パラメタとして、何個のパラメタを格納するかを指定します。その結果、NVListオブジェクトリファレンスが返されます。NVListオブジェクトインタフェースの詳細については、“NVListオブジェクト”を参照してください。
DATA DIVISION.
WORKING-STORAGE SECTION.
01 COPY ANY IN CORBA REPLACING CORBA-ANY BY PARAM-ANY.
01 COPY PARDESCRIPTIONSEQ IN CORBA REPLACING
CORBA-PARDESCRIPTIONSEQ BY PARAMS.
01 COPY NVLIST IN CORBA REPLACING CORBA-NVLIST BY ARG-LIST.
LINKAGE SECTION.
01 COPY CONTAINED-DESCRIPTION IN CORBA REPLACING
CORBA-CONTAINED-DESCRIPTION BY TMP-DESC.
01 COPY OPERATIONDESCRIPTION IN CORBA REPLACING
CORBA-OPERATIONDESCRIPTION BY TMP-OPR-DESC.
PROCEDURE DIVISION.
* 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オブジェクトリファレンス、サーバアプリケーションのパラメタの名前、型、値および長さを設定します。
DATA DIVISION.
WORKING-STORAGE SECTION.
01 01 STRING-POINTER USAGE POINTER.
01 COPY TYPECODE IN CORBA REPLACING CORBA-TYPECODE BY TMP-TYPE.
01 01 PARAM-POINTER USAGE POINTER.
01 COPY FLAGS IN CORBA REPLACING CORBA-FLAGS BY FLAG.
01 COPY ULONG IN CORBA REPLACING CORBA-UNSIGNED-LONG BY RET-VAL.
PROCEDURE DIVISION.
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 2006 FUJITSU LIMITED