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