QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
QGCCompression.cc File Reference
#include "QGCCompression.h"
#include <QtCore/QCollator>
#include <QtCore/QDir>
#include <QtCore/QFile>
#include <QtCore/QFileInfo>
#include <QtCore/QLocale>
#include <QtCore/QMimeDatabase>
#include <QtCore/QMimeType>
#include <QtCore/QtEndian>
#include <algorithm>
#include <cstring>
#include "QGCDecompressDevice.h"
#include "QGCFileHelper.h"
#include "QGCLoggingCategory.h"
#include "QGClibarchive.h"
+ Include dependency graph for QGCCompression.cc:

Go to the source code of this file.

Namespaces

namespace  QGCCompression
 

Functions

Error QGCCompression::lastError ()
 Get the error code from the last operation (thread-local)
 
QString QGCCompression::lastErrorString ()
 Get a human-readable error message from the last operation (thread-local)
 
QString QGCCompression::errorName (Error error)
 Get a human-readable name for an error code.
 
QString QGCCompression::detectedFormatName ()
 
QString QGCCompression::detectedFilterName ()
 
static bool QGCCompression::validateFileInput (const QString &filePath, Format &format)
 
static bool QGCCompression::validateArchiveInput (const QString &archivePath, Format &format)
 Validate archive input: file exists, format detected, and is archive format.
 
static bool QGCCompression::validateDeviceInput (QIODevice *device)
 Validate device input for streaming operations.
 
static void QGCCompression::captureFormatInfo ()
 Capture format detection info from QGClibarchive after an operation.
 
static Format QGCCompression::detectFormatFromExtension (const QString &filePath)
 Extension-based format detection (internal helper)
 
Format QGCCompression::detectFormat (const QString &filePath, bool useContentFallback)
 
Format QGCCompression::detectFormatFromFile (const QString &filePath)
 
Format QGCCompression::detectFormatFromData (const QByteArray &data)
 
QString QGCCompression::formatExtension (Format format)
 Get file extension for a format.
 
QString QGCCompression::formatName (Format format)
 Get human-readable name for a format.
 
bool QGCCompression::isArchiveFormat (Format format)
 Check if format is an archive (contains multiple files)
 
bool QGCCompression::isCompressionFormat (Format format)
 Check if format is a compression format (single stream)
 
QString QGCCompression::strippedPath (const QString &filePath)
 
bool QGCCompression::decompressFile (const QString &inputPath, const QString &outputPath, Format format, ProgressCallback progress, qint64 maxDecompressedBytes)
 
QString QGCCompression::decompressIfNeeded (const QString &filePath, const QString &outputPath, bool removeOriginal)
 
QByteArray QGCCompression::decompressData (const QByteArray &data, Format format, qint64 maxDecompressedBytes)
 
bool QGCCompression::extractArchive (const QString &archivePath, const QString &outputDirectoryPath, Format format, ProgressCallback progress, qint64 maxDecompressedBytes)
 
bool QGCCompression::extractArchiveAtomic (const QString &archivePath, const QString &outputDirectoryPath, Format format, ProgressCallback progress, qint64 maxDecompressedBytes)
 
bool QGCCompression::extractArchiveFiltered (const QString &archivePath, const QString &outputDirectoryPath, EntryFilter filter, ProgressCallback progress, qint64 maxDecompressedBytes)
 
QStringList QGCCompression::listArchive (const QString &archivePath, Format format)
 
QList< ArchiveEntryQGCCompression::listArchiveDetailed (const QString &archivePath, Format format)
 
ArchiveStats QGCCompression::getArchiveStats (const QString &archivePath, Format format)
 
bool QGCCompression::validateArchive (const QString &archivePath, Format format)
 
bool QGCCompression::fileExists (const QString &archivePath, const QString &fileName, Format format)
 
bool QGCCompression::extractFile (const QString &archivePath, const QString &fileName, const QString &outputPath, Format format)
 
QByteArray QGCCompression::extractFileData (const QString &archivePath, const QString &fileName, Format format)
 
bool QGCCompression::extractFiles (const QString &archivePath, const QStringList &fileNames, const QString &outputDirectoryPath, Format format)
 
bool QGCCompression::extractByPattern (const QString &archivePath, const QStringList &patterns, const QString &outputDirectoryPath, QStringList *extractedFiles, Format format)
 
