Upload 2.0.2
[physicsfs] / lzma / CPP / 7zip / Archive / Common / HandlerOut.h
1 // HandlerOut.h
2
3 #ifndef __HANDLER_OUT_H
4 #define __HANDLER_OUT_H
5
6 #include "../../Common/MethodProps.h"
7 #include "../../Common/CreateCoder.h"
8
9 namespace NArchive {
10
11 struct COneMethodInfo
12 {
13   CObjectVector<CProp> Properties;
14   UString MethodName;
15 };
16
17 class COutHandler
18 {
19 public:
20   HRESULT SetProperty(const wchar_t *name, const PROPVARIANT &value);
21   
22   HRESULT SetSolidSettings(const UString &s);
23   HRESULT SetSolidSettings(const PROPVARIANT &value);
24
25   #ifdef COMPRESS_MT
26   UInt32 _numThreads;
27   #endif
28
29   UInt32 _crcSize;
30
31   CObjectVector<COneMethodInfo> _methods;
32   bool _removeSfxBlock;
33   
34   UInt64 _numSolidFiles; 
35   UInt64 _numSolidBytes;
36   bool _numSolidBytesDefined;
37   bool _solidExtension;
38
39   bool _compressHeaders;
40   bool _encryptHeaders;
41
42   bool WriteModified;
43   bool WriteCreated;
44   bool WriteAccessed;
45
46   bool _autoFilter;
47   UInt32 _level;
48
49   bool _volumeMode;
50
51   HRESULT SetParam(COneMethodInfo &oneMethodInfo, const UString &name, const UString &value);
52   HRESULT SetParams(COneMethodInfo &oneMethodInfo, const UString &srcString);
53
54   void SetCompressionMethod2(COneMethodInfo &oneMethodInfo
55       #ifdef COMPRESS_MT
56       , UInt32 numThreads
57       #endif
58       );
59
60   void InitSolidFiles() { _numSolidFiles = (UInt64)(Int64)(-1); }
61   void InitSolidSize()  { _numSolidBytes = (UInt64)(Int64)(-1); }
62   void InitSolid()
63   {
64     InitSolidFiles();
65     InitSolidSize();
66     _solidExtension = false;
67     _numSolidBytesDefined = false;
68   }
69
70   void Init();
71
72   COutHandler() { Init(); }
73
74   void BeforeSetProperty();
75
76   UInt32 minNumber;
77   UInt32 numProcessors;
78   UInt32 mainDicSize;
79   UInt32 mainDicMethodIndex;
80
81   DECL_EXTERNAL_CODECS_VARS
82 };
83
84 }
85
86 #endif