我正在使用qt-dbus从我的软件中公开一些API。

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

因此,它的工作原理是:当我通过dbus-send向我的应用发送消息时,就调用了Foo metods。

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

最佳答案

可以通过使您的D-Bus对象(向QDBusConnection::registerObject()注册的对象,而不是适配器)继承QDBusContext,然后使用sendErrorReply()方法来发送错误响应:

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

关于qtdbus - 如何使用QT-DBUS将错误返回DBUS?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13822771/

10-12 02:54