getManagedObjects method

Future<Map<DBusObjectPath, Map<String, Map<String, DBusValue>>>> getManagedObjects()

Gets all the sub-tree of objects, interfaces and properties of this object. Requires the remote object to implement the org.freedesktop.DBus.ObjectManager interface.

Implementation

Future<Map<DBusObjectPath, Map<String, Map<String, DBusValue>>>>
    getManagedObjects() async {
  var result = await client.callMethod(
      destination: name,
      path: path,
      interface: 'org.freedesktop.DBus.ObjectManager',
      name: 'GetManagedObjects',
      replySignature: DBusSignature('a{oa{sa{sv}}}'));

  Map<DBusObjectPath, Map<String, Map<String, DBusValue>>> decodeObjects(
      DBusValue objects) {
    return objects.asDict().map((key, value) =>
        MapEntry(key.asObjectPath(), _decodeInterfacesAndProperties(value)));
  }

  return decodeObjects(result.returnValues[0]);
}