1 // HandlerOut.h 2 3 #ifndef __HANDLER_OUT_H 4 #define __HANDLER_OUT_H 5 6 #include "../../Common/MethodProps.h" 7 8 namespace NArchive { 9 10 class CMultiMethodProps 11 { 12 UInt32 _level; 13 int _analysisLevel; 14 public: 15 #ifndef _7ZIP_ST 16 UInt32 _numThreads; 17 UInt32 _numProcessors; 18 #endif 19 20 UInt32 _crcSize; 21 CObjectVector<COneMethodInfo> _methods; 22 COneMethodInfo _filterMethod; 23 bool _autoFilter; 24 25 void SetGlobalLevelAndThreads(COneMethodInfo &oneMethodInfo 26 #ifndef _7ZIP_ST 27 , UInt32 numThreads 28 #endif 29 ); 30 GetNumEmptyMethods()31 unsigned GetNumEmptyMethods() const 32 { 33 unsigned i; 34 for (i = 0; i < _methods.Size(); i++) 35 if (!_methods[i].IsEmpty()) 36 break; 37 return i; 38 } 39 GetLevel()40 int GetLevel() const { return _level == (UInt32)(Int32)-1 ? 5 : (int)_level; } GetAnalysisLevel()41 int GetAnalysisLevel() const { return _analysisLevel; } 42 43 void Init(); 44 CMultiMethodProps()45 CMultiMethodProps() { Init(); } 46 HRESULT SetProperty(const wchar_t *name, const PROPVARIANT &value); 47 }; 48 49 class CSingleMethodProps: public COneMethodInfo 50 { 51 UInt32 _level; 52 53 public: 54 #ifndef _7ZIP_ST 55 UInt32 _numThreads; 56 UInt32 _numProcessors; 57 #endif 58 59 void Init(); CSingleMethodProps()60 CSingleMethodProps() { Init(); } GetLevel()61 int GetLevel() const { return _level == (UInt32)(Int32)-1 ? 5 : (int)_level; } 62 HRESULT SetProperties(const wchar_t * const *names, const PROPVARIANT *values, UInt32 numProps); 63 }; 64 65 } 66 67 #endif 68