load method

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

Implementation

Future<CacheEntry?> load(String url) async {
  final completer = Completer<CacheEntry?>();
  final key = url.hashCode;

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