00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef _BZIP_FILE_DEVICE_H_
00017 #define _BZIP_FILE_DEVICE_H_
00018
00019 #include <QIODevice>
00020
00021 #include <bzlib.h>
00022
00023 class BZipFileDevice : public QIODevice
00024 {
00025 Q_OBJECT
00026
00027 public:
00028 BZipFileDevice(QString fileName);
00029 virtual ~BZipFileDevice();
00030
00031 virtual bool open(OpenMode mode);
00032 virtual void close();
00033
00034 virtual bool isOK() const;
00035
00036 virtual bool isSequential() const { return true; }
00037
00038 protected:
00039 virtual qint64 readData(char *data, qint64 maxSize);
00040 virtual qint64 writeData(const char *data, qint64 maxSize);
00041
00042 QString m_fileName;
00043
00044 FILE *m_file;
00045 BZFILE *m_bzFile;
00046 bool m_atEnd;
00047 bool m_ok;
00048 };
00049
00050 #endif