TITLE:: Download
summary:: Fetch a file from a remote URL
categories:: Files
related:: Classes/File

DESCRIPTION::
Download allows you to download a file from a specified URL


CLASSMETHODS::
private:: qtClass

METHOD:: new
Create and start a new Download.

ARGUMENT:: requestedURL
A link::Classes/String:: containing the URL of the file to download.

ARGUMENT:: localPath
A link::Classes/String:: containing the local path at which to save the downloaded file.

ARGUMENT:: finishedFunc
A link::Classes/Function:: to evaluate when the download is complete.

ARGUMENT:: errorFunc
A link::Classes/Function:: to evaluate if the download fails due to an error.

ARGUMENT:: progressFunc
A link::Classes/Function:: to process the download's progress. This Function will be passed two arguments, the bytes received, and the total bytes.

returns:: A new Download.

METHOD:: cancelAll
Cancel all active Downloads.


INSTANCEMETHODS::
private:: doProgress, doError, doFinished, doOnShutDown, cleanup, startDownload, init

METHOD:: cancel
Cancel the download.

METHOD:: errorFunc
Get or set the error link::Classes/Function::.

METHOD:: finishedFunc
Get or set the download finished link::Classes/Function::.

METHOD:: progressFunc
Get or set the download progress link::Classes/Function::.



EXAMPLES::

code::
Download("http://art-on-wires.org/wp-content/uploads/2011/03/nick_collins.png", "/tmp/nick.png", {\huzzah.postln;}, {\error.postln}, {|rec, tot| [rec, tot].postln}); // beautify your tmp directory

d = Download("http://scottwilson.ca/files/flame.mp3", "/tmp/flame.mp3", {\huzzah.postln;}, {\error.postln}, {|rec, tot| [rec, tot].postln});
d.cancel; // cancel this

::