LibArchiveWrapper Class

class QInstaller::LibArchiveWrapper

The LibArchiveWrapper class provides an interface for interacting with archives handled using the libarchive archive and compression library. More...

Header: #include <LibArchiveWrapper>
Inherits: QInstaller::AbstractArchive

Public Functions

LibArchiveWrapper(QObject *parent = nullptr)
LibArchiveWrapper(const QString &filename, QObject *parent = nullptr)
virtual ~LibArchiveWrapper()

Reimplemented Public Functions

virtual void close() override
virtual bool create(const QStringList &data) override
virtual QString errorString() const override
virtual bool extract(const QString &dirPath) override
virtual bool extract(const QString &dirPath, const quint64 totalFiles) override
virtual bool isSupported() override
virtual QVector<QInstaller::ArchiveEntry> list() override
virtual bool open(QIODeviceBase::OpenMode mode) override
virtual void setCompressionLevel(const QInstaller::AbstractArchive::CompressionLevel level) override
virtual void setFilename(const QString &filename) override

Public Slots

virtual void cancel() override

Detailed Description

The invoked archive operations are performed in a normal user mode, or in an on-demand elevated user mode through the remote client-server protocol of the framework.

This class is not thread-safe; extra care should be taken especially when elevated mode is active to not call its functions from any thread other than where the object was created.

Member Function Documentation

[explicit] LibArchiveWrapper::LibArchiveWrapper(QObject *parent = nullptr)

Constructs an archive object with the given parent.

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

Constructs an archive object representing an archive file specified by filename with parent as the parent object.

[virtual noexcept] LibArchiveWrapper::~LibArchiveWrapper()

Destroys the instance.

[override virtual slot] void LibArchiveWrapper::cancel()

Reimplements: AbstractArchive::cancel().

Cancels the extract operation in progress.

If the remote connection is active, the method is called by the server instead.

[override virtual] void LibArchiveWrapper::close()

Reimplements: AbstractArchive::close().

Closes the file device.

[override virtual] bool LibArchiveWrapper::create(const QStringList &data)

Reimplements: AbstractArchive::create(const QStringList &data).

Packages the given data into the archive and creates the file on disk. Returns true on success; false otherwise.

If the remote connection is active, the method is called by the server instead.

[override virtual] QString LibArchiveWrapper::errorString() const

Reimplements: AbstractArchive::errorString() const.

Returns a human-readable description of the last error that occurred.

If the remote connection is active, the method is called by the server instead.

[override virtual] bool LibArchiveWrapper::extract(const QString &dirPath)

Reimplements: AbstractArchive::extract(const QString &dirPath).

Extracts the contents of this archive to dirPath. Returns true on success; false otherwise.

If the remote connection is active, the method is called by the server instead, with the client starting a new event loop waiting for the extraction to finish.

[override virtual] bool LibArchiveWrapper::extract(const QString &dirPath, const quint64 totalFiles)

Reimplements: AbstractArchive::extract(const QString &dirPath, const quint64 totalFiles).

Extracts the contents of this archive to dirPath with precalculated count of totalFiles. Returns true on success; false otherwise.

If the remote connection is active, the method is called by the server instead, with the client starting a new event loop waiting for the extraction to finish.

[override virtual] bool LibArchiveWrapper::isSupported()

Reimplements: AbstractArchive::isSupported().

Returns true if the current archive is of a supported format; false otherwise.

[override virtual] QVector<QInstaller::ArchiveEntry> LibArchiveWrapper::list()

Reimplements: AbstractArchive::list().

Returns the contents of this archive as an array of ArchiveEntry objects. On failure, returns an empty array.

[override virtual] bool LibArchiveWrapper::open(QIODeviceBase::OpenMode mode)

Reimplements: AbstractArchive::open(QIODeviceBase::OpenMode mode).

Opens the file device using mode. Returns true if succesfull; otherwise false.

[override virtual] void LibArchiveWrapper::setCompressionLevel(const QInstaller::AbstractArchive::CompressionLevel level)

Reimplements: AbstractArchive::setCompressionLevel(const QInstaller::AbstractArchive::CompressionLevel level).

Sets the compression level for new archives to level.

[override virtual] void LibArchiveWrapper::setFilename(const QString &filename)

Reimplements: AbstractArchive::setFilename(const QString &filename).

Sets the filename for the archive.

If the remote connection is active, the same method is called by the server.

© 2021 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. The Qt Company, Qt and their respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.