BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   BEA Tuxedo コマンド・リファレンス   |   先頭へ   |   前へ   |   次へ   |   目次

 


tidl(1)

名前

tidl-Interface Definition Language コンパイラ

形式

tidl [option] . . . filename [option]. . .

機能説明

tidl は、入力 IDL と関連する ACF ソース・ファイルを解析し、オプションとしてヘッダ・ファイル、クライアント・スタブ、サーバ・スタブ、および補助ファイルを作成します。作成されたソース・コードは Classic C、ANSI C、あるいは C++ 用のコンパイラでコンパイル可能です。

コマンド行引数には、入力 IDL ソース・ファイルと、IDL コンパイラの動作を制御するオプションを指定します。以下に、オプションを示します。

-client type

作成するクライアント側のファイルを指定します。typeの値は次のとおりです。

all

クライアント・スタブと補助ファイルを作成します。-client オプションが指定されない場合には、これがデフォルトになります。

stub

クライアント・スタブ・ファイルのみを作成します。

aux

クライアント補助ファイルのみを作成します。現時点では補助ファイルは作成されず、このオプションの影響はありません。

none

クライアント・ファイルは作成されません。

-server type

作成するサーバ側のファイルを指定します。type の値は次のとおりです。

all

サーバ・スタブと補助ファイルを作成します。-server オプションが指定されない場合には、これがデフォルトになります。

stub

サーバ・スタブ・ファイルのみを作成します。

aux

サーバ補助ファイルのみを作成します。現時点では補助ファイルは作成されず、このオプションの影響はありません。

none

サーバ・ファイルは作成されません。

-cstub filename

クライアント・スタブ・ファイルのファイル名を指定します。ファイル名に .c 拡張子が付かない場合には、IDL コンパイラが拡張子を付加します。デフォルトのクライアント・スタブ名 (-cstub が指定されない場合) は、_cstub.c が付加された IDL ソース・ファイルのベース名 (ディレクトリやピリオドの後の接尾語の付かない単純なファイル名) です。関連するクライアント・スタブ・オブジェクト・ファイルには、クライアント・スタブ・ファイルの名前に .c ではなく .o が付加されます。

-sstub filename

サーバ・スタブ・ファイルのファイル名を指定します。ファイル名に .c 拡張子が付かない場合には、IDL コンパイラが拡張子を付加します。デフォルトのサーバ・スタブ名 (-sstub が指定されない場合) は、_sstub.c が付加された IDL ソース・ファイルのベース名 (ディレクトリやピリオドの後の接尾語の付かない単純なファイル名) です。関連するサーバ・スタブ・オブジェクト・ファイルには、サーバ・スタブ・ファイルの名前に .c ではなく .o が付加されます。

-caux filename

クライアント補助ファイルのファイル名を指定します。ファイル名に .c 拡張子が付かない場合には、IDL コンパイラが拡張子を付加します。デフォルトのクライアント補助名 (-caux が指定されない場合) は、_caux.c が付加された IDL ソース・ファイルのベース名 (ディレクトリやピリオドの後の接尾語の付かない単純なファイル名) です。関連するクライアント補助オブジェクト・ファイルには、クライアント補助ファイルの名前に .c ではなく .o が付加されます。

-saux filename

サーバ補助ファイルのファイル名を指定します。ファイル名に .c 拡張子が付かない場合には、IDL コンパイラが拡張子を付加します。デフォルトのサーバ補助名 (-saux が指定されない場合) は、_saux.c が付加された IDL ソース・ファイルのベース名 (ディレクトリやピリオドの後の接尾語の付かない単純なファイル名) です。関連するサーバ補助オブジェクト・ファイルには、サーバ補助ファイルの名前に .c ではなく .o が付加されます。

-header filename

作成されるヘッダ・ファイルのファイル名を指定します。デフォルトのヘッダ・ファイル名 (-header が指定されない場合) は、.h が付加された IDL ソース・ファイルのベース名 (ディレクトリやピリオドの後の接尾語の付かない単純なファイル名) です。

-out directory

出力ファイルが作成されるディレクトリを指定します。デフォルト (-out が指定されない場合) では、ファイルは現在の作業ディレクトリに作成されます。

-keep type

