ToolTalk 型機構は、ToolTalk サービス・ルート・メッセージに役立つように設計されています。ツールが ptype を宣言すると、そこにリストされているメッセージ・パターンが自動的に登録されます。ToolTalk サービスは、受信するメッセージとこれらの登録されたパターンを一致させます。これらの静的メッセージ・パターンは、ツールが ToolTalk サービスとの通信を終了するまで有効です。
ToolTalk 型データベースは、本リリースに付いているツール用の ptype をすでにインストールしてあります。次のようにして、ToolTalk 型データベースからインストールされた ptype のリストを取り出すことができます。
% tt_type_comp -d user|system|network -P
ptype の名前は、ソース形式で出力されます。
他のツールすべて (つまり、本リリースには含まれていないツール) に対して、最初に ptype ファイルを作成してアプリケーションの ptype を定義し、ToolTalk 型コンパイラ tt_type_comp で、ptype をコンパイルする必要があります。ptype を定義するには、次の情報をファイルに入れる必要があります。
ptype ファイルを作成するには、どのテキスト・エディタ (vi、emacs、dtpad など) でも使用できます。例 2-2 は、CoEd アプリケーション用の ptype ファイルからの一部分です。
ptype DT_CoEd { /* Process type identifier */ start "CoEd"; /* Start string */ handle: /* Receiving process */ /* * Display ISO_Latin_1 */ session Display( in ISO_Latin_1 contents) => start opnum = 1; /* Signature */ /* NOTE: A signature is divided * into two parts by the => as follows: * Part 1 specifies how the message is to be matched; * Part 2 specifies what is to be taken when * a match occurs. */ }
ptype ファイルを作成したら、ptype をインストールします。このためには、ToolTalk 型コンパイラを実行します。コマンド行に次のように入力してください。
% tt_type_comp CoEd.ptype
CoEd.ptype は、CoEd ptype ファイル名です。
ToolTalk サービスは、指定の ptype がすでに現在のセッションに登録されているかどうか、テストする単純関数を提供します。
// Test for existing ptype registered in current session tt_ptype_exists(const char *ptid)
ptid は登録用にテストするセッションの識別子です。
ToolTalk サービスは、コンパイルされた ToolTalk 型ファイルを現在実行中の ttsession にマージする関数を提供します。
// Merge new compiled ptypes into currently running ttsession tt_session_types_load(current_session, compiled_types_file)
上記の current_session は、現在のデフォルトの ToolTalk セッションです。compiled_types_file はコンパイルされた ToolTalk 型ファイル名です。この関数は、新しい型を追加し、同じ名前の既存の型と置換します。その他の既存の型は変更されません。