dbus-get-all-managed-objects
dbus-get-all-managed-objects is a compiled Lisp function in `dbus.el
'.
(dbus-get-all-managed-objects BUS SERVICE PATH)
Return all objects at BUS, SERVICE, PATH, and the children of PATH.
The result is a list of objects. Every object is a cons of an
existing path name, and the list of available interface objects.
An interface object is another cons, which car is the interface
name, and the cdr is the list of properties as returned by
`dbus-get-all-properties' for that path and interface. Example:
(dbus-get-all-managed-objects :session "org.gnome.SettingsDaemon" "/"
)
=> (("/org/gnome/SettingsDaemon/MediaKeys"
("org.gnome.SettingsDaemon.MediaKeys")
("org.freedesktop.DBus.Peer")
("org.freedesktop.DBus.Introspectable")
("org.freedesktop.DBus.Properties")
("org.freedesktop.DBus.ObjectManager"))
("/org/gnome/SettingsDaemon/Power"
("org.gnome.SettingsDaemon.Power.Keyboard")
("org.gnome.SettingsDaemon.Power.Screen")
("org.gnome.SettingsDaemon.Power"
("Icon" . ". GThemedIcon battery-full-charged-symbolic ")
("Tooltip" . "Laptop battery is charged"))
("org.freedesktop.DBus.Peer")
("org.freedesktop.DBus.Introspectable")
("org.freedesktop.DBus.Properties")
("org.freedesktop.DBus.ObjectManager"))
...)
If possible, "org.freedesktop.DBus.ObjectManager.GetManagedObjects"
is used for retrieving the information. Otherwise, the information
is collected via "org.freedesktop.DBus.Introspectable.Introspect"
and "org.freedesktop.DBus.Properties.GetAll", which is slow.