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