bool QGCCompression::decompressFromDevice (QIODevice *device, const QString &outputPath, ProgressCallback progress, qint64 maxDecompressedBytes)
 
QByteArray QGCCompression::decompressFromDevice (QIODevice *device, qint64 maxDecompressedBytes)
 
bool QGCCompression::extractFromDevice (QIODevice *device, const QString &outputDirectoryPath, ProgressCallback progress, qint64 maxDecompressedBytes)
 
QByteArray QGCCompression::extractFileDataFromDevice (QIODevice *device, const QString &fileName)
 
QByteArray QGCCompression::compress (const QByteArray &data, CompressionLevel level)
 
QByteArray QGCCompression::uncompress (const QByteArray &data)
 
QByteArray QGCCompression::compressData (const QByteArray &data, CompressionLevel level, int minSize)
 
QByteArray QGCCompression::uncompressData (const QByteArray &data, qint64 maxDecompressedSize)
 
bool QGCCompression::isDataCompressed (const QByteArray &data)
 Check if data has the compressed framing header.
 
int QGCCompression::lastCompressionRatio ()
 Compression ratio from the last compressData() call (thread-local, percentage of original size).
 
QByteArray QGCCompression::readFile (const QString &filePath, QString *errorString=nullptr, qint64 maxBytes=0)
 Read file contents, transparently decompressing .gz/.xz/.zst/.bz2/.lz4 files.
 
QString QGCCompression::computeFileHash (const QString &filePath, QCryptographicHash::Algorithm algorithm=QCryptographicHash::Sha256)
 Hash file contents post-decompression.
 
bool QGCCompression::looksLikeCompressedData (const QByteArray &data)
 
QJsonDocument QGCCompression::parseCompressedJson (const QByteArray &data, QJsonParseError *error=nullptr)
 Parse JSON from data that may be compressed. Auto-detects gzip/xz/zstd/bzip2/lz4.
 

Variables

static constexpr quint8 QGCCompression::kHeaderUncompressed = 0x00
 
static constexpr quint8 QGCCompression::kHeaderCompressed = 0x01
 
static thread_local int QGCCompression::s_lastCompressionRatio = 100
 

Variable Documentation

◆ error

Error error = Error::None

Definition at line 114 of file QGCCompression.cc.

Referenced by PlanManager::_missionResultToString(), PlanManager::_sendError(), RallyPointManager::_sendError(), TerrainOnlineQuery::_sslErrors(), TerrainTileManager::addCarpetQuery(), TerrainTileManager::addCoordinateQuery(), TerrainTileManager::addPathQuery(), ADSBTCPLink::ADSBTCPLink(), QGeoServiceProviderFactoryQGC::createGeocodingManagerEngine(), QGeoServiceProviderFactoryQGC::createMappingManagerEngine(), QGeoServiceProviderFactoryQGC::createPlaceManagerEngine(), QGeoServiceProviderFactoryQGC::createRoutingManagerEngine(), FTPController::deleteFile(), FTPController::downloadFile(), QGCCompression::errorName(), TerrainAtCoordinateQuery::getAltitudesForCoordinates(), TerrainTileManager::getAltitudesForCoordinates(), QGCNetworkHelper::ignoreSslErrors(), QGeoTiledMapReplyQGC::init(), LogRemoteSink::loadTlsCaCertificates(), LogRemoteSink::loadTlsClientCertificate(), NTRIPHttpTransport::NTRIPHttpTransport(), QGCCompression::parseCompressedJson(), QGCNetworkHelper::parseJson(), QGCNetworkHelper::parseJsonReply(), QGCSensors::QGCAmbientTemperature::QGCAmbientTemperature(), QGCSensors::QGCCompass::QGCCompass(), QGCSensors::QGCPressure::QGCPressure(), QGeoTiledMappingManagerEngineQGC::QGeoTiledMappingManagerEngineQGC(), QtMultimediaReceiver::QtMultimediaReceiver(), ParameterManager::readParametersFromStream(), QSerialPortPrivate::setError(), QGCMapTask::setError(), QGCMapEngineManager::setErrorMessage(), QGCMapEngineManager::taskError(), and FTPController::uploadFile().

◆ errorString

QString errorString

Definition at line 115 of file QGCCompression.cc.

