|
|
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」の第 3 章「OMG IDL Syntax and Semantics」を参照してください。
OMG IDL の文法はサポートされていますが、次の型宣言および関連リテラルを除きます。
native
注記 CORBA 2.4 では native
型宣言がオブジェクト・アダプタ用として記述されているので、この型は、コールバックをサポートしているクライアントの PortableServer
モジュール、つまり共同クライアント/サーバでのみ利用可能です。
long double
fixed
これらのデータ型を IDL 定義で使用しないでください。
注記 BEA Tuxedo CORBA のリリース 8.0 では、long long
、unsigned long long
、wchar
、および wstring
データ型のサポートが追加されました。
OMG IDL コンパイラの拡張機能
IDL コンパイラでは、プラットフォーム固有のプリプロセッサ・マクロを定義します。すべてのマクロは使用するプリプロセッサによって定義済みで、ユーザ定義のマクロに加えて、OMG IDL ファイルで使用できます。また、OMG IDL ファイルをコンパイルまたはロードする場合にも独自のマクロを定義できます。
表 1-1 では、各プラットフォーム用の定義済みマクロについて説明します。
マクロ識別子 |
マクロが定義されているプラットフォーム |
---|---|
|
Sun Solaris、HP-UX、Tru64 UNIX、および IBM AIX |
|
Tru64 UNIX |
|
Sun Solaris |
|
HP-UX |
|
IBM AIX |
|
Microsoft Windows 2000 および NT |
注記 BEA Tuxedo 8.0 のリリースでは当初、次のプラットフォームはサポートされませんが、リリース後にサポート対象となる予定です。
これらのプラットフォームが正式にサポート対象となる時期については、BEA カスタマ・サポートにお問い合わせください。カスタマ・サポートにお問い合わせになる場合は、http://edocs.beasys.co.jp/service/support/index.html にアクセスして、[カスタマサポート・サービス] をクリックしてください。
C++ IDL コンパイラの制約
表 1-2 は、BEA Tuxedo 8.0 の C++ IDL コンパイラの制約について説明し、推奨される対策を示しています。
|
Copyright © 2001, BEA Systems, Inc. All rights reserved.
|