nsIIncrementalDownload

IID:6687823f-56c4-461d-93a1-7f6cb7dfbfba
Inherits From:nsIRequest

An incremental download object attempts to fetch a file piecemeal over time in an effort to minimize network bandwidth usage.

Canceling a background download does not cause the file on disk to be deleted.

This interface is implemented by the following components:


Properties

readonly PRInt64 currentSize

The current number of bytes downloaded so far. This attribute is set just prior to calling OnStartRequest on the observer passed to the start method.

This attribute has a value of -1 if the current size is unknown.

readonly nsIFile destination

The file where the download is being written.

readonly nsIURI finalURI

The URI being fetched after any redirects have been followed. This attribute is set just prior to calling OnStartRequest on the observer passed to the start method.

readonly PRInt64 totalSize

The total number of bytes for the requested file. This attribute is set just prior to calling OnStartRequest on the observer passed to the start method.

This attribute has a value of -1 if the total size is unknown.

readonly nsIURI URI

The URI being fetched.


Methods

void init ( nsIURI uri , nsIFile destination , PRInt32 chunkSize , PRInt32 intervalInSeconds ) void start ( nsIRequestObserver observer , nsISupports ctxt )

void init ( nsIURI uri , nsIFile destination , PRInt32 chunkSize , PRInt32 intervalInSeconds )

Initialize the incremental download object. If the destination file already exists, then only the remaining portion of the file will be fetched.

NOTE: The downloader will create the destination file if it does not already exist. It will create the file with the permissions 0600 if needed. To affect the permissions of the file, consumers of this interface may create an empty file at the specified destination prior to starting the incremental download.

NOTE: Since this class may create a temporary file at the specified destination, it is advisable for the consumer of this interface to specify a file name for the destination that would not tempt the user into double-clicking it. For example, it might be wise to append a file extension like ".part" to the end of the destination to protect users from accidentally running "blah.exe" before it is a complete file.

Arguments:
uri: The URI to fetch.
destination: The location where the file is to be stored.
chunkSize: The size of the chunks to fetch. A non-positive value results in the default chunk size being used.
intervalInSeconds: The amount of time to wait between fetching chunks. Pass a negative to use the default interval, or 0 to fetch the remaining part of the file in one chunk.

void start ( nsIRequestObserver observer , nsISupports ctxt )

Start the incremental download.

Arguments:
observer: An observer to be notified of various events. OnStartRequest is called when finalURI and totalSize have been determined or when an error occurs. OnStopRequest is called when the file is completely downloaded or when an error occurs. If this object implements nsIProgressEventSink, then its OnProgress method will be called as data is written to the destination file. If this object implements nsIInterfaceRequestor, then it will be assigned as the underlying channel's notification callbacks, which allows it to provide a nsIAuthPrompt implementation if needed by the channel, for example.
ctxt: User defined object forwarded to the observer's methods.

Reference documentation is generated from Mozilla's source.

Add a note User Contributed Notes
No comments available

Copyright © 1999 - 2005 XULPlanet.com