X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fpackage%2FInstall.hxx;h=4e198eba01d53eef35743b05fe807b5a0054f94f;hb=32181a3956a8e7e1cb4bdb5338a260df7d343534;hp=81cf580adee46d82e87f30f6aac878e39a453d92;hpb=dc60cf0e67541212d05c9176a5f34324628d2c8e;p=simgear.git diff --git a/simgear/package/Install.hxx b/simgear/package/Install.hxx index 81cf580a..4e198eba 100644 --- a/simgear/package/Install.hxx +++ b/simgear/package/Install.hxx @@ -21,13 +21,15 @@ #include #include +#include #include +#include #include #include +#include #include -#include namespace simgear { @@ -73,9 +75,36 @@ public: bool hasUpdate() const; void startUpdate(); - - void uninstall(); + bool uninstall(); + + bool isDownloading() const; + + bool isQueued() const; + + int downloadedPercent() const; + + size_t downloadedBytes() const; + + /** + * full path to the primary -set.xml file for this install + */ + SGPath primarySetPath() const; + + /** + * if a download is in progress, cancel it. If this is the first install + * of the package (as opposed to an update), the install will be cleaned + * up once the last reference is gone. + */ + void cancelDownload(); + + /** + * return the thumbnails associated with this install, but as locations + * on the file system, not URLs. It is assumed the order of thumbnails + * is consistent with the URLs returned from Package::thumbnailUrls() + */ + PathList thumbnailPaths() const; + /** * Set the handler to be called when the installation successfully * completes. @@ -145,22 +174,21 @@ private: void parseRevision(); void writeRevisionFile(); - void installResult(Delegate::FailureCode aReason); + void installResult(Delegate::StatusCode aReason); void installProgress(unsigned int aBytes, unsigned int aTotal); PackageRef m_package; unsigned int m_revision; ///< revision on disk SGPath m_path; ///< installation point on disk - PackageArchiveDownloader* m_download; - - Delegate::FailureCode _status; + HTTP::Request_ptr m_download; - Callback _cb_done, - _cb_fail, - _cb_always; - ProgressCallback _cb_progress; + Delegate::StatusCode m_status; + function_list _cb_done, + _cb_fail, + _cb_always; + function_list _cb_progress; };