txidl(IDLコンパイラ)
形式
txidl filename 〔argument〕…
機能
TxRPC用インタフェース定義言語コンパイラを起動します。
argumentに指定する引数
●-cptype process_type
クライアントのプロセスタイプを指定します。process_typeには,次に示すどれかを指定します。
-
ndce
このプロセスはTP1/Server Baseのライブラリを使います。
-
nbet
このプロセスはDCEのライブラリだけを使います。
何も指定しなかった場合は,ndceとして扱います。間違ったプロセスタイプを指定してコンパイルしたプログラムは動作しません(例えば,nbetを指定してコンパイルしたスタブにTP1/Server Baseライブラリを組み込んでも動作しません)。
●-sptype process_type
サーバのプロセスタイプを指定します。process_typeは,-cptypeと同じです。
何も指定しなかった場合は,ndceとして扱います。間違ったプロセスタイプを指定してコンパイルしたプログラムは動作しません(例えば,nbetを指定してコンパイルしたスタブにTP1/Server Baseライブラリを組み込んでも動作しません)。
●-client file_type
どのクライアントファイルを生成するかを決めます。この引数を指定しない場合,またはfile_typeを指定しない場合は,コンパイラはすべてのクライアントファイルを生成します。file_typeには,次に示す値を指定します。
-
none
ファイルを生成しません。
-
stub
スタブファイルだけを生成します。
-
all
スタブおよびクライアント生成ファイルを生成します。
●-server file_type
どのサーバファイルを生成するかを決定します。この引数を指定しない場合,またはfile_typeを指定しない場合は,コンパイラはすべてのサーバファイルを生成します。file_typeは,-clientと同じです。
●-cstub filename
クライアントスタブのパス名を指定します。
ファイル名を指定するときは,ファイル拡張子は指定しないでください。C言語のソースファイルには".c"をtxidlコンパイラが付けます。-cstubオプションを使わない場合は,_cstub.cをtxidlコンパイラが付けます。
クライアントのプロセスタイプがgateway,サーバのプロセスタイプがdceの場合,2種類のスタブファイルが生成されます。この場合,OpenTP1のスタブファイル名は,filenameの先頭に大文字の"B"を付けた名称になります。
●-sstub filename
サーバスタブのパス名を指定します。ファイル名を指定するときは,ファイル拡張子は指定できません。C言語のソースファイルには".c"をtxidlコンパイラが付けます。-sstubオプションを使わないと,_sstub.cをtxidlコンパイラが付けます。
●-header header_file
生成されるヘッダファイルのパス名を指定します。
ファイル名を指定するときは,ファイル拡張子は指定しないでください。省略時仮定値として,IDLファイルのベース名に".h"をtxidlコンパイラが付けます。
●-cconf conffile
クライアントプログラムのユーザサービス定義ファイル,または環境設定ファイルのパス名を指定します。-cconfオプションを使わないと,IDLファイルのベース名の先頭に"C"を付けた名称のファイルが生成されます。このオプションは,プロセスタイプの組み合わせがIDL-only TxRPCのときだけ有効です。それ以外で指定した場合は,エラーにはならないで,無視されます。
●-sconf conffile
サーバプログラムのユーザサービス定義ファイルのパス名を指定します。-sconfオプションを使わないと,IDLファイルのベース名の先頭に"S"を付けた名称のファイルが生成されます。このオプションは,プロセスタイプの組み合わせがIDL-only TxRPCのときだけ有効です。それ以外で指定した場合は,エラーにはならないで,無視されます。
●-out directory
指定したディレクトリに出力ファイルを生成します。省略時仮定値では,コンパイラはカレントディレクトリに出力ファイルを生成します。
ほかのオプションでパス名が指定されている場合は,指定した順番に関係なく,そちらが優先されます。
●-Idirectory
インポートするインタフェース定義ファイルを含むディレクトリ名を指定します。コマンド行に追加の-Idirectory引数を指定して,複数のディレクトリを指定できます。コンパイラは,この引数に指定した順番にディレクトリを検索します。
一つのファイルが複数のディレクトリ内にある場合,コンパイラは最初に現れるファイルをインポートします。
この引数を省略した場合,次に示す順番でディレクトリを検索します。
-
カレントディレクトリを検索
-
指定されたすべてのディレクトリを検索
-
システムIDLディレクトリ($DCDIR/include)を検索
●-no_def_idir
コンパイラがカレントディレクトリだけでインポートファイルを検索します。
-Idirectoryと一緒にこのオプションを指定すると,コンパイラはユーザが指定したディレクトリだけを検索して,カレントディレクトリやシステムディレクトリを検索しません。
●-noconf
OpenTP1のユーザサービス定義や環境設定ファイルのテンプレートを生成しません。プロセスタイプの組み合わせがIDL-only TxRPCのときだけ有効です。
●-noserver
サーバプログラムのテンプレートを生成しません。プロセスタイプの組み合わせがIDL-only TxRPCのときだけ有効です。
●-syntax_only
IDLファイルの構文だけをチェックして,ファイルは出力しないことを指定します。
説明
-
txidlコマンドは,IDLで書かれたインタフェース定義を解析して,ヘッダファイル,サーバスタブファイル,クライアントスタブファイル,補助ファイル,OpenTP1用定義ファイルのテンプレートなどを生成します。
-
IDLコンパイラは,関連するACFを各ディレクトリで検索します。例えば,source.idlという名称のファイルをコンパイルすると,コンパイラは自動的にsource.acfという名称のファイルを検索します。また,インポートされたIDLファイル(および関連するACF)も検索します。コンパイラは,次の順番でこれらのファイルを検索します。
-
カレントディレクトリ
-no_def_idir および-Idirectory引数を一緒に指定しないかぎり,コンパイラは常にこのディレクトリを検索します。
-
インポートされたディレクトリ
コンパイラは-Idirectory引数に指定する各ディレクトリを検索します。
-
システムIDLディレクトリ
コンパイラは,システムIDLディレクトリ内にあるdctrpb.idlを自動的にインポートします。-no_def_idir引数を指定しないかぎり,コンパイラは常にこのディレクトリを検索します。
-
ソースファイル名に指定されたディレクトリ
ソースIDLパス名に明示的にディレクトリを指定すると,対応するACFがそのディレクトリで検索されます。
-
-
IDL-only TxRPCでは,自動的にtxidlコマンドがOpenTP1用定義ファイルを生成します。txidlコマンドに指定したオプションによって,生成しないようにもできます。
-
オペレーション名を変更した場合は,OpenTP1定義ファイルも生成し直す必要があります。
メッセージ
txidlコンパイラが出力するメッセージには,次の3種類があります。次に示す該当するマニュアルを参照してください。
-
txidlコンパイラ自身が出力するメッセージ
マニュアル「OpenTP1 メッセージ」を参照してください。
-
txidlコンパイラが起動するDCE idlが出力するメッセージ
DCEの該当するマニュアルを参照してください。
-
DCE idlが起動するcppまたはccが出力するメッセージ
各コマンドに該当するマニュアルを参照してください。
関連するファイル
- IDL-only TxRPCに関連するファイルを次に示します。
-
$DCDIR/bin/txidl:IDLコンパイラ
$DCDIR/include/dctrpb.idl:システム用IDLファイル
$DCDIR/include/dctrp.h:ヘッダファイル
注意事項
-
IDLコンパイラは,ANS Cコードを生成します。Cコンパイラによるスタブのコンパイル中に警告メッセージは返りませんが,完全にANSI C仕様でないCコンパイラは,次のメッセージを通知する場合があります。
warning:& before array or function: ignored
warning:enumeration type clash,operator =
-
オプションとパラメタの間は空白を入れてください。
(例)-out ×××(-out×××とは指定できません)
-
次に示すファイル名は,IDLコンパイラで予約しています。この中のどれかを使ってIDLファイルに名前を付けた場合は,動作は保証しません。
iovector.idl,lbase.idl,nbase.idl,ncastat.idl,rpc.idl,rpcbase.idl,rpcpvt.idl,rpcsts.idl,rpctypes.idl,twr.idl,uuid.idl,dctrpb.idl
-
このバージョンではRPC TxRPCをサポートしていません。したがって,txidlコマンドの-cptypeオプション,および-sptypeオプションのプロセスタイプにnbetを指定しても,生成されたスタブファイルは使用できません。