view src/win32/7zip/7z/CPP/7zip/Archive/Zip/ZipHandler.h @ 1:f9f4f1b99eed

importing src directory
author Robert McIntyre <rlm@mit.edu>
date Sat, 03 Mar 2012 10:31:27 -0600
parents
children
line wrap: on
line source
1 // Zip/Handler.h
3 #ifndef __ZIP_HANDLER_H
4 #define __ZIP_HANDLER_H
6 #include "../../../Common/DynamicBuffer.h"
7 #include "../../ICoder.h"
8 #include "../IArchive.h"
10 #include "../../Common/CreateCoder.h"
12 #include "ZipIn.h"
13 #include "ZipCompressionMode.h"
15 #ifdef COMPRESS_MT
16 #include "../../../Windows/System.h"
17 #endif
19 namespace NArchive {
20 namespace NZip {
22 class CHandler:
23 public IInArchive,
24 #ifndef EXTRACT_ONLY
25 public IOutArchive,
26 public ISetProperties,
27 PUBLIC_ISetCompressCodecsInfo
28 #endif
29 public CMyUnknownImp
30 {
31 public:
32 MY_QUERYINTERFACE_BEGIN2(IInArchive)
33 #ifndef EXTRACT_ONLY
34 MY_QUERYINTERFACE_ENTRY(IOutArchive)
35 MY_QUERYINTERFACE_ENTRY(ISetProperties)
36 QUERY_ENTRY_ISetCompressCodecsInfo
37 #endif
38 MY_QUERYINTERFACE_END
39 MY_ADDREF_RELEASE
41 INTERFACE_IInArchive(;)
42 #ifndef EXTRACT_ONLY
43 INTERFACE_IOutArchive(;)
45 STDMETHOD(SetProperties)(const wchar_t **names, const PROPVARIANT *values, Int32 numProperties);
47 DECL_ISetCompressCodecsInfo
48 #endif
50 CHandler();
51 private:
52 CObjectVector<CItemEx> m_Items;
53 CInArchive m_Archive;
55 int m_Level;
56 int m_MainMethod;
57 UInt32 m_DicSize;
58 UInt32 m_Algo;
59 UInt32 m_NumPasses;
60 UInt32 m_NumFastBytes;
61 UInt32 m_NumMatchFinderCycles;
62 bool m_NumMatchFinderCyclesDefined;
64 bool m_IsAesMode;
65 Byte m_AesKeyMode;
67 bool m_WriteNtfsTimeExtra;
68 bool m_ForseLocal;
69 bool m_ForseUtf8;
71 #ifdef COMPRESS_MT
72 UInt32 _numThreads;
73 #endif
75 DECL_EXTERNAL_CODECS_VARS
77 void InitMethodProperties()
78 {
79 m_Level = -1;
80 m_MainMethod = -1;
81 m_Algo =
82 m_DicSize =
83 m_NumPasses =
84 m_NumFastBytes =
85 m_NumMatchFinderCycles = 0xFFFFFFFF;
86 m_NumMatchFinderCyclesDefined = false;
87 m_IsAesMode = false;
88 m_AesKeyMode = 3; // aes-256
89 m_WriteNtfsTimeExtra = false;
90 m_ForseLocal = false;
91 m_ForseUtf8 = false;
92 #ifdef COMPRESS_MT
93 _numThreads = NWindows::NSystem::GetNumberOfProcessors();;
94 #endif
95 }
96 };
98 }}
100 #endif