Imported Upstream version 9.20
[platform/upstream/7zip.git] / CPP / 7zip / Archive / Zip / ZipHandler.h
1 // Zip/Handler.h\r
2 \r
3 #ifndef __ZIP_HANDLER_H\r
4 #define __ZIP_HANDLER_H\r
5 \r
6 #include "Common/DynamicBuffer.h"\r
7 #include "../../ICoder.h"\r
8 #include "../IArchive.h"\r
9 \r
10 #include "../../Common/CreateCoder.h"\r
11 \r
12 #include "ZipIn.h"\r
13 #include "ZipCompressionMode.h"\r
14 \r
15 #ifndef _7ZIP_ST\r
16 #include "../../../Windows/System.h"\r
17 #endif\r
18 \r
19 namespace NArchive {\r
20 namespace NZip {\r
21 \r
22 class CHandler:\r
23   public IInArchive,\r
24   public IOutArchive,\r
25   public ISetProperties,\r
26   PUBLIC_ISetCompressCodecsInfo\r
27   public CMyUnknownImp\r
28 {\r
29 public:\r
30   MY_QUERYINTERFACE_BEGIN2(IInArchive)\r
31   MY_QUERYINTERFACE_ENTRY(IOutArchive)\r
32   MY_QUERYINTERFACE_ENTRY(ISetProperties)\r
33   QUERY_ENTRY_ISetCompressCodecsInfo\r
34   MY_QUERYINTERFACE_END\r
35   MY_ADDREF_RELEASE\r
36 \r
37   INTERFACE_IInArchive(;)\r
38   INTERFACE_IOutArchive(;)\r
39 \r
40   STDMETHOD(SetProperties)(const wchar_t **names, const PROPVARIANT *values, Int32 numProperties);\r
41 \r
42   DECL_ISetCompressCodecsInfo\r
43 \r
44   CHandler();\r
45 private:\r
46   CObjectVector<CItemEx> m_Items;\r
47   CInArchive m_Archive;\r
48 \r
49   int m_Level;\r
50   int m_MainMethod;\r
51   UInt32 m_DicSize;\r
52   UInt32 m_Algo;\r
53   UInt32 m_NumPasses;\r
54   UInt32 m_NumFastBytes;\r
55   UInt32 m_NumMatchFinderCycles;\r
56   UInt32 m_MemSize;\r
57   UInt32 m_Order;\r
58 \r
59   bool m_NumMatchFinderCyclesDefined;\r
60 \r
61   bool m_ForceAesMode;\r
62   bool m_IsAesMode;\r
63   Byte m_AesKeyMode;\r
64 \r
65   bool m_WriteNtfsTimeExtra;\r
66   bool m_ForceLocal;\r
67   bool m_ForceUtf8;\r
68 \r
69   #ifndef _7ZIP_ST\r
70   UInt32 _numThreads;\r
71   #endif\r
72 \r
73   DECL_EXTERNAL_CODECS_VARS\r
74 \r
75   void InitMethodProperties()\r
76   {\r
77     m_Level = -1;\r
78     m_MainMethod = -1;\r
79     m_Algo =\r
80     m_DicSize =\r
81     m_NumPasses =\r
82     m_NumFastBytes =\r
83     m_Order =\r
84     m_MemSize =\r
85     m_NumMatchFinderCycles = 0xFFFFFFFF;\r
86     m_NumMatchFinderCyclesDefined = false;\r
87     m_ForceAesMode = false;\r
88     m_IsAesMode = false;\r
89     m_AesKeyMode = 3; // aes-256\r
90     m_WriteNtfsTimeExtra = true;\r
91     m_ForceLocal = false;\r
92     m_ForceUtf8 = false;\r
93     #ifndef _7ZIP_ST\r
94     _numThreads = NWindows::NSystem::GetNumberOfProcessors();;\r
95     #endif\r
96   }\r
97 };\r
98 \r
99 }}\r
100 \r
101 #endif\r