| Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]()
|
| 第8章 アプリケーションの開発(OOCOBOL) | > 8.8 データ型に対するマッピング |
IDL言語で文字列型stringを指定した場合、以下のデータ型で宣言します。
サイズ指定あり: PIC X(n) サイズ指定なし: CORBA-STRINGクラス
以降では、以下のIDL定義例をもとに説明します。
module ODsample{
interface stringtest{
string op1(in string str1, out string str2, inout string str3);
};
};
IDENTIFICATION DIVISION.
PROGRAM-ID. "ODSAMPLE-STRINGTEST-OP1".
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY CORBA--COPY.
COPY COSNAMING--COPY.
COPY SIMPLE--COPY.
.
01 OBJ USAGE OBJECT REFERENCE CORBA-OBJECT.
*inパラメタ
01 STR1 PIC X(50).
*outパラメタ
01 STR2 USAGE OBJECT REFERENCE CORBA-STRING.
*inoutパラメタ
01 STR3 USAGE OBJECT REFERENCE CORBA-STRING.
*復帰値
01 STR-RET USAGE OBJECT REFERENCE CORBA-STRING.
*
PROCEDURE DIVISION.
INVOKE OBJ "ODSAMPLE-STRINGTEST-OP1"
USING STR1
STR2
STR3
RETURNING STR-RET.
クライアントアプリケーションでは、文字列型のパラメタとして以下のデータ項目を使用します。
inパラメタ : PIC X(n) (サイズ指定あり) outパラメタ : CORBA-STRING(クラス) inoutパラメタ : CORBA-STRING(クラス) 復帰値 : CORBA-STRING(クラス)
以下にクライアントアプリケーション例を以下に示します。
IDENTIFICATION DIVISION.
PROGRAM-ID. "SIMPLE_C".
*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
REPOSITORY.
COPY CORBA--REP.
COPY SIMPLE--REP.
.
SPECIAL-NAMES.
SYMBOLIC CONSTANT
COPY CORBA--CONST.
COPY SIMPLE--CONST.
.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY CORBA--COPY.
COPY COSNAMING--COPY.
COPY SIMPLE--COPY.
*inパラメタ
01 STR1 PIC X(50).
*outパラメタ
01 STR2 USAGE OBJECT REFERENCE CORBA-STRING.
*inoutパラメタ
01 STR3 USAGE OBJECT REFERENCE CORBA-STRING.
*復帰値
01 STR-RET USAGE OBJECT REFERENCE CORBA-STRING.
*
01 OBJ USAGE OBJECT REFERENCE CORBA-OBJECT.
01 TARGET-OBJ USAGE OBJECT REFERENCE ODDEMO-STRINGTEST.
01 STR-WORK PIC X(50).
*
PROCEDURE DIVISION.
*inパラメタの設定
MOVE "IN" TO STR1.
* inoutパラメタの設定
INVOKE CORBA-STRING "NEW" RETURNING STR3.
INVOKE STR3 "SET-VALUE" USING "INOUT".
*
INVOKE ODSAMPLE-STRINGTEST "NARROW"
USING OBJ
RETURNING TARGET-OBJ.
*
INVOKE TARGET-OBJ "OP1"
USING STR1
STR2
STR3
RETURNING STR-RET.
*復帰値の参照
INVOKE STR-RET "GET-VALUE" RETURNING STR-WORK.
DISPLAY "RETURN : " STR-WORK.
*outパラメタの参照
INVOKE STR2 "GET-VALUE" RETURNING STR-WORK.
DISPLAY "OUT : " STR-WORK.
*inoutパラメタの参照
INVOKE STR3 "GET-VALUE" RETURNING STR-WORK.
DISPLAY "INOUT : " STR-WORK.
END PROGRAM "SIMPLE_C".
サーバアプリケーションでは、文字列型のパラメタとして以下のデータ項目を使用します。
inパラメタ : PIC X ANY LENGTH outパラメタ : CORBA-STRING(クラス) inoutパラメタ : CORBA-STRING(クラス) 復帰値 : CORBA-STRING(クラス)
以下にサーバアプリケーション例を以下に示します。
CLASS-ID. ODSAMPLE-STRINGTEST-IMPL.
INHERITS ODSAMPLE-STRINGTEST
*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
REPOSITORY.
COPY CORBA--REP.
COPY SIMPLE--REP.
.
SPECIAL-NAMES.
SYMBOLIC CONSTANT
COPY CORBA--CONST.
COPY SIMPLE--CONST.
.
*
OBJECT.
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY CORBA--COPY.
COPY SIMPLE--COPY.
*
PROCEDURE DIVISION.
METHOD-ID OP1 OVERRIDE.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
01 OP-NAME PIC X(50).
01 STR-WORK1 PIC X(50).
01 STR-WORK2 PIC X(50).
*
LINKAGE SECTION.
01 STR1 PIC X ANY LENGTH.
01 STR2 USAGE OBJECT REFERENCE CORBA-STRING.
01 STR3 USAGE OBJECT REFERENCE CORBA-STRING.
01 RESULT USAGE OBJECT REFERENCE CORBA-STRING.
*
PROCEDURE DIVISION.
USING STR1
STR2
STR3
RETURNING RESULT.
*outパラメタの設定
INVOKE CORBA-STRING "NEW" RETURNING STR2.
INVOKE STR2 "SET-VALUE" USING "OP1:OUT".
*inoutパラメタの参照/設定
MOVE "OP1:" TO OP-NAME.
INVOKE STR3 "GET-VALUE" RETURNING STR-WORK1.
STRING OP-NAME DELIMITED BY SIZE
STR-WORK1 DELIMITED BY SIZE
INTO STR-WORK2.
INVOKE STR3 "SET-VALUE" USING STR-WORK2.
*復帰値の設定
INVOKE CORBA-STRING "NEW" RETURNING RESULT.
INVOKE RESULT "SET-VALUE" USING "OP1:RESULT OK".
*
END METHOD OP1.
END OBJECT.
END CLASS ODSAMPLE-STRINGTEST-IMPL.
目次
索引
![]()
|