// LzmaEncoder.h | |
#ifndef __LZMA_ENCODER_H | |
#define __LZMA_ENCODER_H | |
#include "../../../C/LzmaEnc.h" | |
#include "../../Common/MyCom.h" | |
#include "../ICoder.h" | |
namespace NCompress { | |
namespace NLzma { | |
class CEncoder: | |
public ICompressCoder, | |
public ICompressSetCoderProperties, | |
public ICompressWriteCoderProperties, | |
public CMyUnknownImp | |
{ | |
CLzmaEncHandle _encoder; | |
UInt64 _inputProcessed; | |
public: | |
MY_UNKNOWN_IMP2(ICompressSetCoderProperties, ICompressWriteCoderProperties) | |
STDMETHOD(Code)(ISequentialInStream *inStream, ISequentialOutStream *outStream, | |
const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress); | |
STDMETHOD(SetCoderProperties)(const PROPID *propIDs, const PROPVARIANT *props, UInt32 numProps); | |
STDMETHOD(WriteCoderProperties)(ISequentialOutStream *outStream); | |
CEncoder(); | |
virtual ~CEncoder(); | |
UInt64 GetInputProcessedSize() const { return _inputProcessed; } | |
}; | |
}} | |
#endif |