Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]() ![]() |
第7章 アプリケーションの開発(OOCOBOL) | > 7.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.
目次
索引
![]() ![]() |