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

第11章 CORBAアプリケーションの高度な使い方> 11.4 ライブラリの作成方法

11.4.2 インタフェースの継承とライブラリ

 インタフェースの継承とライブラリの関係について説明します。

(1) IDL定義の例

 次のようにインタフェースAをインタフェースBが継承している場合を考えます。

  [ Y.idl ] 
        interface A {
                .... 
        };

  [ Z.idl ] 
        #include "Y.idl" 
        interface B : A {
                .... 
        };

(2) プログラムの作成

  1. 継承元のIDLファイルのIDLコンパイルは、継承がない場合と同様の方法で行います。
     IDLc -dy [-C|-cpp|-cobol|-oocob] IDLファイル
  2. 継承先のIDLファイルのIDLコンパイルは、-noincludeオプションを指定して行います。
     IDLc -dy -noinclude [-C|-cpp|-cobol|-oocob] IDLファイル
  3. それぞれのインタフェースに対して実装部であるライブラリを作成し、またプログラム本体もそれぞれ作成します。

(3) インプリメンテーションリポジトリへの登録

 継承元、継承先のアプリケーションをそれぞれ以下のように登録します。

継承元

 OD_impl_inst -ax Yの定義ファイル

 [Yの定義ファイル]
  rep_id = YのインプリメンテーションリポジトリID
  ...
  IDL:A:1.0 = Aの実装部ライブラリのパス
  ...

継承先

 OD_impl_inst -ax Zの定義ファイル

 [Zの定義ファイル]
  rep_id = ZのインプリメンテーションリポジトリID
  ...
  IDL:A:1.0 = Aの実装部ライブラリのパス (注1)
  IDL:B:1.0 = Bの実装部ライブラリのパス,,IDL:A:1.0 (注2)
  ...

注1) 継承元インタフェースの定義を記述します。形式は以下のとおりです。
  インタフェースリポジトリID=ライブラリパス,[プレフィックス]

注2) 継承先インタフェースの定義を記述します。形式は以下のとおりです。
  インタフェースリポジトリID=ライブラリパス,[プレフィックス],継承元インタフェースリポジトリID
 継承元のインタフェースが複数ある場合は、インタフェースリポジトリIDをカンマ(",")で区切って複数記述します。

IDL:a:1.0 = C:\server\libA.dll,,IDL:b:1.0,IDL:c:1.0

IDL:a:1.0 = /usr/prog/liba.so,,IDL:b:1.0,IDL:c:1.0

(4) メソッドの呼び出しイメージ

 IDL継承機能を用いて作成したライブラリに対するメソッドの呼び出しイメージを以下に示します。


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

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