unregisterObject method

Future<void> unregisterObject(
  1. DBusObject object
)

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);
  }
}