coapp-developers team mailing list archive
-
coapp-developers team
-
Mailing list archive
-
Message #00656
Engine APIs required by Bootstrap
/// <summary>
/// Callback prototype for the resolve call.
/// CoApp-engine should call this for each package that needs to be installed
/// And should call this in the order that it discovers packages, with the assumtion
/// that the last package specified is the first packages to be installed.
/// </summary>
/// <param name="package_name">
/// the name of the package to add to the list that needs to be installed
/// </param>
/// <param name="local_path">
/// The local file path of the package (if it exists locally).
/// If the package must be downloaded, this should be NULL.
/// </param>
/// <param name="url">
/// The URL of the package to be downloaded. If the local_path is not null, this
/// can be null (it shall never be used if the package is already local)
/// </param>
/// <returns>
/// the callee shall return:
/// 0 on success.
/// 1 on user reqested cancel.
/// </returns>
typedef int (CoAppResolveCallback)(const wchar_t* package_name, const wchar_t* local_path, const wchar_t* url);
/// <summary>
/// Callback prototype for the Install call.
/// CoApp-engine should call periodically during the install of a package
/// </summary>
/// <param name="current_message">
/// A plain text message that MAY be shown to the user
/// </param>
/// <param name="install_status">
/// an integer representing the stage or status of the app being installed
/// (exact definition TBA)
/// </param>
/// <param name="percent_complete">
/// an integer between 0 and 100 indicating the current percent complete.
/// </param>
/// <returns>
/// the callee shall return:
/// 0 on success.
/// 1 on user reqested cancel.
/// </returns>
typedef int (CoAppInstallCallback)(const wchar_t* current_message, int install_status,int percent_complete );
/// <summary>
/// Callback prototype for the Download call.
/// CoApp-engine should call periodically during the download of a file
/// </summary>
/// <param name="current_message">
/// A plain text message that MAY be shown to the user
/// </param>
/// <param name="download_status">
/// an integer representing the stage or status of the file being downloaded
/// (exact definition TBA)
/// </param>
/// <param name="bytes_downloaded">
/// the number of bytes downloaded
/// </param>
/// <param name="percent_complete">
/// the total number of bytes expected
/// </param>
/// <returns>
/// the callee shall return:
/// 0 on success.
/// 1 on user reqested cancel.
/// </returns>
typedef int (CoAppDownloadCallback)(const wchar_t* current_message, int download_status, __int64 bytes_downloaded, __int64 total_bytes );
/// <summary>
/// Resolves the list of packages to be installed to satisfy the request
/// </summary>
/// <param name="package_path">
/// Either a URL or a local file.
/// When passed a URL:
/// the engine must resolve the target file (download it) and proceed
/// based on what kind of a file it is.
///
/// Based on the file type (once it's local)
/// if the file is an MSI, this is taken as the package to be installed
///
/// if the file is an XML document, this is taken as a package feed
/// to install all the items in the feed.
///
/// </param>
/// <param name="callback">
/// Resolve should call this callback once for every package to be installed.
/// </param>
/// <returns>
/// [TBA RETURN CODE?]
/// 0 on success.
/// 1 on user reqested cancel.
/// </returns>
typedef int (coapp_resolve_prototype)(const wchar_t* package_path, CoAppResolveCallback* callback );
/// <summary>
/// Downloads a file from a URL to a local path.
/// </summary>
/// <param name="package_url">
/// a url with the location of the file to be downloaded
/// </param>
/// <param name="local_path">
/// the location the downloaded file should be placed when complete
/// </param>
/// <param name="callback">
/// Resolve should call this callback during the download to provide status and the ability to cancel the download.
/// </param>
/// <returns>
/// [TBA RETURN CODE?]
/// 0 on success.
/// 1 on user reqested cancel.
/// </returns>
typedef int (coapp_download_prototype)(const wchar_t* package_url, const wchar_t* local_path, CoAppDownloadCallback* callback );
/// <summary>
/// Installs a package from a local file.
/// </summary>
/// <param name="local_path">
/// the path of the file on a local file system
/// </param>
/// <param name="callback">
/// Resolve should call this callback during the install to provide status and the ability to cancel the download.
/// </param>
/// <returns>
/// [TBA RETURN CODE?]
/// 0 on success.
/// 1 on user reqested cancel.
/// </returns>
typedef int (coapp_install_prototype)(const wchar_t* local_path, CoAppInstallCallback* callback);
[Description: fearthecowboy]<http://fearthecowboy.com/>
Garrett Serack | Microsoft's Open Source Software Developer | Microsoft Corporation
Office:(425)706-7939 email/messenger: garretts@xxxxxxxxxxxxx<mailto:garretts@xxxxxxxxxxxxx>
blog: http://fearthecowboy.com<http://fearthecowboy.com/> twitter: @fearthecowboy<http://twitter.com/fearthecowboy>
I don't make the software you use; I make the software you use better on Windows.
Follow ups