LibArchiveArchive 类

QInstaller::LibArchiveArchive

LibArchiveArchive 类表示一个由 libarchive 归档项目和压缩库处理的存档文件。 更多...

头文件 #include <LibArchiveArchive>
继承 QInstaller::AbstractArchive

公共函数

LibArchiveArchive(const QString &filename, QObject *parent = nullptr)
LibArchiveArchive(QObject *parent = nullptr)
virtual~LibArchiveArchive()
voidworkerAddDataBlock(const QByteArray buffer)
voidworkerCancel()
voidworkerExtract(const QString &dirPath, const quint64 totalFiles)
voidworkerSetDataAtEnd()
voidworkerSetFilePosition(qint64 pos)
QInstaller::ExtractWorker::StatusworkerStatus() const

重实现的公共函数

virtual voidclose() override
virtual boolcreate(const QStringList &data) override
virtual boolextract(const QString &dirPath) override
virtual boolextract(const QString &dirPath, const quint64 totalFiles) override
virtual boolisSupported() override
virtual QVector<QInstaller::ArchiveEntry>list() override
virtual boolopen(QIODeviceBase::OpenMode mode) override
virtual voidsetFilename(const QString &filename) override

公共槽

virtual voidcancel() override

信号

voiddataBlockRequested()
voidseekRequested(qint64 offset, int whence)
voidworkerAboutToAddDataBlock(const QByteArray buffer)
voidworkerAboutToCancel()
voidworkerAboutToExtract(const QString &dirPath, const quint64 totalFiles)
voidworkerAboutToSetDataAtEnd()
voidworkerAboutToSetFilePosition(qint64 pos)
voidworkerFinished()

详细描述

除了从底层文件设备提取数据之外,该类还支持从外部数据源以非阻塞方式提取数据。在 此模式下,调用客户端必须按任意大小块传递要读取的数据,并在没有更多数据可读时通知该对象。

成员函数文档

LibArchiveArchive::LibArchiveArchive(const QString &filename, QObject *parent = nullptr)

使用指定的filename和将parent作为父对象的父对象,构造一个表示归档文件的归档对象。

[显式构造函数] LibArchiveArchive::LibArchiveArchive(QObject *parent = nullptr)

使用指定的parent构造归档对象。

[虚函数无异常抛出] LibArchiveArchive::~LibArchiveArchive()

销毁实例并释放资源。

[重载虚拟槽] void LibArchiveArchive::cancel()

重新实现: AbstractArchive::cancel().

取消正在进行的提取操作。

[重载虚拟函数] void LibArchiveArchive::close()

重新实现: AbstractArchive::close().

关闭底层文件设备。

[重载虚拟函数] bool LibArchiveArchive::create(const QStringList &data)

重新实现: AbstractArchive::create(const QStringList &data).

将给定的data打包到归档中,并在磁盘上创建文件。

[信号] void LibArchiveArchive::dataBlockRequested()

当工作对象需要更多数据以继续提取时发出。

[重载虚拟函数] bool LibArchiveArchive::extract(const QString &dirPath)

重新实现: AbstractArchive::extract(const QString &dirPath).

将归档的内容提取到dirPath。成功时返回 true;否则返回 false

[重载虚拟函数] bool LibArchiveArchive::extract(const QString &dirPath, const quint64 totalFiles)

重新实现: AbstractArchive::extract(const QString &dirPath, const quint64 totalFiles).

将归档的内容提取到dirPath,并带有预计算的文件数totalFiles。成功时返回 true;否则返回 false

[重载虚拟函数] bool LibArchiveArchive::isSupported()

重新实现: AbstractArchive::isSupported().

如果当前归档为支持的格式,则返回 true;否则返回 false

[覆写虚函数] QVector<QInstaller::ArchiveEntry> LibArchiveArchive::list()

重实:AbstractArchive::list().

ArchiveEntry 对象数组的形式返回此存档的目录。如果操作失败,返回空数组。

[覆写虚函数] bool LibArchiveArchive::open(QIODeviceBase::OpenMode mode)

重实:AbstractArchive::open(QIODeviceBase::OpenMode mode).

使用 mode 打开底层的文件设备。如果操作成功,则返回 true;否则返回 false

[信号] void LibArchiveArchive::seekRequested(qint64 offset, int whence)

在工作对象需要移动到 offset 位置以继续提取时发出。whence 值定义了 offset 的起始位置。

[覆写虚函数] void LibArchiveArchive::setFilename(const QString &filename)

重实:AbstractArchive::setFilename(const QString &filename).

设置底层文件设备的 filename

[信号] void LibArchiveArchive::workerAboutToAddDataBlock(const QByteArray buffer)

在工作对象即将在 buffer 中添加并读取数据块时发出。

[信号] void LibArchiveArchive::workerAboutToCancel()

在工作对象即将取消提取时发出。

[信号] void LibArchiveArchive::workerAboutToExtract(const QString &dirPath, const quint64 totalFiles)

在工作对象即将将 totalFiles 从存档提取到 dirPath 时发出。

[信号] void LibArchiveArchive::workerAboutToSetDataAtEnd()

在工作对象即将设置数据尾巴,意味着将不再有进一步的数据读取请求时发出。

[信号] void LibArchiveArchive::workerAboutToSetFilePosition(qint64 pos)

在工作对象即将设置新的文件位置 pos 时发出。

void LibArchiveArchive::workerAddDataBlock(const QByteArray buffer)

将数据添加到 buffer 以供工作对象读取。

void LibArchiveArchive::workerCancel()

取消对工作对象正在进行的提取。

void LibArchiveArchive::workerExtract(const QString &dirPath, const quint64 totalFiles)

在单独的线程中使用工作对象请求将存档提取到dirPath,包含totalFiles个文件。

[信号] void LibArchiveArchive::workerFinished()

当工作对象完成提取存档时发出。

void LibArchiveArchive::workerSetDataAtEnd()

向工作对象发出信号,客户端数据已到达末尾。

void LibArchiveArchive::workerSetFilePosition(qint64 pos)

向工作对象发出信号,客户端文件位置已更改为pos

QInstaller::ExtractWorker::Status LibArchiveArchive::workerStatus() const

返回工作对象的状态。

©2021 The Qt Company Ltd. 本文档中包含的文档贡献是各自所有者的版权。本文档按自由软件基金会发布的GNU自由文档许可协议版本1.3的条款提供许可。Qt公司,Qt及其相应徽标是芬兰以及/或全球其他国家的Qt公司的商标。所有其他商标均为其各自所有者的财产。