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