どのファイル・タイプを保持するか指定します。デフォルトでは、IDL コンパイラは C のソース・ファイル (たとえば、クライアント・スタブ) を作成し、C コンパイラを使用してオブジェクト・ファイルを作り、C のソース・ファイルを削除します。保存できるファイル・タイプは次のとおりです。

none

いずれのファイルも作成しないか、C コンパイラを呼び出しません。

c_source

C のソース・ファイルのみを保存して、C コンパイラは呼び出しません。

object

オブジェクト・ファイルのみを保存して、C のソース・ファイルを削除します (これがデフォルトになります)。

all

C のソース・ファイルとオブジェクト・ファイルの両方を保存します。

-I directory

インポートされた IDL ファイルとインクルード・ファイルを検索するディレクトリを指定します。-I の後の空白は任意です。-I オプションを複数回指定して、複数のディレクトリを指定できます。デフォルトでは、まず現在の作業ディレクトリを検索し、次いで -I オプションで指定したディレクトリを指定された順に検索し、その後システムの IDL ディレクトリ ($TUXDIR/include) を検索します。この順序は、インクルード・ディレクトリを C プリプロセッサと C コンパイラに渡す場合も同様です。ファイルが複数のディレクトリに存在する場合には、上記の検索順で最初に見つかったファイルが使用されます。

-no_def_idir

-I オプションと一緒に使用しない場合には、インポート・ファイルとインクルード・ファイルを、現在の作業ディレクトリのみで検索するようにします。1 つまたは複数の -I オプションと共に使用する場合には、-I ディレクトリのみを検索します (現在の作業ディレクトリやシステムの IDL ディレクトリは検索されません)。

-cpp_cmd "cmd"

ソース・ファイルを拡張するために C プリプロセッサ・コマンドを指定します。

-no_cpp

