Imported Upstream version 9.20
[platform/upstream/7zip.git] / CPP / 7zip / Compress / ZDecoder.h
1 // ZDecoder.h\r
2 \r
3 #ifndef __COMPRESS_Z_DECODER_H\r
4 #define __COMPRESS_Z_DECODER_H\r
5 \r
6 #include "../../Common/MyCom.h"\r
7 \r
8 #include "../ICoder.h"\r
9 \r
10 namespace NCompress {\r
11 namespace NZ {\r
12 \r
13 class CDecoder:\r
14   public ICompressCoder,\r
15   public ICompressSetDecoderProperties2,\r
16   public CMyUnknownImp\r
17 {\r
18   UInt16 *_parents;\r
19   Byte *_suffixes;\r
20   Byte *_stack;\r
21   Byte _properties;\r
22   int _numMaxBits;\r
23 \r
24 public:\r
25   CDecoder(): _parents(0), _suffixes(0), _stack(0), _properties(0), _numMaxBits(0) {};\r
26   ~CDecoder();\r
27   void Free();\r
28 \r
29   MY_UNKNOWN_IMP1(ICompressSetDecoderProperties2)\r
30 \r
31   HRESULT CodeReal(ISequentialInStream *inStream, ISequentialOutStream *outStream,\r
32       const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress);\r
33 \r
34   STDMETHOD(Code)(ISequentialInStream *inStream, ISequentialOutStream *outStream,\r
35       const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress);\r
36 \r
37   STDMETHOD(SetDecoderProperties2)(const Byte *data, UInt32 size);\r
38 };\r
39 \r
40 }}\r
41 \r
42 #endif\r