reserveTask method

DownloadTaskToken reserveTask(
  1. String key, {
  2. required int step,
  3. String label = '',
})

Implementation

DownloadTaskToken reserveTask(
  String key, {
  required int step,
  String label = '',
}) {
  final existing = _reservedByKey[key];
  if (existing != null) {
    if (label.isNotEmpty) _emit(currentLabel: label);
    return existing;
  }
  final stepIndex = step.clamp(0, _stepCount);
  _totalByStep[stepIndex] = (_totalByStep[stepIndex] ?? 0) + 1;
  final token = DownloadTaskToken(_nextId++, stepIndex);
  _reservedByKey[key] = token;
  _emit(currentLabel: label.isEmpty ? null : label);
  return token;
}