【发布时间】:2012-09-24 08:01:46
【问题描述】:
我有以下设置:
- 我有两个应用程序,属于同一个逻辑组(逻辑组 = 我们公司的产品)
- 这两个应用程序需要将 DBus 连接到同一个接口(我们有更多的产品,它们都应该使用自己的 DBus 接口)并公开一些功能(所有这些都使用 QtDBus)。
所以我尝试了(箭头不是 C++ 指针操作:)):
App1 -> get QDBusConnection::sessionBus();
App1 -> registerService("com.una-frog.ddm")
App1 -> registerObject ("/DDM-gui")
然后
App2 -> get QDBusConnection::sessionBus();
App2 -> registerService("com.una-frog.ddm")
App2 -> registerObject ("/DDM-cli")
并启动 App1 和 App2。
此时 App2 抱怨它无法注册服务,因为 App1 已经注册了它。没错。
我可以轻松地将 App1 注册到“com.una-frog.ddm.gui”,将 App2 注册到“com.una-frog.ddm.cli”,但我'宁愿尝试有一个通用接口和两个对象在那里执行所有必需的操作。
谁知道如何实现两个QtDBus应用程序连接到同一个接口?
【问题讨论】: