1.0.0
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
#pragma once
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
#include <QJsonObject>
|
||||
|
||||
class UpdateTransaction
|
||||
{
|
||||
public:
|
||||
UpdateTransaction(const QString& installDir, const QString& fromVersion,
|
||||
const QString& toVersion, int manifestId);
|
||||
|
||||
bool initialize();
|
||||
bool resumeExisting(QString* errorMessage = nullptr);
|
||||
bool recordVerifiedFiles(const QStringList& changedPaths, const QStringList& obsoletePaths);
|
||||
bool backupCurrentFiles();
|
||||
bool installStagedFiles(QString* failedPath = nullptr);
|
||||
bool markAwaitingBootstrap();
|
||||
bool markRollbackRequired(const QString& reason);
|
||||
bool markRolledBack();
|
||||
bool markPostVerify();
|
||||
bool rollback(QString* failedPath = nullptr);
|
||||
bool commit();
|
||||
bool markFailed(const QString& errorCode, const QString& message);
|
||||
|
||||
QString transactionId() const;
|
||||
QString fromVersion() const;
|
||||
QString stagingDir() const;
|
||||
QString backupDir() const;
|
||||
QStringList obsoletePaths() const;
|
||||
QString healthFile() const;
|
||||
|
||||
static bool recoverInterrupted(const QString& installDir,
|
||||
QString* restoredVersion = nullptr,
|
||||
QString* errorMessage = nullptr);
|
||||
|
||||
private:
|
||||
bool writeState(const QString& status, const QString& errorCode = QString(),
|
||||
const QString& message = QString());
|
||||
bool copyOverwrite(const QString& source, const QString& destination) const;
|
||||
static bool safeRelativePath(const QString& path);
|
||||
|
||||
QString m_installDir;
|
||||
QString m_updateDir;
|
||||
QString m_stateFile;
|
||||
QString m_transactionId;
|
||||
QString m_fromVersion;
|
||||
QString m_toVersion;
|
||||
int m_manifestId = 0;
|
||||
QString m_stagingDir;
|
||||
QString m_backupDir;
|
||||
QStringList m_changedPaths;
|
||||
QStringList m_obsoletePaths;
|
||||
QJsonObject m_state;
|
||||
};
|
||||
Reference in New Issue
Block a user