Source code
Revision control
Copy as Markdown
Other Tools
// HandlerOut.h↩
↩
#ifndef __HANDLER_OUT_H↩
#define __HANDLER_OUT_H↩
↩
#include "../../../Windows/System.h"↩
↩
#include "../../Common/MethodProps.h"↩
↩
namespace NArchive {↩
↩
bool ParseSizeString(const wchar_t *name, const PROPVARIANT &prop, UInt64 percentsBase, UInt64 &res);↩
↩
class CCommonMethodProps↩
{↩
protected:↩
void InitCommon()↩
{↩
#ifndef _7ZIP_ST↩
_numProcessors = _numThreads = NWindows::NSystem::GetNumberOfProcessors();↩
#endif↩
↩
UInt64 memAvail = (UInt64)(sizeof(size_t)) << 28;↩
_memAvail = memAvail;↩
_memUsage = memAvail;↩
if (NWindows::NSystem::GetRamSize(memAvail))↩
{↩
_memAvail = memAvail;↩
_memUsage = memAvail / 32 * 17;↩
}↩
}↩
↩
public:↩
#ifndef _7ZIP_ST↩
UInt32 _numThreads;↩
UInt32 _numProcessors;↩
#endif↩
↩
UInt64 _memUsage;↩
UInt64 _memAvail;↩
↩
bool SetCommonProperty(const UString &name, const PROPVARIANT &value, HRESULT &hres);↩
↩
CCommonMethodProps() { InitCommon(); }↩
};↩
↩
↩
#ifndef EXTRACT_ONLY↩
↩
class CMultiMethodProps: public CCommonMethodProps↩
{↩
UInt32 _level;↩
int _analysisLevel;↩
↩
void InitMulti();↩
public:↩
UInt32 _crcSize;↩
CObjectVector<COneMethodInfo> _methods;↩
COneMethodInfo _filterMethod;↩
bool _autoFilter;↩
↩
↩
void SetGlobalLevelTo(COneMethodInfo &oneMethodInfo) const;↩
↩
#ifndef _7ZIP_ST↩
static void SetMethodThreadsTo(COneMethodInfo &oneMethodInfo, UInt32 numThreads);↩
#endif↩
↩
↩
unsigned GetNumEmptyMethods() const↩
{↩
unsigned i;↩
for (i = 0; i < _methods.Size(); i++)↩
if (!_methods[i].IsEmpty())↩
break;↩
return i;↩
}↩
↩
int GetLevel() const { return _level == (UInt32)(Int32)-1 ? 5 : (int)_level; }↩
int GetAnalysisLevel() const { return _analysisLevel; }↩
↩
void Init();↩
CMultiMethodProps() { InitMulti(); }↩
↩
HRESULT SetProperty(const wchar_t *name, const PROPVARIANT &value);↩
};↩
↩
↩
class CSingleMethodProps: public COneMethodInfo, public CCommonMethodProps↩
{↩
UInt32 _level;↩
↩
void InitSingle()↩
{↩
_level = (UInt32)(Int32)-1;↩
}↩
↩
public:↩
void Init();↩
CSingleMethodProps() { InitSingle(); }↩
↩
int GetLevel() const { return _level == (UInt32)(Int32)-1 ? 5 : (int)_level; }↩
HRESULT SetProperties(const wchar_t * const *names, const PROPVARIANT *values, UInt32 numProps);↩
};↩
↩
#endif↩
↩
}↩
↩
#endif↩