getAndRemove method

Future<Uint8List> getAndRemove(
  1. Tile tile
)

Implementation

Future<Uint8List> getAndRemove(Tile tile) async {
  Uint8List? result = _writebufferForTiles.remove(tile);
  if (result != null) {
    _sizes.remove(tile);
    return result;
  }
  assert(_ioSink != null || _readbufferFile != null);
  await writeComplete();
  assert(_readbufferFile != null);
  _TempfileIndex? tempfileIndex = _indexes[tile];
  assert(tempfileIndex != null, "indexes for $tile not found");
  Readbuffer readbuffer = await _readbufferFile!.readFromFileAt(tempfileIndex!.position, tempfileIndex.length);
  result = readbuffer.getBuffer(0, tempfileIndex.length);
  _sizes.remove(tile);
  _indexes.remove(tile);
  //if (_indexes.isEmpty) dispose();
  return result;
}