summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'SwifTools/AutoUpdater/AutoUpdater.h')
-rw-r--r--SwifTools/AutoUpdater/AutoUpdater.h41
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;
+ };
}