Home | History | Annotate | Download | only in Common
      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 
      9 namespace NArchive {
     10 
     11 struct COneMethodInfo
     12 {
     13   CObjectVector<CProp> Props;
     14   UString MethodName;
     15 
     16   bool IsLzma() const;
     17 };
     18 
     19 class COutHandler
     20 {
     21 public:
     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