継承を使用したアプリケーションの作成方法について、説明します。
あるインタフェースで定義したオペレーションを、別のインタフェースに引き継ぐことを可能にするための機能です。継承を利用した場合、クライアントからは継承を意識せずに、継承したオペレーションを呼び出すことができます。
メソッドの呼び出しイメージについて以下に示します。
継承は、IDL定義ファイルに継承の指定を記述することによって使用することができます。継承先インタフェースは、継承元インタフェースのスコープ名をコロン(":")に続いて指定します。継承の指定例を以下に示します。
この例では、インタフェース「A」が継承元インタフェース、インタフェース「B」が継承先インタフェースとなります。
interface A { long op1(in long a); }; interface B:M::A { long op2(in long b); };
M:module名
A、B:interface名
継承先のidl定義内に継承元のidl定義をincludeする記述が必要です。include方法の例を以下に示します。
継承を使用する場合、モジュール作成時に継承元のインタフェースを実装しているライブラリをリンクします。継承を使用したアプリケーションの作成時に必要な注意点を、以下に示します。
■継承元のインタフェースの状態
継承先のidl定義をidlコンパイルする場合、継承元は以下の状態であることが考えられます。ここでは、以下の状態の注意点を説明します。
継承元のインタフェースがインタフェースリポジトリに登録されていない場合
継承元のインタフェースがインタフェースリポジトリに登録されている場合
tdcコマンド実行時に -I オプションを指定してください。tdcコマンドの詳細については、「リファレンスマニュアル(コマンド編)」を参照してください。
継承先のidl定義に継承元のidl定義をincludeする記述を追加します。tdcコマンドは、-Iオプションと共に、-updateオプションを設定して実行してください。tdcコマンドの詳細については、「リファレンスマニュアル(コマンド編)」を参照してください。
■継承元のライブラリの所在
継承先のサーバアプリケーションをコンパイルする場合の注意点を説明します。
継承元インタフェースが実装されているライブラリのリンク
継承元インタフェースが実装されているライブラリのパスの設定
継承を使用する場合のサーバアプリケーション作成方法
継承先のidl定義ファイル(Y.idl)をtdcコマンドでコンパイルします。
継承元となるAの実装部は、スケルトンと別ライブラリとして作成します。
継承先となるBの実装部をコンパイルし、ライブラリを作成します。
1で生成されたスケルトンをコンパイルします。
2、3、4で生成されたライブラリをリンクします。
ダイナミックリンクライブラリ(.lib)
ダイナミックリンクライブラリ(.dll)
ダイナミックリンクライブラリ(.so)
ダイナミックリンクライブラリ(.so)
継承元インタフェースが実装されているライブラリのパスの設定は、ワークユニット定義で設定します。
"path for Application"ステートメントに、継承元インタフェースへのパスを記述します。
"Library for Application"ステートメントに、継承元インタフェースへのパスを記述します。