|
QGroundControl
Ground Control Station for MAVLink Drones
|
#include <QGCArchiveDeviceBase.h>
Inheritance diagram for QGCArchiveDeviceBase:
Collaboration diagram for QGCArchiveDeviceBase:Public Member Functions | |
| ~QGCArchiveDeviceBase () override | |
| void | close () override |
| bool | isSequential () const override |
| qint64 | bytesAvailable () const override |
| QString | errorString () const |
| QString | formatName () const |
| QString | filterName () const |
Protected Member Functions | |
| QGCArchiveDeviceBase (const QString &filePath, QObject *parent=nullptr) | |
| QGCArchiveDeviceBase (QIODevice *source, QObject *parent=nullptr) | |
| qint64 | readData (char *data, qint64 maxSize) override |
| qint64 | writeData (const char *data, qint64 maxSize) override |
| bool | initSourceFromPath () |
| virtual bool | initArchive ()=0 |
| virtual bool | prepareForReading ()=0 |
| virtual bool | isReadyToRead () const =0 |
| void | configureArchiveFormats (bool allFormats) |
| bool | openArchive () |
| bool | fillBuffer () |
| void | captureFormatInfo () |
| Capture format info from the archive after first header read. | |
| virtual void | resetState () |
| Reset all state (called by close()) | |
Protected Attributes | |
| QString | _filePath |
| QIODevice * | _sourceDevice = nullptr |
| bool | _ownsSource = false |
| std::unique_ptr< QIODevice > | _ownedSource |
| struct archive * | _archive = nullptr |
| QByteArray | _resourceData |
| bool | _eof = false |
| QByteArray | _buffer |
| QString | _errorString |
| QString | _formatName |
| QString | _filterName |
Base class for QIODevice wrappers that use libarchive for decompression Provides common source management, buffer handling, and archive lifecycle Read-only, sequential access only
Definition at line 17 of file QGCArchiveDeviceBase.h.
|
override |
Definition at line 31 of file QGCArchiveDeviceBase.cc.
References close().
|
explicitprotected |
Construct with file path
| filePath | Path to file (or Qt resource path :/) |
| parent | QObject parent |
Definition at line 17 of file QGCArchiveDeviceBase.cc.
|
explicitprotected |
Construct with QIODevice source
| source | Data source (must be open and readable) |
| parent | QObject parent |
Definition at line 24 of file QGCArchiveDeviceBase.cc.
|
override |
Definition at line 57 of file QGCArchiveDeviceBase.cc.
References _buffer.
|
protected |
Capture format info from the archive after first header read.
Definition at line 221 of file QGCArchiveDeviceBase.cc.
References _archive, _filterName, and _formatName.
Referenced by QGCDecompressDevice::prepareForReading().
|
override |
Definition at line 40 of file QGCArchiveDeviceBase.cc.
References _archive, _ownedSource, _ownsSource, _sourceDevice, and resetState().
Referenced by QGCFileHelper::computeDecompressedFileHash(), QGCFileHelper::readFile(), and ~QGCArchiveDeviceBase().
|
protected |
Configure libarchive format support (called during initArchive)
| allFormats | true for all archive formats, false for raw (single-file) format |
Definition at line 154 of file QGCArchiveDeviceBase.cc.
References _archive.
Referenced by QGCArchiveFile::initArchive(), and QGCDecompressDevice::initArchive().
| QString QGCArchiveDeviceBase::errorString | ( | ) | const |
Get error description
Definition at line 62 of file QGCArchiveDeviceBase.cc.
References _errorString.
|
protected |
Read data from archive into internal buffer
Definition at line 197 of file QGCArchiveDeviceBase.cc.
References _archive, _buffer, _eof, _errorString, and QGCFileHelper::kBufferSizeMax.
Referenced by readData().
|
inline |
Get detected compression filter name (available after open)
Definition at line 39 of file QGCArchiveDeviceBase.h.
References _filterName.
|
inline |
Get detected archive format name (available after open)
Definition at line 35 of file QGCArchiveDeviceBase.h.
References _formatName.
|
protectedpure virtual |
Initialize libarchive reader with configured format support Subclasses must override to configure format support before calling base
Implemented in QGCArchiveFile, and QGCDecompressDevice.
|
protected |
Initialize source device from file path Opens file or Qt resource and sets up _sourceDevice
Definition at line 113 of file QGCArchiveDeviceBase.cc.
References _errorString, _filePath, _ownedSource, _resourceData, _sourceDevice, and QGCFileHelper::isQtResource().
Referenced by QGCArchiveFile::open(), and QGCDecompressDevice::open().
|
protectedpure virtual |
Check if ready to read data
Implemented in QGCArchiveFile, and QGCDecompressDevice.
Referenced by readData().
|
inlineoverride |
Definition at line 26 of file QGCArchiveDeviceBase.h.
|
protected |
Open the configured archive for reading
Definition at line 169 of file QGCArchiveDeviceBase.cc.
References _archive, _errorString, _sourceDevice, QGClibarchive::deviceCloseCallback(), QGClibarchive::deviceReadCallback(), QGClibarchive::deviceSeekCallback(), and QGClibarchive::deviceSkipCallback().
Referenced by QGCArchiveFile::initArchive(), and QGCDecompressDevice::initArchive().
|
protectedpure virtual |
Called after archive is initialized, before reading begins Subclasses override to seek to entry, read headers, etc.
Implemented in QGCArchiveFile, and QGCDecompressDevice.
|
overrideprotected |
Definition at line 74 of file QGCArchiveDeviceBase.cc.
References _buffer, _eof, fillBuffer(), and isReadyToRead().
|
protectedvirtual |
Reset all state (called by close())
Reimplemented in QGCArchiveFile, and QGCDecompressDevice.
Definition at line 234 of file QGCArchiveDeviceBase.cc.
References _buffer, _eof, _filterName, and _formatName.
Referenced by close(), QGCArchiveFile::resetState(), and QGCDecompressDevice::resetState().
|
overrideprotected |
Definition at line 104 of file QGCArchiveDeviceBase.cc.
|
protected |
Definition at line 101 of file QGCArchiveDeviceBase.h.
Referenced by captureFormatInfo(), close(), configureArchiveFormats(), fillBuffer(), QGCArchiveFile::initArchive(), QGCDecompressDevice::initArchive(), openArchive(), and QGCDecompressDevice::prepareForReading().
|
protected |
Definition at line 106 of file QGCArchiveDeviceBase.h.
Referenced by bytesAvailable(), fillBuffer(), readData(), and resetState().
|
protected |
Definition at line 103 of file QGCArchiveDeviceBase.h.
Referenced by fillBuffer(), readData(), and resetState().
|
protected |
Definition at line 109 of file QGCArchiveDeviceBase.h.
Referenced by errorString(), fillBuffer(), QGCArchiveFile::initArchive(), QGCDecompressDevice::initArchive(), initSourceFromPath(), QGCArchiveFile::open(), QGCDecompressDevice::open(), openArchive(), and QGCDecompressDevice::prepareForReading().
|
protected |
Definition at line 95 of file QGCArchiveDeviceBase.h.
Referenced by initSourceFromPath(), QGCArchiveFile::open(), and QGCDecompressDevice::open().
|
protected |
Definition at line 113 of file QGCArchiveDeviceBase.h.
Referenced by captureFormatInfo(), filterName(), QGCDecompressDevice::prepareForReading(), and resetState().
|
protected |
Definition at line 112 of file QGCArchiveDeviceBase.h.
Referenced by captureFormatInfo(), formatName(), QGCDecompressDevice::prepareForReading(), and resetState().
|
protected |
Definition at line 98 of file QGCArchiveDeviceBase.h.
Referenced by close(), and initSourceFromPath().
|
protected |
Definition at line 97 of file QGCArchiveDeviceBase.h.
Referenced by close().
|
protected |
Definition at line 102 of file QGCArchiveDeviceBase.h.
Referenced by initSourceFromPath().
|
protected |
Definition at line 96 of file QGCArchiveDeviceBase.h.
Referenced by close(), initSourceFromPath(), and openArchive().