cached method
Implementation
bool cached(RequestRange requestRange) {
if (requestRange.begin == null || requestRange.end == null) {
return finished;
}
int begin = requestRange.begin!;
int end = requestRange.end! + 1;
List<CacheFragment> rangesMatched = fragments
.where((element) =>
(element.begin >= begin && element.begin < end) || (element.end <= end && element.end > begin) || (element.begin < begin && element.end > end))
.toList()
..sort((a, b) => a.begin - b.begin);
if (rangesMatched.isEmpty) {
return false;
}
for (CacheFragment range in rangesMatched) {
if (range.begin > begin) {
return false;
}
begin = range.end;
}
return begin >= end;
}