package com.limegroup.gnutella.library;
import org.limewire.collection.IntervalSet;
import org.limewire.collection.Range;
import com.limegroup.gnutella.http.HTTPHeaderValue;
public interface IncompleteFileDesc extends FileDesc, HTTPHeaderValue {
public IntervalSet.ByteIntervals getRangesAsByte();
/**
* Returns the available ranges as an HTTP string value.
*/
public String getAvailableRanges();
/**
* @param dest where to load the ranges
* @return true if the loaded ranges were verified
*/
public boolean loadResponseRanges(IntervalSet dest);
/**
* @return true if responses should be returned for this IFD.
*/
public boolean hasUrnsAndPartialData();
/**
* Determines whether or not the given range is satisfied by this
* incomplete file.
*/
public boolean isRangeSatisfiable(long low, long high);
/**
* Adjusts the requested range to the available range.
* @return Interval that has been clipped to match the available range, null
* if the interval does not overlap any available ranges
*/
public Range getAvailableSubRange(long low, long high);
/**
* Determines whether or not the given interval is within the range
* of our incomplete file.
*/
public boolean isRangeSatisfiable(Range range);
}