load method

Future<CacheEntry?> load(
  1. String url
)

Implementation

Future<CacheEntry?> load(String url) async {
  assert(url is String);

  final Completer<CacheEntry?> completer = Completer<CacheEntry?>();
  final int key = url.hashCode;

  final File file = File("$path/${key % 10}/$key");
  bool exists = await file.exists();
  if (exists) {
    CacheEntry entry;
    try {
      entry = await CacheEntry.fromFile(file);
      stats.bytesRead += entry.length;
      stats.hitFiles += 1;
      completer.complete(entry);
    } catch (error) {
      await file.delete(recursive: false);
      completer.complete(null);
    }
  } else {
    completer.complete(null);
  }
  return completer.future;
}