如何使用qt-dbus将错误返回给dbus?

问题描述:

我正在使用qt-dbus从我的软件中公开一些API。如何使用qt-dbus将错误返回给dbus?

我将接口声明foo.xml转换为foo_adaptor.cpp和foo_adaptor.h通过qdbusxml2cpp持有FooAdaptor类,然后通过在Foo的构造函数中调用新的FooAdaptor(this)将真正的Foo类绑定到FooAdaptor。

所以,它的工作原理:当我通过dbus-send发送消息给我的应用程序时,Foo metods被调用。

对于我的软件的特定版本,我想禁用一些方法。 我需要以某种方式通知调用者,某些方法调用实际上不允许,并且什么都不做/没有意义。 有没有任何函数可以调用/异常抛出来执行此操作?

错误响应可以让你的d-Bus的对象发送(具有QDBusConnection::registerObject()注册,而不是适配器)从QDBusContext继承,然后使用sendErrorReply()方法:

http://qt-project.org/doc/qt-5.1/qtdbus/qdbuscontext.html