我需要知道如何在dbus服务器中使用QDbus绑定在服务下的同一对象路径中公开多个接口。我使用qdbusxml2cpp来生成适配器类。下面的结构可以使问题变得清楚。
MyService (Service Name)
/org/demo (Object path)
org.demo.interface1 (Adaptor classA)
methodA
signalA
org.demo.interface2 (Adaptor classB)
methodB
signalB
如果可能的话,请提供示例代码来帮助我。
我只是花了最后几个小时自己与之斗争。以下是如何做到这一点:
class MyService : public QObject, public QDBusContext
具有私有成员"m_interface1"one_answers"m_interface=2"interface1
和interface2
类是从QDBusAbstractAdaptor
(派生)类派生的- 当实例化
interface1
和interface2
时,使用它们的父MyService
指针 - 使用
QDBusConnection::registerObject("/", myService)
将MyService
指针注册到D总线