00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef QBZIP2DEVICE_H
00023 #define QBZIP2DEVICE_H
00024
00025 #include "QIODevice.h"
00026
00027 namespace FX {
00028
00070 struct QBZip2DevicePrivate;
00071 class FXAPIR QBZip2Device : public QIODevice
00072 {
00073 QBZip2DevicePrivate *p;
00074 QBZip2Device(const QBZip2Device &);
00075 QBZip2Device &operator=(const QBZip2Device &);
00076 public:
00078 QBZip2Device(QIODevice *gzdata=0, int compression=9, bool enableSeeking=true);
00079 ~QBZip2Device();
00081 QIODevice *BZ2Data() const;
00083 void setBZ2Data(QIODevice *gzdata);
00084
00085 virtual bool open(FXuint mode);
00086 virtual void close();
00087 virtual void flush();
00088 virtual FXfval size() const;
00089 virtual void truncate(FXfval size);
00090 virtual FXfval at() const;
00091 virtual bool at(FXfval newpos);
00092 virtual bool atEnd() const;
00093 virtual FXuval readBlock(char *data, FXuval maxlen);
00094 virtual FXuval writeBlock(const char *data, FXuval maxlen);
00095 virtual FXuval readBlockFrom(char *data, FXuval maxlen, FXfval pos);
00096 virtual FXuval writeBlockTo(FXfval pos, const char *data, FXuval maxlen);
00097 virtual int getch();
00098 virtual int putch(int c);
00099 virtual int ungetch(int c);
00100 };
00101
00102 }
00103
00104 #endif