delete method

  1. @override
Future<void> delete()

Closes and deletes the underlying file.

Implementation

@override
Future<void> delete() {
  _closed = true;
  return _serialize(() async {
    final handles = _chunkHandles.values.toList(growable: false);
    _chunkHandles.clear();
    _lru.clear();
    for (final handle in handles) {
      try {
        await handle.client.closeHandle(handle.handle);
      } catch (_) {
        // Ignore: removal below drops the whole directory.
      }
    }
    _crcState.clear();
    _crcNext.clear();
    await _manifestClient.remove(storePath, recursive: true);
    _manifestDirty = false;
  });
}