/* */ #ifndef D_GZIP_FILE_H #define D_GZIP_FILE_H #include #include "BufferedFile.h" namespace aria2 { class GZipFile: public BufferedFile { public: GZipFile(const char* filename, const char* mode); virtual ~GZipFile(); virtual int close(); virtual size_t read(void* ptr, size_t count); virtual size_t write(const void* ptr, size_t count); virtual char* gets(char* s, int size); virtual int vprintf(const char* format, va_list va); virtual int flush(); private: // Don't allow copying GZipFile(const GZipFile&); GZipFile& operator=(const GZipFile&); gzFile fp_; bool open_; size_t buflen_; char* buf_; protected: virtual bool isError() const; virtual bool isEOF() const { return gzeof(fp_); } virtual bool isOpen() const { return open_; } }; } // namespace aria2 #endif // D_GZIP_FILE_H