Imported Upstream version 9.20
[platform/upstream/7zip.git] / CPP / 7zip / Archive / Zip / ZipAddCommon.h
1 // ZipAddCommon.h\r
2 \r
3 #ifndef __ZIP_ADD_COMMON_H\r
4 #define __ZIP_ADD_COMMON_H\r
5 \r
6 #include "../../ICoder.h"\r
7 #include "../../IProgress.h"\r
8 \r
9 #include "../../Common/CreateCoder.h"\r
10 #include "../../Common/FilterCoder.h"\r
11 \r
12 #include "../../Compress/CopyCoder.h"\r
13 \r
14 #include "../../Crypto/ZipCrypto.h"\r
15 #include "../../Crypto/WzAes.h"\r
16 \r
17 #include "ZipCompressionMode.h"\r
18 \r
19 namespace NArchive {\r
20 namespace NZip {\r
21 \r
22 struct CCompressingResult\r
23 {\r
24   UInt64 UnpackSize;\r
25   UInt64 PackSize;\r
26   UInt32 CRC;\r
27   UInt16 Method;\r
28   Byte ExtractVersion;\r
29 };\r
30 \r
31 class CAddCommon\r
32 {\r
33   CCompressionMethodMode _options;\r
34   NCompress::CCopyCoder *_copyCoderSpec;\r
35   CMyComPtr<ICompressCoder> _copyCoder;\r
36 \r
37   CMyComPtr<ICompressCoder> _compressEncoder;\r
38   Byte _compressExtractVersion;\r
39 \r
40   CFilterCoder *_cryptoStreamSpec;\r
41   CMyComPtr<ISequentialOutStream> _cryptoStream;\r
42 \r
43   NCrypto::NZip::CEncoder *_filterSpec;\r
44   NCrypto::NWzAes::CEncoder *_filterAesSpec;\r
45 \r
46 public:\r
47   CAddCommon(const CCompressionMethodMode &options);\r
48   HRESULT Compress(\r
49       DECL_EXTERNAL_CODECS_LOC_VARS\r
50       ISequentialInStream *inStream, IOutStream *outStream,\r
51       ICompressProgressInfo *progress, CCompressingResult &operationResult);\r
52 };\r
53 \r
54 }}\r
55 \r
56 #endif\r