close method

  1. @override
Future<void> close()
override

Implementation

@override
Future<void> close() async {
  Phidget.unregisterInstance(identityHashCode(this));

  if (!_distanceChangeStreamController.isClosed) {
    await _distanceChangeStreamController.close();
  }

  if (_handle != null) {
    final pDelete = calloc<bindings.DistanceSensorHandle>();
    pDelete.value = _handle!;
    try {
      bindings.phidgetClose(_handle!);
    } catch (_) {}
    try {
      bindings.distanceSensorDelete(pDelete);
    } catch (_) {
      calloc.free(pDelete);
    }
    _handle = null;
  }
  if (isAttached) {
    internalProcessDetach();
  }
  isAttached = false;
}