Source code
Revision control
Copy as Markdown
Other Tools
// Lzma2Decoder.h↩
↩
#ifndef __LZMA2_DECODER_H↩
#define __LZMA2_DECODER_H↩
↩
#include "../../../C/Lzma2DecMt.h"↩
↩
#include "../Common/CWrappers.h"↩
↩
namespace NCompress {↩
namespace NLzma2 {↩
↩
class CDecoder:↩
public ICompressCoder,↩
public ICompressSetDecoderProperties2,↩
public ICompressSetFinishMode,↩
public ICompressGetInStreamProcessedSize,↩
public ICompressSetBufSize,↩
↩
#ifndef NO_READ_FROM_CODER↩
public ICompressSetInStream,↩
public ICompressSetOutStreamSize,↩
public ISequentialInStream,↩
#endif↩
↩
#ifndef _7ZIP_ST↩
public ICompressSetCoderMt,↩
public ICompressSetMemLimit,↩
#endif↩
↩
public CMyUnknownImp↩
{↩
CLzma2DecMtHandle _dec;↩
UInt64 _inProcessed;↩
Byte _prop;↩
int _finishMode;↩
UInt32 _inBufSize;↩
UInt32 _outStep;↩
↩
public:↩
MY_QUERYINTERFACE_BEGIN2(ICompressCoder)↩
MY_QUERYINTERFACE_ENTRY(ICompressSetDecoderProperties2)↩
MY_QUERYINTERFACE_ENTRY(ICompressSetFinishMode)↩
MY_QUERYINTERFACE_ENTRY(ICompressGetInStreamProcessedSize)↩
MY_QUERYINTERFACE_ENTRY(ICompressSetBufSize)↩
↩
#ifndef NO_READ_FROM_CODER↩
MY_QUERYINTERFACE_ENTRY(ICompressSetInStream)↩
MY_QUERYINTERFACE_ENTRY(ICompressSetOutStreamSize)↩
MY_QUERYINTERFACE_ENTRY(ISequentialInStream)↩
#endif↩
↩
#ifndef _7ZIP_ST↩
MY_QUERYINTERFACE_ENTRY(ICompressSetCoderMt)↩
MY_QUERYINTERFACE_ENTRY(ICompressSetMemLimit)↩
#endif↩
↩
MY_QUERYINTERFACE_END↩
MY_ADDREF_RELEASE↩
↩
STDMETHOD(Code)(ISequentialInStream *inStream, ISequentialOutStream *outStream,↩
const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress);↩
STDMETHOD(SetDecoderProperties2)(const Byte *data, UInt32 size);↩
STDMETHOD(SetFinishMode)(UInt32 finishMode);↩
STDMETHOD(GetInStreamProcessedSize)(UInt64 *value);↩
STDMETHOD(SetInBufSize)(UInt32 streamIndex, UInt32 size);↩
STDMETHOD(SetOutBufSize)(UInt32 streamIndex, UInt32 size);↩
↩
#ifndef _7ZIP_ST↩
private:↩
int _tryMt;↩
UInt32 _numThreads;↩
UInt64 _memUsage;↩
public:↩
STDMETHOD(SetNumberOfThreads)(UInt32 numThreads);↩
STDMETHOD(SetMemLimit)(UInt64 memUsage);↩
#endif↩
↩
#ifndef NO_READ_FROM_CODER↩
private:↩
CMyComPtr<ISequentialInStream> _inStream;↩
CSeqInStreamWrap _inWrap;↩
public:↩
STDMETHOD(SetOutStreamSize)(const UInt64 *outSize);↩
STDMETHOD(SetInStream)(ISequentialInStream *inStream);↩
STDMETHOD(ReleaseInStream)();↩
STDMETHOD(Read)(void *data, UInt32 size, UInt32 *processedSize);↩
#endif↩
↩
CDecoder();↩
virtual ~CDecoder();↩
};↩
↩
}}↩
↩
#endif↩