3

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

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

所以,它起作用了:当我通过 dbus-send 向我的应用程序发送消息时,调用了 Foo 方法。

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

4

1 回答 1

1

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

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

于 2013-07-09T15:48:44.083 回答