bea ホーム | 製品 | dev2dev | support | askBEA
BEA Logo Tuxedo
 ドキュメントのダウンロード   サイトマップ   用語集 
検索
0

Tuxedo コマンド・リファレンス

 Previous Next Contents View as PDF  

tidl(1)

名前

tidl−インターフェイス定義言語 (IDL) コンパイラ

形式

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 をコンパイルします。IDL コンパイラは、カレント・ディレクトリ、app サブディレクトリ、$TUXDIR/include の順に math2.idl (除算と乗算を行う) を検索します。

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

関連項目

uuidgen(1)

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy