getOrProduce method

  1. @override
Future<TilePicture?> getOrProduce(
  1. Tile tile,
  2. Future<TilePicture?> producer(
    1. Tile
    )
)

todo it may make sense to return a clone and dispose that clone at the consumer. The cache may evict an image at any time even if it is still used by the consumer.

Implementation

@override
Future<TilePicture?> getOrProduce(Tile tile, Future<TilePicture?> Function(Tile) producer) async {
  final TilePicture? result = await _cache.getOrProduce(tile, producer);

  if (result != null) {
    _spatialIndex.addTile(tile);
  }
  return result;
}