我创建了一个 DBus 服务并向其添加对象。
QDBusConnection connection = QDBusConnection::sessionBus();
connection.registerService(serviceName); // name, e.g. "foo"
QDBusConnection::sessionBus().registerObject(path, object, myoptions);
好的,我可以在 DBus 监视器的“服务”下看到我的对象。现在我想添加更多对象,但来自另一个程序(相关但独立)。
connection.registerService(serviceName);
失败,因为服务已经存在。我如何能够在相同的服务名称下注册更多对象?
背景:我有客户使用这些服务。他们不知道谁提供服务,只知道服务名称。所以它们总是引用相同的服务名称。但应由多个提供商提供服务。
我尝试不使用服务名称(空字符串,仅依赖对象路径)。但是代理基于
QDBusAbstractInterface(serviceName, path, interfaceName.toUtf8().constData(), connection, parent)
似乎不适用于空(“”)serviceName
(正确吗?)。