如何使用 qt-dbus 将错误返回到 dbus?
Posted
技术标签:
【中文标题】如何使用 qt-dbus 将错误返回到 dbus?【英文标题】:How to return error to dbus using qt-dbus? 【发布时间】:2012-11-29 03:42:20 【问题描述】:我正在使用 qt-dbus 从我的软件中公开一些 API。
我将带有接口声明的 foo.xml 转换为 foo_adaptor.cpp 和 foo_adaptor.h 通过 qdbusxml2cpp 持有 FooAdaptor 类,然后我通过在 Foo 的构造函数中调用 new FooAdaptor(this) 将真正的 Foo 类绑定到 FooAdaptor。
所以,它起作用了:当我通过 dbus-send 向我的应用发送消息时,调用了 Foo 方法。
对于我的软件的特定版本,我想禁用一些方法。 我需要以某种方式通知调用者,某些方法调用实际上是不允许的并且什么都不做/没有意义。 是否有任何函数可以调用/抛出异常来执行此操作?
【问题讨论】:
【参考方案1】:可以通过使您的 D-Bus 对象(使用 QDBusConnection::registerObject()
注册的对象,而不是适配器)继承自 QDBusContext
,然后使用 sendErrorReply()
方法来发送错误响应:
http://qt-project.org/doc/qt-5.1/qtdbus/qdbuscontext.html
【讨论】:
以上是关于如何使用 qt-dbus 将错误返回到 dbus?的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 dbus-monitor 输出中的错误确定 SELinux 规则