共通デスクトップ環境 ToolTalk メッセージの概要

ttdt_session_join

Tt_message  ( *Ttdt_contract_cb) (  Tt_message          msg,
                                    void *              clientdata
                                    Tt_message          contract );     
Tt_pattern  * ttdt_session_join (   const char *        sessid,
                                    Ttdt_session_cb     cb,
                                    Widget              shell,
                                    void *              clientdata,
                                    int                 join);

ttdt_session_join() 関数は、「デスクトップの良き市民」として ToolTalk セッションに参加します。つまり、セッション sessid への参加時に多くの標準デスクトップ・メッセージ・インタフェースのパターンとデフォルト・コールバックを登録します。表 A-16 は、この関数が現在登録しているメッセージ・インタフェースの一覧です。

表 A-16 ttdt_session_join が登録している標準メッセージ

要求 

処理方法 

Get_Environment, Set_Environment

これらのメッセージは透過的に処理されます。 

Get_Locale, Set_Locale

これらのメッセージは透過的に処理されます。 

Get_Situation, Set_Situation

これらのメッセージは透過的に処理されます。 

Signal

このメッセージは透過的に処理されます。 

Get_Sysinfo

このメッセージは透過的に処理されます。 

Get_Geometry, Set_Geometry

shell パラメータの値が NULL でなく、シェルが実体化された mappedWhenManaged applicationShellWidget の場合は、これらのメッセージは透過的に処理されます。シェルが mappedWhenManaged applicationShellWidget でない場合は、エラー TT_DESKTOP_ENOTSUP とともに異常終了します。

Get_Iconified, Get_Iconified

shell パラメータの値が NULL でなく、シェルが実体化された mappedWhenManaged applicationShellWidget の場合は、これらのメッセージは透過的に処理されます。シェルが mappedWhenManaged applicationShellWidget でない場合は、エラー TT_DESKTOP_ENOTSUP とともに異常終了します。

Get_Mapped, Set_Mapped

shell パラメータの値が NULL でなく、シェルが実体化された mappedWhenManaged applicationShellWidget の場合は、これらのメッセージは透過的に処理されます。シェルが mappedWhenManaged applicationShellWidget でない場合は、エラー TT_DESKTOP_ENOTSUP とともに異常終了します。

Raise

shell パラメータの値が NULL でなく、シェルが実体化された mappedWhenManaged applicationShellWidget の場合は、これらのメッセージは透過的に処理されます。シェルが mappedWhenManaged applicationShellWidget でない場合は、エラー TT_DESKTOP_ENOTSUP とともに異常終了します。

Lower

shell パラメータの値が NULL でなく、シェルが実体化された mappedWhenManaged applicationShellWidget の場合は、これらのメッセージは透過的に処理されます。シェルが mappedWhenManaged applicationShellWidget でない場合は、エラー TT_DESKTOP_ENOTSUP とともに異常終了します。

Get_XInfo

shell パラメータの値が NULL でない場合、これらのメッセージは透過的に処理されます。shell パラメータの値が NULL の場合は、エラー TT_DESKTOP_ENOTSUP とともに異常終了します。

Set_XInfo

shell パラメータの値が NULL でなく、シェルが実体化された mappedWhenManaged applicationShellWidget の場合は、これらのメッセージは透過的に処理されます。シェルが mappedWhenManaged applicationShellWidget でない場合は、エラー TT_DESKTOP_ENOTSUP とともに異常終了します。

Pause

cb パラメータが NULL でない場合は、このメッセージはコールバックに渡されます。cb パラメータが NULL の場合は、エラー TT_DESKTOP_ENOTSUP とともに異常終了します。

Resume

cb パラメータが NULL でない場合は、このメッセージはコールバックに渡されます。cb パラメータが NULL の場合は、エラー TT_DESKTOP_ENOTSUP とともに異常終了します。

Quit

cb パラメータが NULL でない場合は、このメッセージはコールバックに渡されます。cb パラメータが NULL の場合は、エラー TT_DESKTOP_ENOTSUP とともに異常終了します。

Get_Status

cb パラメータが NULL でない場合は、このメッセージはコールバックに渡されます。cb パラメータが NULL の場合は、エラー TT_DESKTOP_ENOTSUP とともに異常終了します。

Do_Command

cb パラメータが NULL でない場合は、このメッセージはコールバックに渡されます。cb パラメータが NULL の場合は、エラー TT_DESKTOP_ENOTSUP とともに異常終了します。

sessid パラメータが NULL の場合は、デフォルト・セッションに参加します。

join パラメータが設定されている場合は、指定のセッションに参加します。

Ttdt_contract_cb メッセージは、表 A-17 に示すパラメータを取ります。コールバックはメッセージを処理しない場合は、メッセージを返します。メッセージを処理する場合は、ゼロあるいは Tt_message に送られたエラー・ポインタを返します。

表 A-17 Ttdt_session_cb が取るパラメータ

パラメータ 

説明 

Tt_message msg

送信状態にある要求。クライアント・プログラムは、この要求を無視または拒否するか、メッセージに応答します。 


注 -

処理後にメッセージ msg を破棄してください。


void *clientdata

ttdt_session_join() または ttdt_message_accept() 関数のどちらかに渡されるクライアント・データ

Tt_messagecontract

ttdt_message_accept() 関数に渡されるコントラクト。コールバックが ttdt_session_join() 関数によってインストールされると、contract パラメータの値は必ずゼロになります。

ttdt_session_join() 関数は、NULL で終了する Tt_pattern 型の配列を返します。この配列は、ttdt_session_quit() 関数に渡され破棄できます。エラーが発生すると、返された配列はエラー・ポインタになります。Tt_status を調べるには、tt_ptr_error を使用します。表 A-18 は、返される可能性のあるエラーの一覧です。

表 A-18 ttdt_session_join が返す可能性のあるエラー

エラーの値 

説明 

TT_ERR_NOMP

ttsession プロセスを使用できません。ToolTalk サービスは、ttsession が実行されていない場合はその再起動を試みます。このエラーは、ToolTalk サービスがインストールされていないか、正しくインストールされていないかのどちらかを示します。 

TT_ERR_PROCID

指定されたプロセス識別子が旧式か、無効です。 

TT_ERR_SESSION

旧式、または無効な ToolTalk セッションが指定されました。 

TT_ERR_POINTER

渡されたポインタが、このオペレーションに適した型のオブジェクトを指していません。たとえば、文字列が必要なときにポインタは整数を指している場合などです。 

TT_ERR_NOMEM

オペレーションを実行するのに十分なメモリがありません。