1 #ifndef _ZIPDEFLATESTREAM_H_ 2 #define _ZIPDEFLATESTREAM_H_ 3 4 #include <zlib.h> 5 #include "Stream.h" 6 7 namespace Framework 8 { 9 class CZipDeflateStream : public Framework::CStream 10 { 11 public: 12 CZipDeflateStream(Framework::CStream&); 13 virtual ~CZipDeflateStream(); 14 15 uint32 GetCrc() const; 16 uint64 GetCompressedLength() const; 17 uint64 GetUncompressedLength() const; 18 19 virtual void Seek(int64, Framework::STREAM_SEEK_DIRECTION); 20 virtual uint64 Tell(); 21 virtual uint64 Read(void*, uint64); 22 virtual uint64 Write(const void*, uint64); 23 virtual bool IsEOF(); 24 virtual void Flush(); 25 26 private: 27 enum BUFFERSIZE 28 { 29 BUFFERSIZE = 0x2000, 30 }; 31 32 Framework::CStream& m_baseStream; 33 uint32 m_crc; 34 uint64 m_compressedLength; 35 uint64 m_uncompressedLength; 36 z_stream m_zStream; 37 }; 38 } 39 40 #endif 41