releaseName method

Future<DBusReleaseNameReply> releaseName(
  1. String name
)

Releases the D-Bus object name previously acquired using requestName().

Implementation

Future<DBusReleaseNameReply> releaseName(String name) async {
  var result = await callMethod(
      destination: 'org.freedesktop.DBus',
      path: DBusObjectPath('/org/freedesktop/DBus'),
      interface: 'org.freedesktop.DBus',
      name: 'ReleaseName',
      values: [DBusString(name)],
      replySignature: DBusSignature('u'));
  var returnCode = result.returnValues[0].asUint32();
  switch (returnCode) {
    case 1:
      _ownedNames.remove(DBusBusName(name));
      return DBusReleaseNameReply.released;
    case 2:
      return DBusReleaseNameReply.nonExistant;
    case 3:
      return DBusReleaseNameReply.notOwner;
    default:
      throw 'org.freedesktop.DBus.ReleaseName returned unknown return code: $returnCode';
  }
}