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