ToolTalk ユーザーズガイド

配信範囲属性

メッセージパターンに次のような配信範囲の型を指定できます。

  1. セッションだけの配信範囲

  2. ファイルだけの配信範囲

  3. 特定のセッションのファイルだけの配信範囲

  4. ファイルおよびセッションのどちらか、または両方への配信範囲


注 -

ファイルの配信範囲指定機能を使用できるのは、NFS ファイルシステムと UFS ファイルシステムだけです。たとえば、tmpfs ファイルシステムなどの他の型のファイルシステムでは、ファイルへの配信範囲は指定できません。


セッションだけの配信範囲指定

TT_SESSION 型は、セッションだけを配信範囲とします。静的セッション配信範囲指定のパターンは、明示的な tt_session_join 呼び出しに配信範囲の値を設定するように要求します。動的セッション配信範囲指定のパターンは、tt_session_join 呼び出しまたは tt_pattern_session_add 呼び出しのどちらかによって設定できます。


注 -

これらの呼び出しが指定するセッションは、デフォルトセッションでなければなりません。


例 3-1 は、静的セッション配信範囲指定のパターンを示します。例 3-2 は、動的セッション配信範囲指定のパターンを示します。


例 3-1 静的セッション配信範囲指定のパターン

Obtain procid 

tt_open(); 

Ptype is scoped to session 

tt_ptype_declare(ptype); 

Join session 

tt_session_join(tt_default_session()); 



例 3-2 ファイル属性による動的セッション配信範囲指定のパターン

Obtain procid 

tt_open(); 

Create pattern 

Tt_pattern pat = tt_create_pattern(); 

Add scope to pattern 

tt_pattern_scope_add(pat, TT_SESSION); 

Add session to pattern 

tt_pattern_session_add(tt_default_session()); 

Register pattern 

tt_pattern_register(pat); 


ファイルだけの配信範囲指定

TT_FILE 型は、ファイルだけを配信範囲とします。例 3-3 は、静的ファイル配信範囲指定のパターンを示します。例 3-4 は、動的ファイル配信範囲指定のパターンを示します。


例 3-3 静的ファイル配信範囲指定のパターン

Obtain procid 

tt_open(); 

Ptype is scoped to file 

tt_ptype_declare(ptype); 

Join file 

tt_file_join(file); 



例 3-4 動的ファイル配信範囲指定のパターン

Obtain procid 

tt_open(); 

Create pattern 

Tt_pattern pat = tt_create_pattern(); 

Add scope to pattern 

tt_pattern_scope_add(pat, TT_FILE); 

Add file to pattern 

tt_pattern_file_add (pat, file); 

Register pattern 

tt_pattern_register(pat); 


セッション内のファイルへの配信範囲指定

TT_FILE_IN_SESSION 型は、指定セッション内の指定ファイルだけを配信範囲とします。この配信範囲設定によってパターンは、ファイルとセッションの両方を配信範囲とするメッセージだけに一致します。例 3-5 では、セッションを追加してからパターンを登録します。


例 3-5 TT_FILE_IN_SESSION 配信範囲指定のパターンへのセッション追加

Obtain procid 

tt_open(); 

Create pattern 

Tt_pattern pat = tt_create_pattern(); 

Add scope to pattern 

tt_pattern_scope_add(pat,TT_FILE_IN_SESSION); 

Add file to pattern 

tt_pattern_file_add(pat, file); 

Add session to pattern 

tt_pattern_session_add(pat, tt_default_session()); 

Register pattern 

tt_pattern_register(pat); 


例 3-6 は、パターンを登録してからセッションを結合します。


例 3-6 TT_FILE_IN_SESSION 配信範囲指定のパターンのセッションを設定するためのセッション結合

Obtain procid 

tt_open(); 

Create pattern 

Tt_pattern pat = tt_create_pattern(); 

Add scope to pattern 

tt_pattern_scope_add(pat, TT_FILE_IN_SESSION); 

Add file to pattern 

tt_pattern_file_add(pat, file); 

Register pattern 

tt_pattern_register(pat); 

Join session 

tt_session_join(tt_default_session()); 


例 3-7 は、静的パターンの配信範囲の値を設定します。


例 3-7 TT_FILE_IN_SESSION 静的パターンの配信範囲値の設定

Obtain procid 

tt_open(); 

Declare Ptype 

Tt_ptype_declare(ptype); 

Join File 

tt_file_join(file); 

Join session 

tt_session_join(tt_default_session()); 


ファイル、セッション、または両方への配信範囲指定

TT_BOTH 配信範囲指定のパターンは、ファイル、セッション、またはその両方へ配信範囲指定したメッセージと一致します。しかし、この配信範囲指定を使用する場合は、tt_file_join 呼び出しを明示的に行う必要があります。呼び出しを行わないと、ToolTalk サービスは登録されたパターンのファイルとセッションの両方に配信範囲指定したメッセージだけに一致します。例 3-8例 3-9 は、この配信範囲の使用例を示します。


例 3-8 TT_BOTH 配信範囲を使用する動的パターン

Obtain procid 

tt_open(); 

Create pattern 

Tt_pattern pat = tt_create_pattern(); 

Add scope to pattern 

tt_pattern_scope_add(pat, TT_BOTH); 

Add session to pattern 

tt_pattern_session_add(pat,tt_default_session()); 

Add file to pattern 

tt_pattern_file_add (pat, file); 

Register pattern 

tt_pattern_register(pat); 



例 3-9 TT_BOTH 配信範囲を使用する静的パターン

Obtain procid 

tt_open(); 

Declare Ptype 

Tt_ptype_declare(ptype); 

Join file 

tt_file_join(file) 

Join session 

tt_session_join(tt_default_session()); 


配信範囲指定したパターンへのファイルの追加

同じファイル属性を持つ TT_SESSION 配信範囲指定のメッセージと TT_SESSION 配信範囲指定のパターンを一致させるために、tt_pattern_file_add 呼び出しによって、ファイル属性を TT_SESSION 配信範囲指定のパターンに追加できます (詳細は、例 3-10 を参照してください)。


注 -

ファイル属性の値は、パターンの配信範囲に影響しません。



例 3-10 2 つのファイル属性のセッション配信範囲指定したパターンへの追加

Obtain procid 

tt_open(); 

Create pattern 

Tt_pattern pat = tt_create_pattern(); 

Add scope to pattern 

tt_pattern_scope_add(pat, TT_SESSION); 

Add session to pattern 

tt_pattern_session_add(tt_default_session()); 

Add first file attribute to pattern 

tt_pattern_file_add(pat, file1); 

Add second file attribute to pattern 

tt_pattern_file_add(pat, file2); 

Register pattern 

tt_pattern_register(pat);