'Returns the next Range of the file that is to be hashed.
For all fingers, inspect their next expected range, and return the
lowest uninterrupted range of interest. If the range is larger than
BLOCK_SIZE, truncate it.
Returns:
Next range of interest in a Range namedtuple.'

def _GetNextInterval(self):

    starts = set([x.CurrentRange().start for x in self.fingers if x.ranges])
    ends = set([x.CurrentRange().end for x in self.fingers if x.ranges])
    if (not starts):
        return None
    min_start = min(starts)
    starts.remove(min_start)
    ends |= starts
    min_end = min(ends)
    if ((min_end - min_start) > self.BLOCK_SIZE):
        min_end = (min_start + self.BLOCK_SIZE)
    return Range(min_start, min_end)
