unregisterObject method
Unregisters an object
on the bus.
Implementation
Future<void> unregisterObject(DBusObject object) async {
if (object.client == null) {
throw 'Object not registered';
}
if (object.client != this) {
throw 'Object registered on other client';
}
var node = _objectTree.lookup(object.path);
if (node == null) {
return;
}
_objectTree.remove(object.path);
// If has an object manager as a parent, emit a signal to indicate this was removed.
var objectManager = _findObjectManager(node.parent);
if (objectManager != null) {
var interfacesAndProperties = expandObjectInterfaceAndProperties(object,
introspectable: introspectable);
await objectManager.emitInterfacesRemoved(
object.path, interfacesAndProperties.keys);
}
}