0

単一のドキュメントで動作するプログラムを書いています。複数のドキュメントを開きたい場合は、ドキュメントごとにプロセスを開くだけです (そうです、この場合、プロセスの分離が重要です)。これらのプロセスをサーバーと呼びましょう。

各サーバーはドキュメントを表す単一のオブジェクトを提供します。クライアント アプリケーションがこれらのオブジェクトを検出できるようにしたいと考えています。理想的には、クライアント インターフェイスは、ドキュメントが異なるプロセスによって所有されているかどうかを判断できません。

私のあいまいな解決策は、すべてのプロセスが既知の接続名 (org.example.MyApplication) を共有し、オブジェクトに PID を指定して重複を避けることです (/org/example/MyApplication/)。ただし、プロセスは同じ既知の接続名を共有できないため、うまくいきません。

クライアント アプリケーションで新しい接続を監視し、それらをスキャンして、期待されるオブジェクト パスが存在するかどうかを確認できると思いますが、それは悪い考えのように思えます。

どうすればこれを行うことができますか?

4

1 に答える 1

0

KDE で使用される 1 つの方法は、org.kde.StatusNotifierItem-2055-1. クライアントはorg.freedesktop.DBus.ListNames、リストを呼び出してフィルタリングできます。

または、最初のサーバーがよく知られている名前を取得し、後続のサーバーがそれを呼び出してドキュメントを登録し、クライアントが検出できるようにすることもできます。

src name = :0.42 
src path = /org/example/MyApplication/2

dest name =   org.example.MyApplication
dest path =   /org/example/MyApplication/Documents
dest method = Publish(:0.42, /org/example/MyApplication/Documents/2)
于 2013-04-30T14:18:25.477 に答える