UpdateOperation 类

class KDUpdater::UpdateOperation

UpdateOperation 类是更新操作的抽象基类。 更多信息...

头文件 #include <UpdateOperation>

公共类型

枚举Error { NoError, InvalidArguments, UserDefinedError }
枚举OperationGroup { Unpack, Install, All, Default }
标志操作组
枚举OperationType { Backup, Perform, Undo }

公共函数

QStringargumentKeyValue(const QString &key, const QString &defaultValue = QString()) const
QStringListarguments() const
virtual voidbackup() = 0
voidclear()
voidclearValue(const QString &name)
interror() const
QStringerrorString() const
QStringListfilesForDelayedDeletion() const
virtual boolfromXml(const QDomDocument &doc)
virtual boolfromXml(const QString &xml)
KDUpdater::UpdateOperation::OperationGroupgroup() const
boolhasValue(const QString &name) const
QStringname() const
QStringoperationCommand() const
QInstaller::PackageManagerCore *packageManager() const
virtual boolperformOperation() = 0
boolrequiresUnreplacedVariables() const
voidsetArguments(const QStringList &args)
voidsetValue(const QString &name, const QVariant &value)
virtual quint64sizeHint()
virtual booltestOperation() = 0
virtual QDomDocumenttoXml() const
virtual boolundoOperation() = 0
QVariantvalue(const QString &name) const

保护函数

boolcheckArgumentCount(int minArgCount, int maxArgCount, const QString &argDescription = QString())
boolcheckArgumentCount(int argCount)
booldeleteFileNowOrLater(const QString &file, QString *errorString = 0)
QStringListparsePerformOperationArguments()
voidregisterForDelayedDeletion(const QStringList &files)
voidsetError(int error, const QString &errorString = QString())
voidsetErrorString(const QString &str)
voidsetGroup(const KDUpdater::UpdateOperation::OperationGroup &group)
voidsetName(const QString &name)
voidsetRequiresUnreplacedVariables(bool isRequired)
boolskipUndoOperation()
boolvariableReplacement(QString *variableValue)

详细描述

KDUpdater::UpdateOperation 是一个抽象类,指定了更新操作的接口。该类的具体实现必须执行单个更新操作,例如复制、移动或删除。

注意:两个线程不能同时使用 KDUpdater::UpdateOperation 的单个实例。

成员类型文档

枚举 UpdateOperation::Error

此枚举代码指定了与操作参数和操作运行时失败相关的错误代码。

常量描述
KDUpdater::UpdateOperation::NoError0没有发生错误。
KDUpdater::UpdateOperation::InvalidArguments1参数数量不匹配或设置了无效参数。
KDUpdater::UpdateOperation::UserDefinedError128操作运行期间发生错误。使用 UpdateOperation::errorString() 获取发生错误的用户可读描述。

枚举 UpdateOperation::OperationGroup
标志 UpdateOperation::OperationGroups

此枚举指定了操作的执行组。

常量描述
KDUpdater::UpdateOperation::Unpack0x1应在解包阶段运行操作。该组中的操作将在所有选定的组件之间并发执行。
KDUpdater::UpdateOperation::Install0x2应在安装阶段运行操作。
KDUpdater::UpdateOperation::All(Unpack | Install)所有可用的操作组。
KDUpdater::UpdateOperation::DefaultInstall操作默认组,同义词为 Install。

The OperationGroups 类型是 QFlags<OperationGroup> 的 typedef。它存储了 OperationGroup 值的或组合。

枚举 UpdateOperation::OperationType

此枚举代码指定了操作类型。

常量描述
KDUpdater::UpdateOperation::Backup0备份操作。
KDUpdater::UpdateOperation::Perform1执行操作。
KDUpdater::UpdateOperation::Undo2撤销操作。

成员函数文档

QString UpdateOperation::argumentKeyValue(const QString &key, const QString &defaultValue = QString()) const

根据指定的 key 搜索参数。如果可以找到该密钥,则返回为其设置的值。否则,它返回 defaultValue。参数以以下形式指定:key=value

QStringList UpdateOperation::arguments() const

返回更新操作的参数。

另请参阅:setArguments

[纯虚函数] void UpdateOperation::backup()

子类必须实现此函数,在执行操作之前备份任何数据。

[保护] bool UpdateOperation::checkArgumentCount(int minArgCount, int maxArgCount, const QString &argDescription = QString())

如果参数数量在 minArgCountmaxArgCount 的范围内,则返回 trueargDescription 包含有关预期形式的详细信息。

[保护] bool UpdateOperation::checkArgumentCount(int argCount)

如果参数数量恰好为 argCount,则返回 true

void UpdateOperation::clear()

清除之前设置的参数。

void UpdateOperation::clearValue(const QString &name)

清除 name 的值并删除它。

[保护] bool UpdateOperation::deleteFileNowOrLater(const QString &file, QString *errorString = 0)

尝试删除 file。如果无法删除 file,则将其注册为延迟删除。

如果无法创建文件的备份副本,则返回 false 并显示由 errorString 指定的错误消息。

int UpdateOperation::error() const

返回在处理操作期间找到的错误。如果没有发现错误,则返回 NoError。子类可以设置更详细的错误代码(可选)。

注意:要检查操作是否成功,请使用 performOperation()、undoOperation() 或 testOperation() 的返回值。

另请参阅:setError()。

QString UpdateOperation::errorString() const

返回最后发生错误的可读性描述。

另请参阅:setErrorString()。

