#include <zlib.h>
#include "StarDictReader.h"
+/*!
+ Class implementing StarDictReader interface and handling rading from compressed
+ files like .gz or .dz, using zlib
+ */
class CompressedReader : public StarDictReader
{
Q_OBJECT
public:
CompressedReader(QObject *parent = 0);
+ /*!
+ Creates new compressed reader and open file with passed filename
+ */
CompressedReader(QString filename, QObject *parent = 0);
+ /*!
+ Destructs object and closing file
+ */
~CompressedReader();
+ /*!
+ Reads translations text from compressed dict file.
+ \param offset 32-bit offset of translation in uncompressed file, readed
+ from idx file
+ \param len length of uncompressed translation, readed from idx file too
+ */
QString readString(qint32 offset, qint32 len);
+
+ /*!
+ Reads translations text from compressed dict file.
+ \param offset 64-bit offset of translation in uncompressed file, readed
+ from idx file
+ \param len length of uncompressed translation, readed from idx file too
+ */
QString readString(qint64 offset, qint32 len);
- QChar readChar();
+
+ /*!
+ Reads 32-bits integer value from compressed file and convert it from
+ BigEndian to Little Endian
+ */
qint32 readInt32BigEndian();
+
+ /*!
+ Reads 64-bits integer value from compressed file and convert it from
+ BigEndian to Little Endian
+ */
qint64 readInt64BigEndian();
+
+ /*!
+ Reads single string from compressed file, end of string is marked as '\0'
+ in file.
+ */
QString readKeyword();
- bool open(QString file);
+
+
+ /*!
+ Closing file;
+ */
void close();
+
+protected:
+ /*!
+ Opens file
+ \returns true if file is opened or false otherwise
+ */
+ bool open(QString file);
+
+ /*!
+ Reads single char from compressed.
+ */
+ QChar readChar();
+
private:
gzFile _file;
};