Yasumichi Akahoshi
w2lin****@lapis*****
2003年 11月 13日 (木) 23:05:47 JST
Yasumichiです。 以前にも話題にしましたが、cxpmanager関連の扱いについて再度、検討したい と思います。 私の結論から言うと機能的にはダウングレードになりますが、一度、ビルド対 象からはずそうと思っています。全体的にソースを見直さねばなりませんが、大 きく影響しそうなのは、 * cxpcalen(カレンダー)のアラーム機能が使えなくなる。 * cxprestore, cxpbackupがcxpdeviceによる設定変更を追えなくなる。(?) * cxprestore, cxpbackupが一般ユーザで使えなくなるかもしれない。 という部分です。 次に実際のcxpmanagerの動きを見て行きます。 1 cxp の各アプリは、起動時に cxp_manager_start() を呼び出し、cxpmanager の起動を試みる。 2 起動された cxpmanager は、まずクライアントとして cxpmanager に接続を試 みる。応答があった場合は、既にcxpmanagerが起動しているので終了する。 3 初期情報を取得。(ユーザIDなど) 4 デバイス情報更新処理(cxpmanager_deviceconf)とカレンダースケジュール情 報処理(cxpmanager_calenconf)をスレッドで動作させる。 5 サーバプロセスとして待ち受け状態に入る。(cxpsocket_serverstart) それではcxpmanager_deviceconfは何をやっているかというと、 1 sleepを交えながら以下を無限ループ 2 ユーザデバイス定義ファイルが存在していればチェックするファイルに指定。 なければ、システム情報(何を指しているか未調査。CXPSYSTEM_DEVICE)をチェ ックする。 3 前回のループ時に取得したタイムスタンプと現在のタイムスタンプを比較して 変更されていれば、cxpmanager_dev を実行する。 system("cxpmanager_dev"); また、cxpmanager_calenconfは 1 sleepを交えながら以下を無限ループ 2 スケジュール及びTODOデータファイルが更新されているかを確かめ、更新され ていたらアラームが設定されたデータを配列に格納。 3 配列を走査し、アラーム時刻が現在時刻と一致すれば、 cxpmessage を利用し てダイアログで表示。 となっています。 最後にcxpmanager_deveiceですが、大まかに言うとデバイスの書き込み許可を 全てのユーザに与えるという動作を行うようです。 以上、長くなりましたが cxpmanager関連の扱いについてご意見があれば、お 聞かせください。 -- Yasumichi Akahoshi http://www10.plala.or.jp/always/