1 OMG IDL構文とC++ IDLコンパイラ

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』の「OMG IDL Syntax and Semantics」を参照してください。

次の型宣言と関連するリテラルを除き、すべてのOMG IDL文法がサポートされています:

  • native

    ノート:

    CORBA 2.4では、ネイティブ型宣言が、ユーザー・インタフェース用ではなく、オブジェクト・アダプタ用として記述されているので、この型は、コールバックをサポートしているクライアントのPortableServerモジュール、つまり共同クライアント/サーバーでのみ利用可能です。
  • long double
  • fixed

これらのデータ型をIDL定義で使用しないでください。

ノート:

Oracle Tuxedo CORBAのリリース8.0では、long longunsigned long longwchar、およびwstringデータ型のサポートが追加されました。