diff options
Diffstat (limited to 'SwifTools/AutoUpdater/AutoUpdater.h')
-rw-r--r-- | SwifTools/AutoUpdater/AutoUpdater.h | 41 |
1 files changed, 33 insertions, 8 deletions
diff --git a/SwifTools/AutoUpdater/AutoUpdater.h b/SwifTools/AutoUpdater/AutoUpdater.h index 77e0045..fdd3a91 100644 --- a/SwifTools/AutoUpdater/AutoUpdater.h +++ b/SwifTools/AutoUpdater/AutoUpdater.h @@ -1,16 +1,41 @@ /* - * Copyright (c) 2010 Remko Tronçon - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. + * Copyright (c) 2010-2017 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. */ #pragma once +#include <string> + +#include <boost/signals2.hpp> + namespace Swift { - class AutoUpdater { - public: - virtual ~AutoUpdater(); + class AutoUpdater { + public: + enum class State { + NotCheckedForUpdatesYet, + NoUpdateAvailable, + CheckingForUpdate, + ErrorCheckingForUpdate, + DownloadingUpdate, + RestartToInstallUpdate + }; + + public: + virtual ~AutoUpdater(); + + virtual void setAppcastFeed(const std::string& appcastFeed) = 0; + virtual void checkForUpdates() = 0; + virtual State getCurrentState() = 0; + virtual bool applicationInstallationLocationWritable() = 0; - virtual void checkForUpdates() = 0; - }; + public: + /** + * Emit this signal if a new version of the software has been downloaded + * and the user needs to be notified so they can quit the app and start + * the newer version. + */ + boost::signals2::signal<void(State)> onUpdateStateChanged; + }; } |