Imported Upstream version 9.20
[platform/upstream/7zip.git] / CPP / 7zip / Compress / ShrinkDecoder.h
1 // ShrinkDecoder.h\r
2 \r
3 #ifndef __COMPRESS_SHRINK_DECODER_H\r
4 #define __COMPRESS_SHRINK_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 NShrink {\r
12 \r
13 const int kNumMaxBits = 13;\r
14 const UInt32 kNumItems = 1 << kNumMaxBits;\r
15 \r
16 class CDecoder :\r
17   public ICompressCoder,\r
18   public CMyUnknownImp\r
19 {\r
20   UInt16 _parents[kNumItems];\r
21   Byte _suffixes[kNumItems];\r
22   Byte _stack[kNumItems];\r
23   bool _isFree[kNumItems];\r
24   bool _isParent[kNumItems];\r
25 \r
26 public:\r
27   MY_UNKNOWN_IMP\r
28 \r
29   HRESULT CodeReal(ISequentialInStream *inStream, ISequentialOutStream *outStream,\r
30       const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress);\r
31   \r
32   STDMETHOD(Code)(ISequentialInStream *inStream, ISequentialOutStream *outStream,\r
33       const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress);\r
34 };\r
35 \r
36 }}\r
37 \r
38 #endif\r