Referenced by TransectStyleComplexItem::_load(), LandingComplexItem::_load(), GeoJsonHelper::_loadFile(), KMLHelper::_loadFile(), SHPFileHelper::_loadShape(), KMLHelper::_parseCoordinateString(), SHPFileHelper::_validateSHPFiles(), FactMetaData::convertAndValidateCooked(), FactMetaData::convertAndValidateRaw(), FactMetaData::createFromJsonObject(), QGeoServiceProviderFactoryQGC::createGeocodingManagerEngine(), FactMetaData::createMapFromJsonFile(), QGeoServiceProviderFactoryQGC::createMappingManagerEngine(), QGeoServiceProviderFactoryQGC::createPlaceManagerEngine(), QGeoServiceProviderFactoryQGC::createRoutingManagerEngine(), KMLHelper::determineShapeType(), ShapeFileHelper::determineShapeType(), SHPFileHelper::determineShapeType(), GeoJsonHelper::determineShapeType(), Fact::forceSetRawValue(), ShapeFileHelper::getEntityCount(), KMLHelper::getEntityCount(), SHPFileHelper::getEntityCount(), TerrainTileCopernicus::getJsonFromData(), QGeoTiledMapReplyQGC::init(), AudioOutput::init(), JsonParsing::isJsonFile(), JsonParsing::isJsonFile(), QGCStateMachine::lastError(), CorridorScanComplexItem::load(), FixedWingLandingComplexItem::load(), StructureScanComplexItem::load(), SurveyComplexItem::load(), VTOLLandingComplexItem::load(), CameraCalc::load(), MissionItem::load(), SimpleMissionItem::load(), TakeoffMissionItem::load(), CameraSpec::load(), GeoFenceController::load(), MissionController::load(), RallyPointController::load(), PlanMasterController::loadFromFile(), QGCFencePolygon::loadFromJson(), QGCMapPolygon::loadFromJson(), QGCMapPolyline::loadFromJson(), QGCFenceCircle::loadFromJson(), QGCMapCircle::loadFromJson(), GeoJsonHelper::loadGeoCoordinate(), GeoJsonHelper::loadGeoCoordinateArray(), GeoJsonHelper::loadGeoCoordinateArray(), GeoJsonHelper::loadGeoJsonCoordinate(), MissionCommandUIInfo::loadJsonInfo(), QGCMapPolygon::loadKMLOrSHPFile(), QGCMapPolyline::loadKMLOrSHPFile(), ParameterMetaData::loadParameterFactMetaDataFile(), ShapeFileHelper::loadPointsFromFile(), KMLHelper::loadPointsFromFile(), SHPFileHelper::loadPointsFromFile(), GeoJsonHelper::loadPolygonFromFile(), ShapeFileHelper::loadPolygonsFromFile(), KMLHelper::loadPolygonsFromFile(), SHPFileHelper::loadPolygonsFromFile(), GeoJsonHelper::loadPolylineFromFile(), ShapeFileHelper::loadPolylinesFromFile(), KMLHelper::loadPolylinesFromFile(), SHPFileHelper::loadPolylinesFromFile(), CorridorScanComplexItem::loadPreset(), SurveyComplexItem::loadPreset(), MissionController::loadTextFile(), JsonParsing::openInternalQGCJsonFile(), CameraMetaData::parseCameraMetaData(), PowerModulePresetController::powerModulePresets(), QGeoTiledMappingManagerEngineQGC::QGeoTiledMappingManagerEngineQGC(), QtMultimediaReceiver::QtMultimediaReceiver(), QGCCompression::readFile(), QGCFileHelper::readFile(), TerrainTileCopernicus::serializeFromData(), ParameterMetaData::setBitmaskFromPairs(), ParameterMetaData::setEnumFromPairs(), QGCMapTask::setError(), CompInfoGeneral::setJson(), CompInfoParam::setJson(), ParameterMetaData::setRawConvertedValue(), Fact::setRawValue(), SettingsFact::SettingsFact(), ComponentInformationTranslation::translateJsonUsingTS(), Fact::validate(), JsonParsing::validateExternalQGCJsonFile(), JsonParsing::validateInternalQGCJsonFile(), JsonParsing::validateKeys(), JsonParsing::validateKeysStrict(), JsonParsing::validateKeyTypes(), JsonParsing::validateRequiredKeys(), ParameterMetaData::versionFromJsonData(), and ParameterMetaData::versionFromMetaDataFile().

◆ filterName

QString filterName

Definition at line 117 of file QGCCompression.cc.

◆ formatName