AusweisApp2/src/services/AppUpdater.h

52 lines
1.1 KiB
C
Raw Normal View History

2017-12-20 14:54:05 +01:00
/*!
2018-03-28 15:10:51 +02:00
* \copyright Copyright (c) 2016-2018 Governikus GmbH & Co. KG, Germany
2017-12-20 14:54:05 +01:00
*/
#pragma once
#include "AppUpdateData.h"
2019-01-03 15:06:22 +01:00
#include "Env.h"
2017-12-20 14:54:05 +01:00
#include "GlobalStatus.h"
#include <QDateTime>
#include <QUrl>
2019-01-03 15:06:22 +01:00
class test_AppUpdater;
2017-12-20 14:54:05 +01:00
namespace governikus
{
class AppUpdater
: public QObject
{
Q_OBJECT
private:
2019-01-03 15:06:22 +01:00
friend class Env;
friend class ::test_AppUpdater;
2017-12-20 14:54:05 +01:00
bool mIgnoreNextVersionskip;
QUrl mAppUpdateJsonUrl;
AppUpdateData mAppUpdateData;
void clearDownloaderConnection();
2019-01-03 15:06:22 +01:00
protected:
2017-12-20 14:54:05 +01:00
AppUpdater();
virtual ~AppUpdater() = default;
static AppUpdater& getInstance();
2019-01-03 15:06:22 +01:00
public:
2017-12-20 14:54:05 +01:00
void checkAppUpdate(bool pIgnoreNextVersionskip = false);
const AppUpdateData& getUpdateData() const;
void skipVersion(const QString& pVersion);
private Q_SLOTS:
void onUpdateDownloadFinished(const QUrl& pUpdateUrl, const QDateTime& pNewTimestamp, const QByteArray& pData);
void onUpdateDownloadFailed(const QUrl& pUpdateUrl, GlobalStatus::Code pErrorCode);
void onUpdateDownloadUnnecessary(const QUrl& pUpdateUrl);
Q_SIGNALS:
void fireAppUpdateCheckFinished(bool pUpdateAvailable, const GlobalStatus& pError);
};
2019-01-03 15:06:22 +01:00
} // namespace governikus