| 272 | virtual ~LazyImpl() = default; |
| 273 | |
| 274 | Future<std::shared_ptr<Buffer>> MaybeRead(RangeCacheEntry* entry) override { |
| 275 | // Called by superclass Read()/WaitFor() so we have the lock |
| 276 | if (!entry->future.is_valid()) { |
| 277 | entry->future = file->ReadAsync(ctx, entry->range.offset, entry->range.length, |
| 278 | /*allow_short_read=*/false); |
| 279 | } |
| 280 | return entry->future; |
| 281 | } |
| 282 | |
| 283 | std::vector<RangeCacheEntry> MakeCacheEntries( |
| 284 | const std::vector<ReadRange>& ranges) override { |