C# Class Ketarin.Updater

Handles the updating process of a list of application jobs.
Show file Open project: GitSullied/Ketarin Class Usage Examples

Protected Properties

Property Type Description
m_LastProgress int

Public Methods

Method Description
BeginCheckForOnlineUpdates ( ApplicationJob jobs ) : void

Checks for which of the given applications updates are available asynchronously.

BeginUpdate ( ApplicationJob jobs, bool onlyCheck, bool installUpdated ) : void

Starts one or more threads which update the given applications asynchronously.

Cancel ( ) : void

Cancels the updating progress.

GetDownloadSize ( ApplicationJob job ) : long

Returns the download size of a given application in bytes.

GetProgress ( ApplicationJob job ) : short

Returns the progress of the given application.

GetStatus ( ApplicationJob job ) : Status

Returns the current status of a given application.

Protected Methods

Method Description
DoDownload ( ApplicationJob job, Uri urlToRequest ) : Status

Executes the actual download from an URL. Does not handle exceptions, but takes care of proper cleanup.

DoDownload ( ApplicationJob job, string &requestedUrl ) : Status

Executes the actual download (determines the URL to download from). Does not handle exceptions, but takes care of proper cleanup.

OnProgressChanged ( long pos, long length, ApplicationJob job ) : void

Fires the ProgressChangedEvent. Only fires if the progress value has changed significantly to prevent (for example) too frequent GUI updates.

OnStatusChanged ( ApplicationJob job ) : void

Fires the StatusChanged event.

OnUpdateCompleted ( ) : void

Fires the UpdateCompleted event.

OnUpdatesFound ( string updatedApps ) : void

Fires the UpdatesFound.

Private Methods

Method Description
AddRequestToCancel ( WebRequest reqest ) : void

Allows all routines involved in the update to store the corresponding WebRequest here. When the user cancels the process, these WebRequests wil be aborted, so that it finishes more or less instantly.

CheckForOnlineUpdates ( object argument ) : void

Checks for which of the given applications updates are available. Fires an event when finished.

GetBaseHost ( Uri uri ) : string

Determines the base host (TLD + server name) of an URI.

GetContentLength ( WebResponse response ) : long

Determines the actual content length in a more reliable way for FTP downloads.

StartNewThread ( object paramJob ) : void

Performs the update process of a single application. Catches most exceptions and stores them for later use.

UpdateApplications ( ) : void

Performs the actual update check for the current applications. Starts multiple threads if necessary.

Method Details

BeginCheckForOnlineUpdates() public method

Checks for which of the given applications updates are available asynchronously.
public BeginCheckForOnlineUpdates ( ApplicationJob jobs ) : void
jobs ApplicationJob
return void

BeginUpdate() public method

Starts one or more threads which update the given applications asynchronously.
public BeginUpdate ( ApplicationJob jobs, bool onlyCheck, bool installUpdated ) : void
jobs ApplicationJob
onlyCheck bool Specifies whether or not to download the updates
installUpdated bool
return void

Cancel() public method

Cancels the updating progress.
public Cancel ( ) : void
return void

DoDownload() protected method

Executes the actual download from an URL. Does not handle exceptions, but takes care of proper cleanup.
This exception is thrown, if the resulting file is not of a binary type This exception is thrown, if the resulting target path of an application is not valid
protected DoDownload ( ApplicationJob job, Uri urlToRequest ) : Status
job ApplicationJob The job to process
urlToRequest System.Uri URL from which should be downloaded
return Status

DoDownload() protected method

Executes the actual download (determines the URL to download from). Does not handle exceptions, but takes care of proper cleanup.
protected DoDownload ( ApplicationJob job, string &requestedUrl ) : Status
job ApplicationJob The job to process
requestedUrl string The URL from which has been downloaded
return Status

GetDownloadSize() public method

Returns the download size of a given application in bytes.
public GetDownloadSize ( ApplicationJob job ) : long
job ApplicationJob
return long

GetProgress() public method

Returns the progress of the given application.
public GetProgress ( ApplicationJob job ) : short
job ApplicationJob
return short

GetStatus() public method

Returns the current status of a given application.
public GetStatus ( ApplicationJob job ) : Status
job ApplicationJob
return Status

OnProgressChanged() protected method

Fires the ProgressChangedEvent. Only fires if the progress value has changed significantly to prevent (for example) too frequent GUI updates.
protected OnProgressChanged ( long pos, long length, ApplicationJob job ) : void
pos long Current position of the stream
length long Total length of the stream
job ApplicationJob Current ApplicationJob
return void

OnStatusChanged() protected method

Fires the StatusChanged event.
protected OnStatusChanged ( ApplicationJob job ) : void
job ApplicationJob
return void

OnUpdateCompleted() protected method

Fires the UpdateCompleted event.
protected OnUpdateCompleted ( ) : void
return void

OnUpdatesFound() protected method

Fires the UpdatesFound.
protected OnUpdatesFound ( string updatedApps ) : void
updatedApps string
return void

Property Details

m_LastProgress protected property

protected int m_LastProgress
return int