UpdateOperation 类
class KDUpdater::UpdateOperationUpdateOperation 类是更新操作的抽象基类。 更多信息...
头文件 | #include <UpdateOperation> |
公共类型
枚举 | Error { NoError, InvalidArguments, UserDefinedError } |
枚举 | OperationGroup { Unpack, Install, All, Default } |
标志 | 操作组 |
枚举 | OperationType { Backup, Perform, Undo } |
公共函数
QString | argumentKeyValue(const QString &key, const QString &defaultValue = QString()) const |
QStringList | arguments() const |
virtual void | backup() = 0 |
void | clear() |
void | clearValue(const QString &name) |
int | error() const |
QString | errorString() const |
QStringList | filesForDelayedDeletion() const |
virtual bool | fromXml(const QDomDocument &doc) |
virtual bool | fromXml(const QString &xml) |
KDUpdater::UpdateOperation::OperationGroup | group() const |
bool | hasValue(const QString &name) const |
QString | name() const |
QString | operationCommand() const |
QInstaller::PackageManagerCore * | packageManager() const |
virtual bool | performOperation() = 0 |
bool | requiresUnreplacedVariables() const |
void | setArguments(const QStringList &args) |
void | setValue(const QString &name, const QVariant &value) |
virtual quint64 | sizeHint() |
virtual bool | testOperation() = 0 |
virtual QDomDocument | toXml() const |
virtual bool | undoOperation() = 0 |
QVariant | value(const QString &name) const |
保护函数
bool | checkArgumentCount(int minArgCount, int maxArgCount, const QString &argDescription = QString()) |
bool | checkArgumentCount(int argCount) |
bool | deleteFileNowOrLater(const QString &file, QString *errorString = 0) |
QStringList | parsePerformOperationArguments() |
void | registerForDelayedDeletion(const QStringList &files) |
void | setError(int error, const QString &errorString = QString()) |
void | setErrorString(const QString &str) |
void | setGroup(const KDUpdater::UpdateOperation::OperationGroup &group) |
void | setName(const QString &name) |
void | setRequiresUnreplacedVariables(bool isRequired) |
bool | skipUndoOperation() |
bool | variableReplacement(QString *variableValue) |
详细描述
KDUpdater::UpdateOperation 是一个抽象类,指定了更新操作的接口。该类的具体实现必须执行单个更新操作,例如复制、移动或删除。
注意:两个线程不能同时使用 KDUpdater::UpdateOperation 的单个实例。
成员类型文档
枚举 UpdateOperation::Error
此枚举代码指定了与操作参数和操作运行时失败相关的错误代码。
常量 | 值 | 描述 |
---|---|---|
KDUpdater::UpdateOperation::NoError | 0 | 没有发生错误。 |
KDUpdater::UpdateOperation::InvalidArguments | 1 | 参数数量不匹配或设置了无效参数。 |
KDUpdater::UpdateOperation::UserDefinedError | 128 | 操作运行期间发生错误。使用 UpdateOperation::errorString() 获取发生错误的用户可读描述。 |
枚举 UpdateOperation::OperationGroup
标志 UpdateOperation::OperationGroups
此枚举指定了操作的执行组。
常量 | 值 | 描述 |
---|---|---|
KDUpdater::UpdateOperation::Unpack | 0x1 | 应在解包阶段运行操作。该组中的操作将在所有选定的组件之间并发执行。 |
KDUpdater::UpdateOperation::Install | 0x2 | 应在安装阶段运行操作。 |
KDUpdater::UpdateOperation::All | (Unpack | Install) | 所有可用的操作组。 |
KDUpdater::UpdateOperation::Default | Install | 操作默认组,同义词为 Install。 |
The OperationGroups 类型是 QFlags<OperationGroup> 的 typedef。它存储了 OperationGroup 值的或组合。
枚举 UpdateOperation::OperationType
此枚举代码指定了操作类型。
常量 | 值 | 描述 |
---|---|---|
KDUpdater::UpdateOperation::Backup | 0 | 备份操作。 |
KDUpdater::UpdateOperation::Perform | 1 | 执行操作。 |
KDUpdater::UpdateOperation::Undo | 2 | 撤销操作。 |
成员函数文档
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())
如果参数数量在 minArgCount 和 maxArgCount 的范围内,则返回 true
。argDescription 包含有关预期形式的详细信息。
[保护]
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 的商标。所有其他商标均为其各自所有者的财产。