使用Qt D-Bus适配器
使用Qt D-Bus适配器
适配器是特殊类,可附加到任何QObject派生类,并使用D-Bus提供到外部世界的接口。适配器旨在成为轻量级类,其主要目的是中继与真实对象之间的调用,并可能验证或转换来自外部世界的输入,从而保护真实对象。
与多重继承不同,可以在任何时间将适配器添加到任何对象(但不能删除),这在导出现有类时具有更大的灵活性。适配器的另一个优点是可以在不同接口中使用相同名称的方法提供相似但不相同的功能,这种情况在将标准接口的新版本添加到对象时非常普遍。
为了使用适配器,必须创建一个继承QDBusAbstractAdaptor的类。由于这是标准的QObject派生的类,因此Q_OBJECT宏必须出现在声明中,并且必须使用moc工具处理源文件。该类还必须包含一个名称为Q_CLASSINFO的条目"D-Bus Interface",声明其要导出的接口。每个课程仅支持一个条目。
该类中的任何公共槽都可以通过总线通过MethodCall类型的消息进行访问。(。班级中的信号将通过D-Bus自动中继。但是,并非所有类型都允许使用信号或槽的参数列表:
同样,用Q_PROPERTY声明的任何属性都将通过D-Bus上的Properties接口自动公开。由于QObject属性系统不允许使用非可读属性,因此无法使用适配器声明只写属性。