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