メッセージパターンの属性は、ユーザーが受信したいメッセージの型を指定します。1 つの値しか設定されない属性があっても、1 つのパターンに追加する属性のほとんどに、複数の値を設定できます。
メッセージパターンに設定できる属性の完全なリストを表 3-1 に示します。
表 3-1 ToolTalk メッセージパターンの属性
パターン属性 |
値 |
説明 |
---|---|---|
カテゴリ |
|
メッセージに表示されている操作を実行するか、メッセージの監視だけを行うかを宣言する |
配信範囲 |
|
セッションおよびファイル、またはそのどちらかに関するメッセージを対象としていることを宣言する。sessid およびファイル名を更新するためにメッセージパターンを登録した後、セッションまたはファイルを結合する |
引数 |
引数または結果 |
処理の対象とする操作の定位置引数を宣言する |
コンテキスト |
<名前, 値> |
処理の対象とする操作のキーワードまたは非定位置引数を宣言する |
クラス |
|
通知、要求、提供、またはそれらすべてを受信するかどうかを宣言する |
ファイル |
char *pathname |
処理の対象とするファイルを宣言する。配信範囲がファイルに関係しない場合、このパターン属性は無効である |
オブジェクト |
char *objid |
処理の対象とするオブジェクトを宣言する |
操作 |
char *opname |
処理の対象とする操作を宣言する |
otype |
char *otype |
処理の対象とするオブジェクトの型を宣言する |
アドレス |
|
処理の対象とするアドレスの型を宣言する |
処置 |
|
インスタンスを実行中でなければ、アプリケーションへのメッセージの処理方法を ToolTalk サービスに指示する |
送信側 |
char *procid |
処理の対象とする送信側を宣言する |
sender_ptype |
char *ptype |
処理の対象とする送信側プロセスの型を宣言する |
セッション |
char *sessid |
処理の対象とするセッションを宣言する |
状態 |
|
処理の対象とするメッセージの状態を宣言する |
少なくとも指定しなければならないすべてのメッセージパターンは次のとおりです。
カテゴリ - アプリケーションが、メッセージに表示されている操作を実行するか、またはメッセージの表示だけを行うか
メッセージの監視だけを行う場合は、TT_OBSERVE
を使用します。
メッセージによって要求される操作を実行する場合は、TT_HANDLE
を使用します。
別の HANDLE カテゴリの任意のパターンを使用する前に TT_HANDLE_PUSH
のカテゴリがあり、その最後に登録したパターンを使用したい場合は、TT_HANDLE_PUSH
を使用します。
TT_HANDLE
を使用したいときは、TT_HANDLE_ROTATE
を使用します。適切な TT_HANDLE_PUSH
パターンが見つからないときは、他の TT_HANDLE
パターンを使う前に、一番古くに使用された TT_HANDLE_ROTATE
パターンを使ってメッセージを配信します。
配信範囲 - アプリケーションが、特定のセッションまたはファイルに関するメッセージを処理の対象としているか
自分のセッション内で他のプロセスからメッセージを受信するには、TT_SESSION
を使用します。
結合したファイルに関するメッセージを受信するには、TT_FILE
を使用します。
このセッションにいる間に結合したファイルへのメッセージを受信するには、TT_FILE_IN_SESSION
を使用します。
ファイル、セッション、または結合したファイルとセッションの両方のメッセージを受信するには、TT_BOTH
を使用します。
ToolTalk サービスは、次のようにメッセージ属性をパターン属性と比較します。
次の場合は、ToolTalk サービスはメッセージ属性が一致したと見なします。
パターン属性が指定されていない
パターンが、コンテキストスロットを指定しない
パターンが、空のコンテキストスロットを持っている
指定するパターン属性が少ないほど、より多くのメッセージを受信する資格を持つようになります。
パターン属性用に指定された値が複数ある場合は、値の 1 つがメッセージ属性値に一致しなければなりません。値が一致しない場合、ToolTalk サービスは、アプリケーションを受信側とは見なしません。
メッセージにコンテキストスロットが含まれる場合、ToolTalk サービスは、アプリケーションを受信側とは見なしません。ただし、次のような場合は除きます。
パターンのコンテキストスロットに指定した値が、メッセージのコンテキストスロットに指定された値と一致する
複数のコンテキストスロットがメッセージに指定された場合、メッセージの各コンテキストスロットの値は、パターン内の対応するコンテキストスロットの値に一致する