(1) IDL定義の例
1つのモジュール内に2つのインタフェースが定義されている場合を例に説明します。
module M { interface I1 { ... }; interface I2 { ... }; };
(2) Cマッピングの場合
ライブラリ作成用のオプションを指定して、IDLコンパイルを行います。
IDLc -dy IDLファイル名
IDLファイルのインタフェース定義から生成されたスケルトン(*_skel.c)と、インタフェースのメソッド関数を実装したソースから、インタフェースを実装したライブラリ(*.so/*.dll)を作成します。実装部のコーディングは、ライブラリ化しない場合と同様です。
ライブラリは、以下の手順で作成します。
Visual C++(R)のプロジェクト新規作成で“DLL(ダイナミックリンクライブラリ)作成”を指定します。
cc -c *.c .... cc -G -Kpic -o ライブラリ名 オブジェクトファイル(*.o) ....
gcc -c *.c .... gcc -shared -fPIC -o ライブラリ名 オブジェクトファイル(*.o) ....
(3) C++マッピングの場合
ライブラリ作成用のオプションを指定して、IDLコンパイルを行います。
IDLc -dy -vcpp IDLファイル名
IDLc -dy -cpp IDLファイル名
IDLファイルのインタフェース定義から生成されたスケルトン(*_skel_c++.C)と、インタフェースのメソッド関数を実装したソース、およびIDLファイルから生成されたCDRソース(*_cdr.c)、クラスソース(*_c++.C)から、インタフェースを実装したライブラリ(*.so/*.dll)を作成します。実装部のコーディングは、ライブラリ化しない場合と同様です。
ライブラリは、以下の手順で作成します。
Visual C++(R)のプロジェクト新規作成で、“DLL(ダイナミックリンクライブラリ)作成”を指定します。
cc -G -Kpic -o ライブラリ名 オブジェクトファイル(*.o) ....
g++ -shared -fPIC -o ライブラリ名 オブジェクトファイル(*.o) ....
(4) COBOLマッピングの場合
IDLコンパイルを行います。
IDLc -cobol IDLファイル名
IDLファイルのインタフェース定義から生成されたスケルトン(*_skel.cbl)と、インタフェースのメソッド関数を実装したソース、およびIDLファイルから生成されたCDRソース(*_cdr.cbl)から、インタフェースを実装したライブラリ(*.so/*.dll)を作成します。
ライブラリは、以下の手順で作成します。
COBOL開発環境のプロジェクトマネージャで、ライブラリを作成します。
cobol -c *.cbl .... cc -G -Kpic -o ライブラリ名 オブジェクトファイル(*.o) ....
(5) OOCOBOLマッピングの場合
IDLコンパイルを行います。
IDLc -oocob IDLファイル名
IDLファイルのインタフェース定義から生成されたスケルトンなどのクラス(インタフェース名*.cob)と、インタフェースのメソッド関数を実装したソース、登録関数を定義したソース、およびIDLファイルから生成された登録集(*.cbl)から、インタフェースを実装したライブラリ(*.dll)を作成します。
(6) アプリケーションの登録
作成したライブラリをインプリメンテーションリポジトリに登録するため、以下のコマンドを実行します。
OD_impl_inst -ax 定義ファイル
定義ファイルには、各アプリケーションの構成などを以下のように記述します。
rep_id = インプリメンテーションリポジトリID type = サーバタイプ binary = プログラム本体のパス IDL:M/I1:1.0 = I1の実装部ライブラリのパス (注) IDL:M/I2:1.0 = I2の実装部ライブラリのパス
注)“インタフェースリポジトリID=ライブラリパス[,プレフィックス]”の形式で、インタフェース数だけ記述します。プレフィックスは、IDLコンパイラの-Sオプションで指定したプレフィックスを指定します。