ToolTalk ユーザーズガイド

現在のセッションまたはファイルによるメッセージパターンの更新

現在、処理の対象とするセッションまたはファイルによってメッセージパターンを更新するには、セッションまたはファイルを結合します。

デフォルトセッションの結合

セッションを結合するとき、ToolTalk サービスは、sessid によってメッセージパターンを更新します。たとえば、ptype を宣言する場合、あるいは TT_SESSION または TT_FILE_IN_SESSION を指定したメッセージパターンを登録する場合は、tt_session_join を使用してデフォルトセッションを結合します。次のコード例は、デフォルトセッションを結合する方法を示しています。

/*
* Join the default session
*/

tt_session_join(tt_default_session()); 

表 9–2 は、処理の対象とするセッションを結合する場合に使用する ToolTalk 関数を示しています。

表 9–2 デフォルトセッションを結合するための ToolTalk 関数

返される型 

ToolTalk 関数 

機能 

char *

tt_default_session(void)

デフォルトセッションの ID を返す 

Tt_status

tt_default_session_set(const char *sessid)

デフォルトセッションを設定する 

char *

tt_initial_session(void)

初期セッションの ID を返す 

Tt_status

tt_session_join(const char *sessid)

このセッションを結合する 

Tt_status

tt_session_quit(const char *sessid)

セッションを終了する 

パターンが更新されてしまうと、結合したセッションを配信範囲としたメッセージを受信します。


注 –

あらかじめセッションを結合しており、ptype または新しいメッセージパターンを登録した場合、新しいパターンに一致するメッセージを受信するためには、再び同じセッションまたは新しいセッションを結合してパターンを更新しなければなりません。


デフォルトセッションを参照するメッセージを受信する必要がなくなった場合は、tt_session_quit() 関数を使用します。この関数は、セッションに配信範囲指定されたメッセージパターンから sessid を削除します。

複数セッションの結合

複数のセッションを結合する場合、ユーザーは要求とポイントツーポイントメッセージに対する応答を自動的に受け取りますが、新しいセッションを明示的に結合しないかぎり通知を受け取ることはありません。次のコード例は、複数のセッションを結合する方法を示します。

tt_default_session_set(new_session_identifier);
tt_open();
tt_session_join(new_session); 

複数のセッションを効果的に使用するには、ユーザーが、対象とするセッションのセッション ID を格納しなければなりません。このセッションは、tt_open を使用して新しいセッションを開始する前に、tt_default_session_set にこれらの識別子を渡すためのものです。つまり、ユーザーは、システム上のファイルに値 (ttsession が環境変数 _SUN_TT_SESSION に格納する値) を配置する必要があり、これによって他の ToolTalk クライアントがそのファイルに含まれるセッション ID の値にアクセスでき、その値を使用して非デフォルトセッションを開始できます。たとえばユーザーは、セッション ID を「明らかに認識されている」ファイルに格納し、その後ファイル範囲指定のメッセージ (このファイルを示す) を、適切なパターンを登録したすべてのクライアントへ送信できます。その場合クライアントは、配信先ファイルを開始する情報を得て、そこから 1 つ以上のセッション ID を読み取ります。そしてこれらのセッション ID (tt_open を伴う) を使用して、非デフォルトセッションを開始します。これに代わる方法としては、たとえば、ネームサービスまたは第三者データベースを使用してセッション ID を通知するなどの手段があります。


注 –

ttsession セッション ID が、どのように格納されて対象とするクライアントに渡されるかは、ToolTalk プロトコルの範囲を越えており、システムのアーキテクチャに基づいて決定されなければなりません。


処理の対象とするファイルの結合

ファイルを結合する場合、ToolTalk サービスは、ファイルに配信範囲指定されたメッセージパターンにファイル名を自動的に追加します。たとえば、プロセス型を宣言する、あるいは TT_FILE または TT_FILE_IN_SESSION を指定したメッセージパターンを登録する場合、tt_file_join() 関数を使用して処理の対象とするファイルを結合します。表 9–3 は、特定の処理対象のファイルを示すために使用する ToolTalk 関数を示しています。

表 9–3 処理対象とするファイルを結合するための ToolTalk 関数

返される型 

ToolTalk 関数 

機能 

char *

tt_default_file(void)

デフォルトファイルを結合する 

Tt_status

tt_default_file_set(const char *docid)

デフォルトファイルを設定する 

Tt_status

tt_file_join(const char *filepath)

このファイルを結合する 

Tt_status

tt_file_quit(const char *filepath)

ファイルを終了する 

ファイルを参照するメッセージを受信する必要がなくなった場合、tt_file_quit() 関数を使用して、ファイルに配信範囲指定したメッセージパターンからファイル名を削除します。