ToolTalk ユーザーズガイド

ToolTalk メッセージの一般的な定義と表記法

ToolTalk メッセージには、ToolTalk 独自の定義で使用する用語があります。この節では、これらの用語と ToolTalk メッセージのマニュアルページで使用している表記法を定義します。

表 C–1 文書メディア交換メッセージセットの用語

情報の種類 

説明 

ヘッダー 

次のフォーマットでメッセージを 1 行で説明したもの。 

MsgName (Tt_class)

MsgName はメッセージ名、Tt_class は要求か通知を表す。

名前 

メッセージ名と 1 行のメッセージの説明 

説明 

メッセージの要求操作または通知イベントについての説明 

フォーマット 

 

メッセージを次のようなフォーマットの ToolTalk 型ファイル構文 (ToolTalk 型コンパイラ tt_type_comp が処理する構文に似ている) で表記したもの。

<fileAttrib> <opName> (<requiredArgs> [<optionalArgs>]); 

フォーマットは、メッセージの種類ごとに示される。 

<fileAttrib>: メッセージのファイル属性。必須、オプション、指定不可のいずれかを示す。 

<opName>: 操作やイベント名を「op name」または「op」と呼ぶ。ツールが異なっても、同じ opName で異なるものを表さないことが重要である。このため、標準以外のメッセージの opName は一意にしなければならない。たとえば、「Acme_Hoarktool_My_Frammistat」のように、<会社名><製品名> という接頭辞を付けるのは良い方法である。 

<requiredArgs>、<optionalArgs>: メッセージに常に指定しなければならない引数。個々の引数は、次のフォーマットで表される。 

<mode> <vtype> <argument name> 

mode には in、out、inout のどれか 1 つを指定する。vtype はメッセージ引数のデータの種類を記述する文字列であり、プログラマが定義する。argument name は引数名を表す。

ToolTalk サービスは vtype を使用して、送信メッセージのインスタンスと登録済みメッセージパターンを照合する。通常、vtype は単一の決まったデータ型に対応する。 

必須引数 

メッセージに常に指定しなければならない引数。 

<vtype> <argumentName> 

「vtype」は、メッセージ引数のデータの種類を記述する文字列であり、プログラマが定義する。ToolTalk が vtype を使用するのは、送信メッセージのインスタンスと登録済みメッセージパターンの照合を行うためだけである。 

通常、vtype はすべて単一の決まったデータ型に対応させる。ToolTalk 引数のデータ型は、整数、文字列、バイトのいずれかである。メッセージ引数やパターン引数のデータ型は、その値を設定する ToolTalk API 関数で決まる。 

引数名は、C の typedef でのパラメタ名と同様、引数の構文の意味を分かりやすくするコメントである。 

オプション引数 

メッセージに指定してもよい引数。特に断らないかぎり、必須引数の後であれば、オプション引数をどのように組み合わせても、どのような順序で追加してもよい。 

説明 

要求が意味する操作や、通知が知らせるイベントについての説明 

エラー 

要求のハンドラや通知の送信側が設定できるエラーコードの一覧 

通達 — 要求に似た通知です。要求がデータを返さない (または、データが返されても送信側が見ない) 場合、その要求を一連のツールに送る方が便利なことがあります。通達は一種の通知であるため、どのツールがそのメッセージを入手してもデータや応答は得られず、送信側は何も知らされません。

ハンドラ — 要求を受け取る者の procid です。この procid のプロセスは、指示された操作を完了する義務があります。

通知 — イベントを知らせるメッセージです。通知を受信するツールがない場合も複数ある場合もあります。送信側は、ツールが通知を受信したかどうかは分かりません。通知に対して応答できません。

procid — ToolTalk メッセージを送受信する主体を表します。procid は ToolTalk サービスが (tt_open 時に) 作成して渡す身元です。プロセスはメッセージを送受信する際に procid を指定しなければなりません。1 つのプロセスで複数個の procid を使用することも、連携プロセスの 1 グループで 1 つの procid を使用することもできます。)

要求 — 操作を実行するよう要求するメッセージです。要求は、指示された操作を完了する義務のある、ハンドラという受け取る者を 1 つ持ちます。要求に対してハンドラは、異常終了、拒否、または応答が可能です。要求を拒否するハンドラはいくつあってもかまいません。最終的に要求に対して、異常終了させるか応答できるのは 1 つのハンドラだけです。要求を受け取るハンドラが動作していない場合、ToolTalk サービスはハンドラを 1 つ自動的に起動できます。要求を受け取るハンドラが見つからなかった場合やハンドラが要求を異常終了させた場合、その要求は「失敗」という状態で送信側に戻されます。