comparison src/win32/7zip/7z/CPP/7zip/Archive/7z/7zHandler.h @ 1:f9f4f1b99eed

importing src directory
author Robert McIntyre <rlm@mit.edu>
date Sat, 03 Mar 2012 10:31:27 -0600
parents
children
comparison
equal deleted inserted replaced
0:8ced16adf2e1 1:f9f4f1b99eed
1 // 7z/Handler.h
2
3 #ifndef __7Z_HANDLER_H
4 #define __7Z_HANDLER_H
5
6 #include "../../ICoder.h"
7 #include "../IArchive.h"
8 #include "7zIn.h"
9
10 #include "7zCompressionMode.h"
11
12 #include "../../Common/CreateCoder.h"
13
14 #ifndef EXTRACT_ONLY
15 #include "../Common/HandlerOut.h"
16 #endif
17
18 namespace NArchive {
19 namespace N7z {
20
21 #ifndef __7Z_SET_PROPERTIES
22
23 #ifdef EXTRACT_ONLY
24 #ifdef COMPRESS_MT
25 #define __7Z_SET_PROPERTIES
26 #endif
27 #else
28 #define __7Z_SET_PROPERTIES
29 #endif
30
31 #endif
32
33
34 class CHandler:
35 #ifndef EXTRACT_ONLY
36 public NArchive::COutHandler,
37 #endif
38 public IInArchive,
39 #ifdef __7Z_SET_PROPERTIES
40 public ISetProperties,
41 #endif
42 #ifndef EXTRACT_ONLY
43 public IOutArchive,
44 #endif
45 PUBLIC_ISetCompressCodecsInfo
46 public CMyUnknownImp
47 {
48 public:
49 MY_QUERYINTERFACE_BEGIN2(IInArchive)
50 #ifdef __7Z_SET_PROPERTIES
51 MY_QUERYINTERFACE_ENTRY(ISetProperties)
52 #endif
53 #ifndef EXTRACT_ONLY
54 MY_QUERYINTERFACE_ENTRY(IOutArchive)
55 #endif
56 QUERY_ENTRY_ISetCompressCodecsInfo
57 MY_QUERYINTERFACE_END
58 MY_ADDREF_RELEASE
59
60 INTERFACE_IInArchive(;)
61
62 #ifdef __7Z_SET_PROPERTIES
63 STDMETHOD(SetProperties)(const wchar_t **names, const PROPVARIANT *values, Int32 numProperties);
64 #endif
65
66 #ifndef EXTRACT_ONLY
67 INTERFACE_IOutArchive(;)
68 #endif
69
70 DECL_ISetCompressCodecsInfo
71
72 CHandler();
73
74 private:
75 CMyComPtr<IInStream> _inStream;
76 NArchive::N7z::CArchiveDatabaseEx _db;
77 #ifndef _NO_CRYPTO
78 bool _passwordIsDefined;
79 #endif
80
81 #ifdef EXTRACT_ONLY
82
83 #ifdef COMPRESS_MT
84 UInt32 _numThreads;
85 #endif
86
87 UInt32 _crcSize;
88
89 #else
90
91 CRecordVector<CBind> _binds;
92
93 HRESULT SetPassword(CCompressionMethodMode &methodMode, IArchiveUpdateCallback *updateCallback);
94
95 HRESULT SetCompressionMethod(CCompressionMethodMode &method,
96 CObjectVector<COneMethodInfo> &methodsInfo
97 #ifdef COMPRESS_MT
98 , UInt32 numThreads
99 #endif
100 );
101
102 HRESULT SetCompressionMethod(
103 CCompressionMethodMode &method,
104 CCompressionMethodMode &headerMethod);
105
106 #endif
107
108 bool IsEncrypted(UInt32 index2) const;
109 #ifndef _SFX
110
111 CRecordVector<UInt64> _fileInfoPopIDs;
112 void FillPopIDs();
113
114 #endif
115
116 DECL_EXTERNAL_CODECS_VARS
117 };
118
119 }}
120
121 #endif