C プリプロセッサがソース・ファイルの拡張を行わないようにします。これは、ソース・ファイルにはプリプロセッサ・ディレクティブ (マクロ置換や #include など) を含めないことを意味します。

-cpp_opt "opt"

C プリプロセッサに渡される追加オプションを指定します。デフォルト値はヌルの文字列です。IDL コンパイラは、-cpp_cmd-cpp_opt-D-U 引数 (指定された順)、-I 引数 (指定された順)、およびソース・ファイル名 (IDL または ACF ファイル名) で構成するコマンドラインを実行します。

-D name[=def]

名前を定義し、オプションとして C プリプロセッサに渡される値も定義します。-D オプションを複数回指定することで、複数のシンボルを定義できます。-D の後の空白は任意です。

-U name

C プリプロセッサのために定義した名前を取り消します。-U オプションを複数回指定することで、複数のシンボルの定義を取り消せます。-U の後の空白は任意です。

-cc_cmd "cmd"

オブジェクト・ファイルを作成するための C コンパイラ・コマンドを指定します。デフォルト (-cc_cmd を指定しない場合) は、"cc -c" です。

-cc_opt "opt"

追加の C コンパイラ・オプションを指定します。デフォルト (-cc_opt を指定しない場合) は、ヌルの文字列です。IDL コンパイラは、-cc_cmd-cc_opt-I 引数 (指定された順)、およびソース・ファイル名 (スタブまたは補助ファイル名) で構成するコマンドラインを実行します。

-syntax_check

出力ファイルは作成せずに、入力ファイルの構文エラーを調べます。

-no_warn

コンパイラからの警告メッセージが出力されないようにします。

-confirm

ソース・ファイルのコンパイルは行わず、(明示的に、または暗黙的に) 選択した IDL コンパイラのオプションを表示します。-v オプションと共に使用すると、-confirm なしの場合に実行する処理を表示し、実際の処理は行いません。たとえば、入力ファイルの解析、出力ファイルの作成、コンパイル時のメッセージを表示します。

-v

冗長モードを指定します。行われている処理についてのメッセージ (たとえば、入力ファイルの解析、出力ファイルの作成、コンパイルなど) が、標準エラー出力に表示されます。

-version

IDL コンパイラのバージョン番号を表示します。

-stdin

ファイルからではなく、標準入力から IDL ソース入力を獲得します。デフォルトのファイル名は、入力 IDL ソース・ファイルが "a.idl" と命名されているものとして作成されます (たとえば、デフォルトのクライアント・スタブ・ファイルは "a_cstub.c" と命名されます)。

-cepv

クライアント・エントリ・ポイント・ベクトル (CEPV) を作成します。デフォルトではクライアント・スタブ・モジュール内の関数は、インターフェイス定義でのオペレーション名に命名されます。ただし、これは複数のバージョンのインターフェイス、同じオペレーション名を持つインターフェイス、あるいは同じクライアント・プログラム (オペレーション名が複数回定義される) にリンクされるローカルとリモートの同一関数には許可されません。

-cepv オプションを指定すると、関数名はクライアント・スタブに対してローカルに宣言され、クライアント・エントリ・ポイント・ベクトル (関数ポインタの配列) が、interface_vmajor_minor_c_epv という名前でクライアント・スタブ内に (グローバルに) 定義されます。interface はインターフェイス名で、major はメジャー・バージョン番号、minor はマイナー・バージョン番号です。インターフェイス・オペレーションは、CEPV 内のアドレスを用いて間接的に呼び出されなければなりません。

-no_mepv

マネージャ (サーバ) エントリ・ポイント・ベクトル (MEPV) を作成しません。デフォルトではサーバ内のアプリケーション関数は、インターフェイス定義のオペレーション名に命名されるものと想定します。ただし、これは複数のバージョンのインターフェイス、同じオペレーション名を持つインターフェイス、あるいは同じサーバ・プログラム (オペレーション名が複数回定義される) にリンクされるローカルとリモートの同一関数には許可されません。通常、マネージャ・エントリ・ポイント・ベクトル (関数ポインタの配列) は、interface_vmajor_minor_s_epv という名前でサーバ・スタブ内に (グローバルに) 定義されます。interface はインターフェイス名で、major はメジャー・バージョン番号、minor はマイナー・バージョン番号で、オペレーション名で初期化されます。アプリケーション・サービス関数を呼び出すのに使用します。-no_mepv オプションを指定すると、MEPV はサーバ・スタブ内には作成されず、アプリケーションで構造体を設定する必要があります。この方法では、アプリケーションはエントリ・ポイント名をオペレーションに基づく名前ではなく、アプリケーションで使用する任意の名前に設定することができます。

-error all

追加のエラー・チェッキングを指定します。デフォルトでは、IDL コンパイラはエラーが 50 回検出されると終了します。

-port level

移植性検査のレベルを指定します。次のレベルがサポートされています。

case

2 つの識別子に大文字と小文字の区別しかない場合には、警告メッセージを出力します。

none

追加の移植性検査を行わないようにします。これがデフォルトの設定です。

-no_enum_lit

列挙リテラルがスタブ・フィールドに作成されないようにします。デフォルトでは列挙リテラルが作成されます。

-use_const

#define 定義の代わりに ANSI C const 宣言が定数値に使用されます。

IDL ソース・ファイルとすべてのインポート IDL ファイルでは、コンパイラは IDL ソース・ファイルのベース名に付加された接尾語 .acf の付いた関連する ACF を検索します。検索するディレクトリは C プリプロセッサで指定されたのと同じもの (上述の -I-no_def_idir を参照) で、ACF ファイルは IDL ソース・ファイル名で指定されたディレクトリで検索されます。

注意事項

IDL のファイル名 tbase.idl は、IDL コンパイラのために予約されています。

使用例

IDL ソース・ファイル math1.idl の例を次に示します。

[uuid(2048A080-0B0F-14F8-26E0-930269220000)] 
interface math1
{
import "math2.idl";

long add_op([in] long first1, [in] long second);
long sub_op([in] long first1, [in] long second);
}

次にサンプルの ACF ソース・ファイル math1.acf を示します。

[auto_handle]  
interface math1
{
include "stdio";
[code] add_op([fault_status,comm_status] result);
}

次のコマンドラインは、out/math1.h と共に、クライアント側のファイル out/math1_cs.cout/math1_cs.o のみを作成する(補助ファイルは必要ありません) math1.idl をコンパイルします。I DL コンパイラはカレント・ディレクトリ、app サブディレクトリ、および $TUXDIR/include ディレクトリで math2.idl (除算と乗算を行います) を検索します。

tidl math1.idl -Iapp -client all -server none -keep all
-cstub math1_cs -out app

関連項目

uuidgen(1)

 

先頭へ戻る 前のトピックへ 次のトピックへ