QDBusAbstractAdaptor与QDBusAbstractInterface

问题描述:

当使用Qt D-Bus绑定将某些代码暴露给D-Bus时,应该在什么时候通过Qt接口使用Qt适配器?我很难理解它们究竟有什么不同,因为它们似乎提供了相同的功能。QDBusAbstractAdaptor与QDBusAbstractInterface

http://doc.trolltech.com/4.3/qdbusabstractinterface.html“QDBusAbstractInterface类是在QtDBus结合所有d总线接口的基类”,而每http://doc.trolltech.com/4.3/qdbusabstractadaptor.html,“QDBusAbstractAdaptor类是打算使用提供接口连接到外部世界的所有对象的起点d总线”。所以,前者用于接口本身,后者用于提供接口,也就是说,为了“将一些代码暴露给D-Bus”,你需要编写一个继承适配器的类,并且“定义D-Bus接口正在使用类定义中的Q_CLASSINFO宏实现“(也是来自上述第二个URL的引用)。

消费者将使用QDBusAbstractInterface,而生产者将使用QDBusAbstractAdaptor。也就是说,适配器(生产者)实现一些方法,公开一些属性,并发送一些信号,而消费者调用/接收这些东西。