セッション・マネージャは ICCCM.1.1 WM_COMMAND および WM_SAVE_YOURSELF プロトコルをサポートし、次のことを許可します。
アプリケーションがログアウト時の状態情報を保存する
セッション・マネージャがログイン時にアプリケーションを再起動する
セッション・マネージャは API も提供し、アプリケーションがログアウト時およびログイン時の状態を保存および格納するのを補助します。
セッション・マネージャはログイン時のアプリケーション再起動に責任を持ちます。これを行うには、再起動に必要なコマンドおよびコマンド行オプションをアプリケーションがセッション・マネージャに通知しなければなりません。Xlib の XSetCommand() を使用して、アプリケーションのトップ・レベル・ウィンドウに WM_COMMAND 属性を設定してください。
セッション・マネージャがログアウト時などにセッションを保存する際に、アプリケーションは似たような状態での再開のために一部の状態情報を保存する必要があります。セッション・マネージャは、オプションでセッションが保存されていることをアプリケーションに通知します。このような通知が必要であることをアプリケーションはセッション・マネージャに知らせなければなりません。これは WM_SAVE_YOURSELF プロトコルをトップ・レベル・ウィンドウの WM_PROTOCOLS 属性に登録し、コールバック・プロシージャを設定して通知を処理します。これには XmAddWMProtocols() および XmAddWMProtocolsCallback() 関数を使用します。WM_SAVE_YOURSELF コールバックを処理しているときに何らかの方法でアプリケーションがユーザと対話すべきではありません (たとえば [別名保存] ダイアログ・ボックスは表示するべきではありません) 。このコールバックは WM_COMMAND 属性をトップレベル・ウィンドウに設定して、セッション・マネージャに状態の保存が終了していることを通知しなければなりません。
アプリケーションが状態情報を保存できるようにするには、DtSessionSavePath() 関数を使用して、情報を保存するファイルの絶対パス名を獲得してください。セッションの復元時は、DtSessionRestorePath() 関数を使用して、アプリケーションが状態を復元するのに使用する状態ファイルの絶対パス名を獲得してください。
共通デスクトップ環境のワークスペース・マネージャは、アプリケーションのメイン・トップレベル・ウィンドウ (WM_COMMAND を含む) 属性を正しいワークスペース、ジオメトリ、アイコン状態に復元します。アプリケーションに複数のトップ・レベル・ウィンドウがある場合、他の上位ウィンドウの状態の復元はアプリケーションが担当します。その他の情報については、「ワークスペース・マネージャ」を参照してください。
デスクトップ・ライブラリ libDtSvc は、セッション・マネージャも含めて多数のデスクトップ API へアクセスできるようにします。Dt/Dt.h および Dt/Session.h ヘッダ・ファイルを取り込んで、セッション・マネージャ API にアクセスしてください。
アプリケーションが任意のセッション・マネージャ API を使用している場合、まず DtInitialize() または DtAppInitialize() を呼び出して libDtSvc ライブラリを初期化しなければなりません。詳細は、DtInitialize(3) または DtAppInitialize(3) のマニュアル・ページを参照してください。
セッション・マネージャのデモは /usr/dt/examples/dtsession にあります。詳細は README ファイルを参照してください。
セッション・マネージャの詳細は、関連するマニュアル・ページと『Solaris 共通デスクトップ環境 プログラマーズ・ガイド』を参照してください。