Tt_message ( *Ttdt_file_cb)( Tt_message msg, Tttk_op op, char * pathname, void * clientdata, int same_euid_egid, int same_procid ); Tt_pattern * ttdt_file_join( const char * pathname, Tt_scope the_scope, int join, Ttdt_file_cb cb, void * clientdata );
ttdt_file_join() 関数は、指定のファイルに関する ToolTalk イベントを監視できるように登録します。Deleted、Modified、Reverted、Moved、Saved の 5 種類の通知を監視するように配信範囲に登録します。
コールバック・メッセージ引き数 Ttdt_file_cb は、表 A-5 に示すパラメータを取ります。
表 A-5 Ttdt_file_cb が取るパラメータ
パラメータ |
説明 |
---|---|
message |
送信中のメッセージ |
op |
要求されているオペレーション |
pathname | |
clientdata |
メッセージに含まれているクライアント・データ |
same_euid_egid |
送信側を識別するフラグ。この値が true の場合は、送信側の信頼性は高いです。 |
same_procid |
送信側を識別するフラグ。この値が true の場合は、送信側の procid は受信側と同じです。 |
the_scope パラメータの値がゼロ (つまり TT_SCOPE_NONE) の場合、ファイルの配信範囲はデフォルト (TT_BOTH) に設定されます。しかし、たとえば ToolTalk データベース・サーバ rpc.ttdbserver が pathname を所有するファイル・サーバにインストールされていない場合、ファイル配信範囲は TT_FILE_IN_SESSION に設定されます。
ttdt_file_join() 関数は the_scope の値および pathname のコピーとを Tt_patterns 型の戻り値に関連付けることで、ttdt_file_quit() 関数がパターンにアクセスすることを可能にします。呼び出し側は、ttdt_file_join() 呼び出しが返ると、pathname を変更または解放できます。
この関数は、NULL で終了する Tt_pattern 型の配列を返します。この配列を破棄するには、ttdt_file_quit() 関数を使用します。エラーが返される場合、返された配列は tt_ptr_error で解読できるエラー・ポインタです。表 A-6 は、ttdt_file_join() 関数が返す可能性のあるエラーの一覧です。
表 A-6 ttdt_file_join が返す可能性のあるエラー
エラーの値 |
説明 |
---|---|
ttsession プロセスが存在しません。ToolTalk サービスは、ttsession が実行されていない場合はその再起動を試みます。このエラーは、ToolTalk サービスがインストールされていないか正しくインストールされていないかのどちらかを示します。 |
|
ToolTalk サービスが、このオペレーションに必要な ToolTalk データベースにアクセスできませんでした。 |
|
ToolTalk サービスが、指定された ToolTalk データベースを予期した場所で見つけることができませんでした。 |
|
ToolTalk サービスが、指定されたファイル・パス名でディレクトリを読み取ることができませんでした。 |
|
オペレーションを実行するのに十分なメモリがありません。 |