#pragma once #include #include "HttpHelper.h" #include #include class UpdateLogic : public QObject { Q_OBJECT public: explicit UpdateLogic(QObject* parent = nullptr); void checkUpdate(); void getDownloadUrl(const QString& appId, const QString& channel, const QString& ver, int verId); void reportUpdateResult(const QString& deviceId, const QString& fromVer, const QString& toVer, bool success); bool cacheManifest(const QString& appId, const QString& channel, const QString& version, int versionId, const QString& cacheDir); bool refreshGitTagsFile(const QString& outputPath); bool getNeedUpdate() const { return m_needUpdate; } QString getLatestVersion() const { return m_latestVer; } QJsonObject getCheckResult() const { return m_checkResp; } bool isNetworkOk() const { return m_networkOk; } int lastStatusCode() const { return m_lastStatusCode; } QString errorString() const { return m_error; } QString getAppId() const { return m_appId; } QString getChannel() const { return m_channel; } private: HttpHelper m_http; QString m_serverAddr; QString m_appId; QString m_curVer; QString m_channel; bool m_needUpdate = false; bool m_networkOk = false; int m_lastStatusCode = 0; QString m_latestVer; QJsonObject m_checkResp; QString m_error; };