Interstage Application Server アプリケーション作成ガイド (コンポーネントトランザクションサービス編) |
目次
索引
![]() ![]() |
第6章 C++言語の提供クラス | > 6.1 IDL定義を元に生成されるクラス |
IDL定義を元に生成されるクラスを、以下に示します。
module宣言、およびinterface宣言はそれぞれclassにマッピングされます。オペレーションは、インタフェースクラスの仮想メンバ関数、およびインプリメンテーションクラスのメンバ関数としてマッピングされます。マッピングの例、および各クラスの概要を以下に示します。
モジュールクラスには、そのコンポーネント内にインタフェースクラスが実装されます。また、IDL定義のmodule宣言で記述されたモジュール名が、モジュールクラス名となります。
インタフェースクラスは、TDクラスを継承し、IDL定義に記述されたオペレーションが仮想メンバ関数(図中のvirtual CORBA::Long O1())として実装されます。IDL定義に記述されたデータ型によっては、このクラスのコンポーネント内にデータ型のクラス、および、メンバ関数が生成されます。また、IDL定義のinterface宣言で記述されたインタフェース名が、インタフェースクラス名となります。
インプリメンテーションクラスは、インタフェース実装関数(図中のCORBA::Long O1())をメンバ関数に持つクラスです。このクラスは、インタフェースクラスを継承し、オブジェクト単位に生成されます。アプリケーションは、このインタフェース実装関数として作成します。インプリメンテーションクラス名は、“モジュール名_インタフェース名_impl”となります。
IDL定義に基づいてクラスが生成されますが、module宣言、interface宣言のネスト構造、および変数の有効範囲等も、IDL定義に基づいてマッピングされます。module宣言がネストしている場合、およびinterface宣言が継承している場合のトランザクションアプリケーション用ヘッダファイルを、以下に示します。
目次
索引
![]() ![]() |