package com.limegroup.mozilla;
import java.io.File;
import org.limewire.listener.EventListener;
import com.limegroup.gnutella.BandwidthTracker;
import com.limegroup.gnutella.Downloader.DownloadState;
import com.limegroup.gnutella.downloader.DownloadStateEvent;
/**
* Interface to allow access into the state of the nsIDownloadListener.
*
*/
public interface MozillaDownload extends BandwidthTracker {
/**
* Returns the download id this listener is tracking.
*/
long getDownloadId();
/**
* Returns the pending amount of bytes to be downloaded.
*/
long getAmountPending();
/**
* Returns the amount downloaded so far.
*/
long getAmountDownloaded();
/**
* Returns the total length of the download.
*/
long getContentLength();
/**
* Returns the target save file for the download.
*/
File getIncompleteFile();
/**
* Indicator if the download is complete or not.
*/
boolean isCompleted();
/**
* Indicator if the downloader is currently active.
*/
boolean isInactive();
/**
* Indicator if the downloader is in a paused state.
*/
boolean isPaused();
@Override
float getAverageBandwidth();
@Override
float getMeasuredBandwidth();
@Override
void measureBandwidth();
/**
* Returns the download status for this download.
*/
DownloadState getDownloadStatus();
/**
* Cancels the current download.
*/
void cancelDownload();
/**
* Removes the current download.
*/
void removeDownload();
/**
* Pauses the current download.
*/
void pauseDownload();
/**
* Resumes the current download.
*/
void resumeDownload();
/**
* Adds listener for this download.
*/
void addListener(EventListener<DownloadStateEvent> listener);
/**
* Removes listener from this download.
*/
boolean removeListener(EventListener<DownloadStateEvent> listener);
/**
* Returns indicator that the download is queued.
*/
boolean isQueued();
/**
* Returns indicator that the download is CANCELLED.
*/
boolean isCancelled();
void setDiskError();
}