ToolTalk ユーザーズガイド

ファイル配信範囲

メッセージをファイルに配信範囲指定した場合は、そのファイルを結合している (かつ残りの属性に一致している) アプリケーションだけがメッセージを受信します。1 つのファイルを処理の対象として共有するアプリケーションは、同じセッションで実行している必要はありません。

パターンへの設定

メッセージがファイル配信範囲であることをパターンに指定する際、使用できる型を表 8-2 に示します。

表 8-2 メッセージのファイル配信範囲をパターンに指定する際の型

配信範囲の型 

説明 

TT_FILE

指定したファイルだけを配信範囲とする。同時にセッション属性も設定すればセッション中のファイルと同様な配信範囲を指定できるが、配信範囲が TT_FILE になっていると、tt_session_join を呼び出してもそのパターンのセッション属性は更新されない

TT_BOTH

処理の対象となるファイルとセッションの「論理和」を配信範囲とする。ファイル、セッション、またはその両方を配信範囲とするメッセージに一致するのは、この配信範囲を指定したパターンだけである 

TT_FILE_IN_SESSION

処理の対象となるファイルとセッションの「論理積」を配信範囲とする。ファイルとセッションを同時に配信範囲とするメッセージにだけ一致するのは、この配信範囲を指定したパターンだけである 

TT_FILE_IN_SESSIONTT_SESSION の論理和を配信範囲に指定するには、例 8-1 のように両方の配信範囲を同じパターンに追加します。


例 8-1 TT_FILE_IN_SESSIONTT_SESSION の論理和を配信範囲に指定する場合

	tt_open();

	Tt_pattern pat = tt_create_pattern();
	tt_pattern_scope_add(pat, TT_FILE_IN_SESSION);
	tt_pattern_scope_add(pat, TT_SESSION);
	tt_pattern_file_add(pat, file);
	tt_pattern_session_add(pat, tt_default_session());
	tt_pattern_register(pat);


メッセージへの設定

メッセージのファイル配信範囲の型も、パターンと同じです。この型を表 8-3 に示します。

表 8-3 メッセージ用の配信範囲

配信範囲の型 

説明 

TT_FILE

処理対象のファイルを登録した全クライアントをメッセージの配信範囲とする 

TT_BOTH

処理対象のセッション、ファイル、またはセッションとファイルの両方を登録した全クライアントをメッセージの配信範囲とする 

TT_FILE_IN_SESSION

処理対象のファイルとセッションを同時に登録した全クライアントをメッセージの配信範囲とする 

TT_SESSION + tt_message_file_set()

処理対象のセッションを登録した全クライアントをメッセージの配信範囲とする。パターンが一致するクライアントは、メッセージを受信すると tt_message_file を呼び出して、そのファイル名を入手できる

メッセージの配信範囲が TT_FILE または TT_BOTH の場合は、ToolTalk クライアントライブラリが、そのファイルを処理対象とするクライアントのセッションをデータベースサーバーからすべて探し出し、それらの ToolTalk セッションにメッセージを送信します。ToolTalk セッションは、その後でメッセージとクライアントを照合します。メッセージの送信側は、tt_file_join を明示的に呼び出す必要はありません。

配信範囲が TT_FILE_IN_SESSION または TT_SESSION のメッセージにファイルを指定しても、ToolTalk データベースサーバーには連絡されず、メッセージは指定したセッション配信範囲のクライアントにしか送信されません。