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

第8章 アプリケーションの開発(OOCOBOL)> 8.8 データ型に対するマッピング

8.8.2 ワイド文字列型

(1)IDLマッピング

 IDL言語でワイド文字列型wstringを指定した場合、以下のデータ型で宣言します。

  サイズ指定あり:  PIC N(n) 
  サイズ指定なし:  CORBA-WSTRINGクラス

 以降では、以下のIDL定義例をもとに説明します。

IDL言語

  module ODsample{
      interface  wstringtest{
         wstring op1(in wstring str1, out wstring str2, inout wstring str3); 
      };
  };

OOCOBOL

   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.

(2)クライアントアプリケーション例

 クライアントアプリケーションでは、ワイド文字列型のパラメタとして以下のデータ項目を使用します。

  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".

(3)サーバアプリケーション例

 サーバアントアプリケーションでは、ワイド文字列型のパラメタとして以下のデータ項目を使用します。

  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.

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005