1 // LzmaEncoder.h 2 3 #ifndef ZIP7_INC_LZMA_ENCODER_H 4 #define ZIP7_INC_LZMA_ENCODER_H 5 6 #include "../../../C/LzmaEnc.h" 7 8 #include "../../Common/MyCom.h" 9 10 #include "../ICoder.h" 11 12 namespace NCompress { 13 namespace NLzma { 14 15 class CEncoder Z7_final: 16 public ICompressCoder, 17 public ICompressSetCoderProperties, 18 public ICompressWriteCoderProperties, 19 public ICompressSetCoderPropertiesOpt, 20 public CMyUnknownImp 21 { 22 Z7_COM_UNKNOWN_IMP_4( 23 ICompressCoder, 24 ICompressSetCoderProperties, 25 ICompressWriteCoderProperties, 26 ICompressSetCoderPropertiesOpt) 27 Z7_IFACE_COM7_IMP(ICompressCoder) 28 public: 29 Z7_IFACE_COM7_IMP(ICompressSetCoderProperties) 30 Z7_IFACE_COM7_IMP(ICompressWriteCoderProperties) 31 Z7_IFACE_COM7_IMP(ICompressSetCoderPropertiesOpt) 32 33 CLzmaEncHandle _encoder; 34 UInt64 _inputProcessed; 35 36 CEncoder(); 37 ~CEncoder(); 38 GetInputProcessedSize()39 UInt64 GetInputProcessedSize() const { return _inputProcessed; } IsWriteEndMark()40 bool IsWriteEndMark() const { return LzmaEnc_IsWriteEndMark(_encoder) != 0; } 41 }; 42 43 }} 44 45 #endif 46