Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

[D-Bus] how do you cleanly register an object to a service?



  • So I'm trying to registering an object to a service "abc,def,ghi" I've created to the path "/alpha/beta/gamma". Calling QDBusConnection()::sessionBus().registerObject("/alpha/beta/gamma", this); works but ....

    Result of calling .registerObject("/alpha/beta/gamma", this); What I actually desire
    Service "abc.def.ghi" Service "abc.def.ghi"
    * / * /alpha/beta/gamma
    - * org.freedesktop.DBus.Introspectable - * abc.def.ghi
    - * org.freedesktop.DBus.Peer - * org.freedesktop.DBus.Introspectable
    * /alpha - * org.freedesktop.DBus.Peer
    - * org.freedesktop.DBusIntrospectable - * org.freedesktop.DBus.Properties
    - * org.freedesktop.DBus.Peer
    * /alpha/beta
    - * org.freedesktop.DBus.Introspectable
    - * org.freedesktop.DBus.Peer
    * /alpha/beta/gamma
    - * abc.def.ghi
    - * org.freedesktop.DBus.Introspectable
    - * org.freedesktop.DBus.Peer
    - * org.freedesktop.DBus.Properties

    Note how excessive my current result is and how cluttered it looks. I don't see any other services registered that have this structural issue and don't have any need for the intermediate parts of the path. I need to keep that path as other services will be relying on the naming convention. Is there any way to fix this?


Log in to reply