class MultiPointOutputStream {

    void inspectStreamState(StreamsState state) {
        state.newNoMoreStreamBlockList.clear();

        @SuppressWarnings("unchecked")
        final List<Integer> clonedList = (List<Integer>) noMoreStreamList.clone();
        final Set<Integer> uniqueBlockList = new HashSet<>(clonedList);
        final int noMoreStreamBlockCount = uniqueBlockList.size();
        if (noMoreStreamBlockCount != requireStreamBlocks.size()) {
            Util.d(TAG, "task[" + task.getId() + "] current need fetching block count "
                    + requireStreamBlocks.size() + " is not equal to no more stream block count "
                    + noMoreStreamBlockCount);
            state.isNoMoreStream = false;
        } else {
            Util.d(TAG, "task[" + task.getId() + "] current need fetching block count "
                    + requireStreamBlocks.size() + " is equal to no more stream block count "
                    + noMoreStreamBlockCount);
            state.isNoMoreStream = true;
        }

        final SparseArray<DownloadOutputStream> streamMap = outputStreamMap.clone();
        final int size = streamMap.size();
        for (int i = 0; i < size; i++) {
            final int blockIndex = streamMap.keyAt(i);
            if (noMoreStreamList.contains(blockIndex)
                    && !state.noMoreStreamBlockList.contains(blockIndex)) {
                // blockIndex indicate this block is no more stream.
                // and this is new one
                state.noMoreStreamBlockList.add(blockIndex);
                state.newNoMoreStreamBlockList.add(blockIndex);
            }
        }
    }

      MultiPointOutputStream(@NonNull final DownloadTask task,
                           @NonNull BreakpointInfo info,
                           @NonNull DownloadStore store,
                           @Nullable Runnable syncRunnable);
    public  MultiPointOutputStream(@NonNull DownloadTask task,
                                  @NonNull BreakpointInfo info,
                                  @NonNull DownloadStore store);

}