我需要使用 libdbus-cpp 库来获取 org 方法调用的答案
org.freedesktop.DBus.ObjectManager GetManagedObjects
。他的答案是a{oa{sa{sv}}}
类型。如果我没理解错的话,我需要把这个方法的答案写到std::map<std::string, std::map<std::string, std::map<std::string, DBus::Variant>>>
。最有可能的是,这需要使用 dbus_message_iter_open_container 函数来完成,但我不明白如何操作,并且我没有在网络或官方文档中找到任何合适的示例。请告诉我如何做到这一点?
想通了。最方便的方法是从所需的 DBus 对象调用 Introspect 方法并将输出保存到 *.xml 文件。然后,我们用这个 *.xml 文件作为参数调用
dbusxx-xml2cpp
并生成一个代理类。我们将它连接到我们的项目,瞧。我们可以调用给定 DBus 对象的任何方法