Imported Upstream version 9.20
[platform/upstream/7zip.git] / CPP / 7zip / Archive / Nsis / NsisDecode.h
1 // NsisDecode.h\r
2 \r
3 #ifndef __NSIS_DECODE_H\r
4 #define __NSIS_DECODE_H\r
5 \r
6 #include "../../IStream.h"\r
7 \r
8 #include "../../Common/CreateCoder.h"\r
9 \r
10 namespace NArchive {\r
11 namespace NNsis {\r
12 \r
13 namespace NMethodType\r
14 {\r
15   enum EEnum\r
16   {\r
17     kCopy,\r
18     kDeflate,\r
19     kBZip2,\r
20     kLZMA\r
21   };\r
22 }\r
23 \r
24 class CDecoder\r
25 {\r
26   NMethodType::EEnum _method;\r
27 \r
28   CMyComPtr<ISequentialInStream> _filterInStream;\r
29   CMyComPtr<ISequentialInStream> _codecInStream;\r
30   CMyComPtr<ISequentialInStream> _decoderInStream;\r
31 \r
32 public:\r
33   void Release()\r
34   {\r
35     _filterInStream.Release();\r
36     _codecInStream.Release();\r
37     _decoderInStream.Release();\r
38   }\r
39   HRESULT Init(\r
40       DECL_EXTERNAL_CODECS_LOC_VARS\r
41       IInStream *inStream, NMethodType::EEnum method, bool thereIsFilterFlag, bool &useFilter);\r
42   HRESULT Read(void *data, size_t *processedSize);\r
43 };\r
44 \r
45 }}\r
46 \r
47 #endif\r