サーバアプリケーションのインタフェースをIDLファイルに記述します。なお、IDLファイルは任意のフォルダに作成または修正してください。また、C言語業務ロジック1関数あたりに1ファイル作成してください。
IDLファイルの記述形式を以下に示します。
注意
IDLファイル名に使用できる文字種を、以下に示します。
半角英文字(大文字および小文字)
半角数字
アンダースコア(_)
IDLファイル名に指定できる拡張子は“.idl”だけです。
IDLファイルの書式については、“Interstage Application Server アプリケーション作成ガイド(CORBAサービス編)”を参照してください。
IDLファイルは、C言語業務ロジック1関数あたりに1ファイル作成してください。
オペレーション宣言で指定するメソッド名(オペレーション名)には、サーバアプリケーションの業務処理名を記述してください。
C言語実行基盤インタフェース生成ツールおよびbean生成ツールで使用するIDLファイルは、IDLの文法に準拠していますが、以下の制限があります。
モジュール宣言を入れ子にすることはできません。したがって、1つのIDLファイル内に、複数のモジュール宣言を定義することはできません。
1つのIDLファイルに、複数のインタフェース宣言、およびオペレーション宣言は定義できません。
インタフェース宣言、およびオペレーション宣言は省略することはできません。
モジュール宣言は省略可能です。
例外宣言、定数宣言、属性宣言は使用できません。
オペレーション宣言に指定するパラメタの方向はIN、INOUT、OUTが使用できます。ただし、oneway定義、およびraises定義は使用できません。
使用できる型宣言については、“■データ型”を参照してください。また、非同期アプリケーション連携実行基盤では、構造体、および多次元配列は使用できません。
型宣言は、すべてモジュール宣言の外側に定義してください。
COBOLで作成されたサーバアプリケーションと連携する際、COBOLでstringおよびwstringを使用する場合は、長さ指定を定義して使用してください。
プリプロセス機能は使用できません。
IDLファイルに記述する型名などの値には、以下の予約語は使用できません。なお、大文字と小文字は区別されません。
any、apfw_result、apfwExcept、apfwSequenceOctet、attribute、boolean、case、char、const、context、default、double、enum、exception、fixed、float、in、inout、interface、long、longdouble、longlong、module、Object、octet、oneway、out、raises、readonly、sequence、short、string、struct、switch、TD_RTNVAL、typedef、union、unsigned、void、wchar、wstring、FALSE、TRUE |
■型宣言
オペレーション宣言の復帰値、およびパラメタで使用する型宣言について、書式と記述例を以下に示します。
[書式]
typedef データ型 データ型名; |
[記述例]
typedef long longdata; typedef string stringdata; |
[書式]
typedef sequence<octet> データ型名; |
[記述例]
typedef sequence<octet> seqdata; |
[書式]
typedef データ型 データ型名[配列サイズ]; |
[記述例]
typedef long longarraydata[5]; typedef string stringarraydata[2][3]; |
注意
データ型に配列のデータ型名を定義しないでください。多次元配列を定義する場合は、記述例を参考にして定義してください。
[構造体宣言の書式]
struct データ型名{ 構造体メンバ宣言 }; |
[構造体メンバ宣言の書式]
データ型 データ型名; |
[記述例]
struct str{ string mem1; long mem2; }; |
■データ型
IDLファイルで使用できるデータ型、および言語の違いによるIDLファイルのデータ型の対応について説明します。
◆サポートするデータ型
IDLファイルで使用できるデータ型を、以下に示します。
データ型 | 備考 | ||
---|---|---|---|
基本データ型 | 整数型 | short |
|
long |
| ||
long long |
| ||
浮動小数点型 | float |
| |
double |
| ||
オクテット型 | octet |
| |
ブーリアン型 | boolean |
| |
文字列型 | string |
| |
wstring |
| ||
バイナリ | sequence | 要素のデータ型に使用できるのはoctetだけです。 | |
配列 | array | sequence<octet>の配列は記述できません。 | |
構造体 | struct |
|
◆言語の違いによるデータ型の対応
異なる言語で作成されたサーバアプリケーション、またはクライアントアプリケーションと連携する場合は、IDLファイルのデータ型は以下のように対応づけられます。
なお、異なる言語で作成されたサーバアプリケーション間のデータ変換規則については、“12.2.1 データ型の変換”を参照してください。
IDLデータ型 | Java(クライアントアプリケーション) | C言語(サーバアプリケーション) | COBOL(サーバアプリケーション) |
---|---|---|---|
string | java.lang.String | char* | PIC X(n). (注5) |
string (注2) | java.lang.String | char* | PIC S9(n). (注5)(注6) |
PIC 9(n). (注5)(注6) | |||
PIC S9(n) COMP-3. (注4)(注5) | |||
PIC 9(n) COMP-3. (注4)(注5) | |||
PIC S9(n) COMP.(注5)(注7) | |||
PIC 9(n) COMP.(注5)(注7) | |||
PIC S9(n) COMP-5.(注5) | |||
PIC 9(n) COMP-5.(注5) | |||
PIC S9(n)V9(m). (注5)(注6)(注8) | |||
PIC 9(n)V9(m). (注5)(注6)(注8) | |||
PIC S9(n)V9(m) COMP-3. (注5)(注8) | |||
PIC 9(n)V9(m) COMP-3. (注5)(注8) | |||
PIC S9(n)V9(m) COMP. (注5)(注7)(注8) | |||
PIC 9(n)V9(m) COMP. (注5)(注7)(注8) | |||
PIC S9(n)V9(m) COMP-5. (注5)(注8) | |||
PIC 9(n)V9(m) COMP-5. (注5)(注8) | |||
wstring | java.lang.String | unsigned short* | PIC N(n). (注5) |
octet | byte(java.lang.Byte)(注10) | unsigned char | - (注9) |
boolean | boolean(java.lang.Boolean)(注10) | unsigned char | - (注9) |
short | short(java.lang.Short)(注10) | short | PIC S9(1~4) COMP-5. (注7) |
short | short(java.lang.Short)(注10) | short | PIC S9(1~4) COMP. |
long | int(java.lang.Integer)(注10) | int | PIC S9(5~9) COMP-5. |
long | int(java.lang.Integer)(注10) | int | PIC S9(5~9) COMP. |
float | float(java.lang.Float)(注10) | float | COMP-1. |
double | double(java.lang.Double)(注10) | double | COMP-2. |
struct(構造体型) | class | struct | 集団項目 |
array(配列型) (注1) | array (注1) | array (注1) | OCCURS句 |
sequence<octet> | byte[] | 特殊構造体 | 特殊集団項目 |
long long (注3) | long(java.lang.Long)(注10) | long long | PIC S9(10~18) COMP-5. |
long long (注2) | long(java.lang.Long)(注10) | long long | PIC S9(10~18) COMP. |
注1)IDLファイルのarrayを配列型として記述しています。配列の最大要素数は65535です。また、配列の最大次元数は5です。
注2)COBOLを使用する場合、IDLに変換できないデータ型についてはアプリケーション情報入力ファイルに判定情報(binary_as_stringタグ)を設定します。
注3)COBOLのPIC 9(10~18) COMP-5はIDLのlong longにマッピングされますが、C言語では存在しないデータ型であり、使用する場合はユーザアプリケーション間で値を意識する必要があります。
注4)USAGEはPACKED-DECIMALも指定できます。
注5)mおよびnは整数値を表します。
注6)USAGEはDISPLAYも指定できます。
注7)USAGEはBINARYも指定できます。
注8)mとnの値の合計は、18以下になります。可変部がnだけの場合も同様に18以下になります。
注9)COBOLではサポートしないデータ型です。
注10)同期アプリケーション連携実行基盤のクライアントで、Mapを利用する場合は、かっこで示すラッパークラスと対応します。