1 // Lzma2Encoder.h 2 3 #ifndef __LZMA2_ENCODER_H 4 #define __LZMA2_ENCODER_H 5 6 #include "../../../C/Lzma2Enc.h" 7 8 #include "../../Common/MyCom.h" 9 10 #include "../ICoder.h" 11 12 namespace NCompress { 13 namespace NLzma2 { 14 15 class CEncoder: 16 public ICompressCoder, 17 public ICompressSetCoderProperties, 18 public ICompressWriteCoderProperties, 19 public ICompressSetCoderPropertiesOpt, 20 public CMyUnknownImp 21 { 22 CLzma2EncHandle _encoder; 23 public: 24 MY_UNKNOWN_IMP4( 25 ICompressCoder, 26 ICompressSetCoderProperties, 27 ICompressWriteCoderProperties, 28 ICompressSetCoderPropertiesOpt) 29 30 STDMETHOD(Code)(ISequentialInStream *inStream, ISequentialOutStream *outStream, 31 const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress); 32 STDMETHOD(SetCoderProperties)(const PROPID *propIDs, const PROPVARIANT *props, UInt32 numProps); 33 STDMETHOD(WriteCoderProperties)(ISequentialOutStream *outStream); 34 STDMETHOD(SetCoderPropertiesOpt)(const PROPID *propIDs, const PROPVARIANT *props, UInt32 numProps); 35 36 CEncoder(); 37 virtual ~CEncoder(); 38 }; 39 40 }} 41 42 #endif 43