20#include <qstringlist.h>
24typedef struct ZSTD_CCtx_s ZSTD_CCtx;
42 bool output(QIODevice &outDevice, QIODevice &tempDevice, QIODevice &errorDevice);
44 bool readFiles(
bool listMode, QIODevice &errorDevice);
60 bool verbose()
const {
return m_verbose; }
63 QString
initName()
const {
return m_initName; }
98 bool noZstd()
const {
return m_noZstd; }
103 const QString TAG_RCC;
104 const QString TAG_RESOURCE;
105 const QString TAG_FILE;
106 const QString ATTRIBUTE_LANG;
107 const QString ATTRIBUTE_PREFIX;
108 const QString ATTRIBUTE_ALIAS;
109 const QString ATTRIBUTE_EMPTY;
110 const QString ATTRIBUTE_THRESHOLD;
111 const QString ATTRIBUTE_COMPRESS;
112 const QString ATTRIBUTE_COMPRESSALGO;
116 bool addFile(
const QString &alias,
RCCFileInfo file);
117 bool interpretResourceFile(QIODevice *inputDevice,
const QString &file,
118 QString currentPath = QString(),
bool listMode =
false);
120 bool writeDataBlobs();
121 bool writeDataNames();
122 bool writeDataStructure();
123 bool writeInitializer();
124 void writeMangleNamespaceFunction(
const QByteArray &name);
125 void writeAddNamespaceFunction(
const QByteArray &name);
126 void writeDecimal(
int value);
127 void writeHex(quint8 number);
128 void write2HexDigits(quint8 number);
129 void writeNumber2(quint16 number);
130 void writeNumber4(quint32 number);
131 void writeNumber8(quint64 number);
132 void writeChar(
char c) { m_out.append(c); }
133 void writeByteArray(
const QByteArray &);
134 void write(
const char *,
int len);
135 void writeString(
const char *s) { write(s,
static_cast<
int>(strlen(s))); }
141 const Strings m_strings;
143 QStringList m_fileNames;
144 QString m_resourceRoot;
146 QString m_outputName;
151 int m_compressThreshold;
155 quint32 m_overallFlags;
157 QStringList m_failedResources;
158 QIODevice *m_errorDevice;
159 QIODevice *m_outDevice;
161 quint8 m_formatVersion;
RCCFileInfo(const QString &name, const QFileInfo &fileInfo, QLocale::Language language, QLocale::Territory territory, uint flags, RCCResourceLibrary::CompressionAlgorithm compressAlgo, int compressLevel, int compressThreshold, bool noZstd, bool isEmpty)
RCCFileInfo & operator=(RCCFileInfo &&other)=delete
RCCFileInfo & operator=(const RCCFileInfo &)=delete
RCCResourceLibrary::CompressionAlgorithm m_compressAlgo
qint64 writeDataName(RCCResourceLibrary &, qint64 offset)
RCCFileInfo(RCCFileInfo &&)=default
QLocale::Language m_language
qint64 writeDataBlob(RCCResourceLibrary &lib, qint64 offset, QString *errorMessage)
QString resourceName() const
void writeDataInfo(RCCResourceLibrary &lib)
RCCFileInfo(const RCCFileInfo &)=delete
QLocale::Territory m_territory
QMultiHash< QString, RCCFileInfo * > m_children
RCCResourceLibrary(quint8 formatVersion)
ResourceDataFileMap resourceDataFileMap() const
bool readFiles(bool listMode, QIODevice &errorDevice)
QStringList failedResources() const
QStringList dataFiles() const
int formatVersion() const
QStringList inputFiles() const
void setResourceRoot(const QString &root)
static int parseCompressionLevel(CompressionAlgorithm algo, const QString &level, QString *errorMsg)
bool useNameSpace() const
int compressLevel() const
bool output(QIODevice &outDevice, QIODevice &tempDevice, QIODevice &errorDevice)
void setInitName(const QString &name)
void setCompressionAlgorithm(CompressionAlgorithm algo)
int compressThreshold() const
void setCompressThreshold(int t)
CompressionAlgorithm compressionAlgorithm() const
void setCompressLevel(int c)
QString resourceRoot() const
void setOutputName(const QString &name)
QHash< QString, QString > ResourceDataFileMap
QString outputName() const
void setUseNameSpace(bool v)
void setInputFiles(const QStringList &files)
static CompressionAlgorithm parseCompressionAlgorithm(QStringView algo, QString *errorMsg)
#define qPrintable(string)
#define QStringLiteral(str)
result_type operator()(const RCCFileInfo *left, const RCCFileInfo *right) const