|
Object Management Group (OMG) インタフェース定義言語 (IDL) は、クライアント オブジェクトから呼び出し、オブジェクトの実装で提供するインタフェースを記述します。OMG IDL インタフェース定義では、各オペレーションのパラメータをすべて指定して、インタフェースのオペレーションを使用するクライアント アプリケーションの開発に必要な情報を提供します。
クライアント アプリケーションは、OMG IDL 文のマッピング先として定義されている言語で作成されます。OMG IDL 文とクライアント言語の構造体とのマッピング方法は、クライアント言語で利用可能な機能によって異なります。たとえば、OMG IDL の例外を、例外の概念を持たない言語の構造体、または概念を持つ言語の例外にマップすることができます。
OMG IDL 文は、C++ 文と同じ文法規則に従います。ただし、分散概念をサポートするための new キーワードが導入されています。また、OMG IDL 文は、標準的な C++ プリプロセッサ機能および OMG IDL 固有のプラグマをフル サポートしています。
| 注意 : | pragma version 文を使用する場合は、対応するインタフェース定義の後に配置する必要があります。次の例で正しい使い方を示します。 |
module A
{
interface B
{
#pragma version B "3.5"
void op1();
};
};
OMG IDL の文法は、オペレーション呼び出しメカニズムをサポートするための構造体が追加された ANSI C++ のサブセットです。OMG IDL は宣言型言語であり、定数、型、およびオペレーションの宣言に関して C++ の構文をサポートしています。ただし、アルゴリズミックな構造体または変数は含まれません。
OMG IDL の文法の詳細については、「Common Object Request Broker: Architecture and Specification Revision 2.4」の第 3 章「OMG IDL Syntax and Semantics」を参照してください。
OMG IDL の文法はサポートされていますが、次の型宣言および関連リテラルを除きます。
| 注意 : | CORBA 2.4 では native 型宣言が、ユーザ インタフェース用ではなく、オブジェクト アダプタ用として記述されているので、この型は、コールバックをサポートしているクライアントの PortableServer モジュール、つまり共同クライアント/サーバでのみ利用可能です。 |
| 注意 : | Oracle Tuxedo CORBA のリリース 8.0 では、long long、unsigned long long、wchar、および wstring データ型のサポートが追加されました。 |
IDL コンパイラでは、プラットフォーム固有のプリプロセッサ マクロを定義します。すべてのマクロは使用するプリプロセッサによって定義済みで、ユーザ定義のマクロに加えて、OMG IDL ファイルで使用できます。また、OMG IDL ファイルをコンパイルまたはロードする場合にも独自のマクロを定義できます。
表 1-1 では、各プラットフォーム用の定義済みマクロについて説明します。
表 1-2 は、Oracle Tuxedo 9.1 の C++ IDL コンパイラの制約について説明し、推奨される対策を示しています。
|