load method
Loads encoded thumbnail bytes for key.
Implementation
Future<Uint8List> load(CPDFPageThumbnailKey key) async {
if (key.options.cachePolicy.readsMemory) {
final cachedBytes = _memoryCache[key.cacheKey];
if (cachedBytes != null) {
_logHit(key, source: 'memory');
return cachedBytes;
}
}
final inFlight = _inFlightRequests[key.cacheKey];
if (inFlight != null) {
_logHit(key, source: 'inFlight');
return inFlight;
}
final task = _loadOrRender(key);
_inFlightRequests[key.cacheKey] = task;
try {
final bytes = await task;
if (key.options.cachePolicy.writesMemory) {
_memoryCache[key.cacheKey] = bytes;
}
return bytes;
} finally {
_inFlightRequests.remove(key.cacheKey);
}
}