QStringList UpdateOperation::filesForDelayedDeletion() const

返回计划稍后删除的文件列表。

[虚函数] bool UpdateOperation::fromXml(const QDomDocument &doc)

从 XML 文档 doc 中恢复操作参数和值。成功时返回 true,否则返回 false

注意:清除所有先前设置的价值和参数。

[虚函数] bool UpdateOperation::fromXml(const QString &xml)

这是一个重载函数。

从路径 xml 的 XML 文件中恢复操作参数和值。在成功的情况下返回 true,否则返回 false

KDUpdater::UpdateOperation::OperationGroup UpdateOperation::group() const

返回此操作所属的执行组。

参见 setGroup()。

bool UpdateOperation::hasValue(const QString &name) const

如果存在名为 name 的值,则返回 true,否则返回 false

QString UpdateOperation::name() const

返回更新操作名称。

参见 setName()。

QString UpdateOperation::operationCommand() const

返回描述更新操作的命令行字符串。返回的字符串形式为

<name> <arg1> <arg2> <arg3> ....

QInstaller::PackageManagerCore *UpdateOperation::packageManager() const

返回此操作所属的包管理器核心。

[protected] QStringList UpdateOperation::parsePerformOperationArguments()

返回不带 UNDOOOPERATION 参数的操作参数列表。

[pure virtual] bool UpdateOperation::performOperation()

子类必须实现此函数以执行更新操作。

如果操作成功,则返回 true

[protected] void UpdateOperation::registerForDelayedDeletion(const QStringList &files)

将文件列表 files 注册为稍后删除的文件,条件是程序重启后该文件不再被使用。

bool UpdateOperation::requiresUnreplacedVariables() const

如果安装程序保存未解决的变量,则返回 true。变量在执行操作之前立即解决。

参见 setRequiresUnreplacedVariables()。

void UpdateOperation::setArguments(const QStringList &args)

设置更新操作参数为 args

参见 arguments()。

[protected] void UpdateOperation::setError(int error, const QString &errorString = QString())

将错误条件设置为 error。将可读性信息设置为 errorString

参见 UpdateOperation::error() 和 UpdateOperation::errorString()。

[受保护的] void UpdateOperation::setErrorString(const QString &str)

将最后发生的错误的人类可读描述设置为str

另请参阅errorString

[受保护的] void UpdateOperation::setGroup(const KDUpdater::UpdateOperation::OperationGroup &group)

将操作的执行组设置为group。子类可以更改组以控制此操作应在哪个安装阶段中运行。

默认组为Install

另请参阅group

[受保护的] void UpdateOperation::setName(const QString &name)

将操作的名称设置为name。子类必须提供一个唯一的名称来描述操作。

另请参阅name

[受保护的] void UpdateOperation::setRequiresUnreplacedVariables(bool isRequired)

将未解决变量的需求设置为isRequired

另请参阅requiresUnreplacedVariables

void UpdateOperation::setValue(const QString &name, const QVariant &value)

name的值设置为value

另请参阅value

[虚函数] quint64 UpdateOperation::sizeHint()

返回此操作与其他操作在大小和执行操作所需时间比较的数值表示。

返回的默认值是1。子类可以重写此方法以实现自定义大小提示。

[受保护的] bool UpdateOperation::skipUndoOperation()

如果不需要执行操作撤销,返回true。如果安装被取消或失败,或操作调用中未设置UNDOOPERATION,则返回false

[纯虚函数] bool UpdateOperation::testOperation()

子类必须实现此函数以执行测试操作。

如果操作成功,则返回 true

[虚函数] QDomDocument UpdateOperation::toXml() const

将操作参数和值保存为XML文档并返回该文档。您可以覆盖此方法来存储自己的额外数据。额外数据可以是您执行或撤销操作所需存储的任何数据。默认实现负责通过UpdateOperation::setValue设置的参数和值。

[纯虚函数] bool UpdateOperation::undoOperation()

子类必须实现此函数以执行更新操作的撤销。

如果操作成功,则返回 true

QVariant UpdateOperation::value(const QString &name) const

返回name的值。如果该值不存在,则返回一个空的QVariant

另请参阅setValue

[protected] bool UpdateOperation::variableReplacement(QString *variableValue)

将安装程序的variableValue value 替换为预定义变量。如果找到对variableValue对应的键,并且该键以字符串 _OLD 结尾,则将初始 variableValue 替换为不带 _OLD 结尾的键对应的值。这样我们可以在值因某些原因改变时替换为硬编码的值定义,例如如果我们在安装脚本中设置以下变量:

installer.setValue("MY_OWN_EXECUTABLE", "C:/Qt/NewLocation/Tools.exe")
installer.setValue("MY_OWN_EXECUTABLE_OLD", "C:/Qt/OldLocation/Tools.exe")

并且我们已经将 Tools.exe 从 OldLocation 移动到 NewLocation,操作将继续执行并使用 NewLocation 中的 Tools.exe,尽管原始安装已使用 OldLocation 中的 Tools.exe 进行。如果variableValue被替换,则返回true

©2021 The Qt Company Ltd. 本文件中包含的文档贡献的版权归其各自所有者所有。本文件中提供的文档是在自由软件基金会的 GNU 自由文档许可证第 1.3 版的条款下提供的,该许可证如自由软件基金会发布的版本。Qt 公司,Qt 及其各自标志是芬兰及其它国家的 The Qt Company Ltd 的商标。所有其他商标均为其各自所有者的财产。