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

|
7.5.9 属性宣言(attribute)のマッピング
(1)IDLマッピング
IDL言語で属性宣言(attribute)を指定した場合、オブジェクトのデータ設定/取得を行う関数(関数名は"モジュール名-インタフェース名--set(get)-変数名"。以降、データ設定関数/データ設定関数と呼ぶ)がIDLコンパイラで生成されます。
以降では、以下のIDL定義例をもとに説明します。
IDL言語
module ODsample{
interface attrtest{
attribute long para1;
attribute string para2;
readonly attribute long para3;
};
};
COBOL
IDENTIFICATION DIVISION.
PROGRAM-ID. " ODSAMPLE-ATTRTEST--SET-PARA1".
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY CONST IN CORBA.
*オブジェクトリファレンス
01 COPY ORB IN CORBA REPLACING CORBA-ORB BY ORB.
* 設定値
01 COPY LONG IN CORBA REPLACING CORBA-LONG BY NUM
*例外情報
01 COPY ENVIRONMENT IN CORBA REPLACING CORBA-ENVIRONMENT BY ENV.
(2)クライアントアプリケーションで扱うパラメタ
データ設定関数でデータ設定に使用するデータ域はinパラメタと同様に扱われます。また、データ取得関数でデータ取得に使用するデータ域は復帰値と同様に扱われます。このため、可変長データでは、その領域が不要になった時点でCORBA-FREE関数で領域を解放する必要があります。
.IDENTIFICATION DIVISION.
PROGRAM-ID. " ODSAMPLE-ATTRTEST".
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY CONST IN CORBA.
01 COPY ORB IN CORBA REPLACING CORBA-ORB BY ORB.
01 COPY OBJECT IN CORBA REPLACING CORBA-OBJECT BY OBJ.
01 COPY LONG IN CORBA REPLACING CORBA-LONG BY NUM.
01 COPY LONG IN CORBA REPLACING CORBA-LONG BY RET-NUM.
01 COPY LONG IN CORBA REPLACING CORBA-LONG BY LSIZE.
01 STR1 USAGE POINTER.
01 STR-WORK PIC X(30).
01 RET-STR1 USAGE POINTER.
01 ERR-MSG PIC X(30).
01 COPY ENVIRONMENT IN CORBA REPLACING CORBA-ENVIRONMENT BY ENV.
PROCEDURE DIVISION.
MAIN.
MOVE 2 TO NUM.
CALL "ODSAMPLE-ATTRTEST--SET-PARA1" USING
OBJ
NUM
ENV.
CALL "ODSAMPLE-ATTRTEST--GET-PARA1" USING
OBJ
ENV
RET-NUM.
DISPLAY "ODsample_attrtest_get_para1 returns " RET-NUM.
MOVE "test" TO STR-WORK.
MOVE 5 TO LSIZE.
CALL "CORBA-STRING-SET" USING
STR1
LSIZE
STR-WORK.
CALL "ODSAMPLE-ATTRTEST--SET-PARA2" USING
OBJ
STR1
ENV.
CALL "ODSAMPLE-ATTRTEST--GET-PARA2" USING
OBJ
ENV
RET-STR1.
MOVE "ODsample_attrtest__get_para2" TO ERR-MSG.
PERFORM ENV-CHECK.
DISPLAY "ODsample_attrtest_get_para2 returns "RET-STR1.
CALL "CORBA-FREE" USING
RET-STR1.
CALL "ODSAMPLE-ATTRTEST--GET-PARA3" USING
OBJ
ENV
RET-NUM.
DISPLAY "ODsample_attrtest_get_para3 returns " RET-NUM.
MAIN-END.
ENV-CHECK SECTION.
EVALUATE TRUE
WHEN CORBA-NO-EXCEPTION OF MAJOR OF ENV
CONTINUE
WHEN CORBA-USER-EXCEPTION OF MAJOR OF ENV
DISPLAY "USER-EXCEPTION : " MESS
MOVE FUNCTION LENG (MESS) TO STRING-LENGTH
CALL "CORBA-STRING-GET" USING
IDL-ID OF ENV
STRING-LENGTH
MESS.
DISPLAY "ID : " MESS
EXIT PROGRAM
WHEN CORBA-SYSTEM-EXCEPTION OF MAJOR OF ENV
DISPLAY "SYSTEM-EXCEPTION : " MESS
MOVE FUNCTION LENG (MESS) TO STRING-LENGTH
CALL "CORBA-STRING-GET" USING
IDL-ID OF ENV
STRING-LENGTH
MESS
DISPLAY "ID : " MESS
EXIT PROGRAM
END-EVALUATE.
ENV-CHECK-END.
EXIT.
Copyright 2006 FUJITSU LIMITED