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