Imported Upstream version 9.20
[platform/upstream/7zip.git] / CPP / 7zip / Compress / LzmaEncoder.h
1 // LzmaEncoder.h\r
2 \r
3 #ifndef __LZMA_ENCODER_H\r
4 #define __LZMA_ENCODER_H\r
5 \r
6 #include "../../../C/LzmaEnc.h"\r
7 \r
8 #include "../../Common/MyCom.h"\r
9 \r
10 #include "../ICoder.h"\r
11 \r
12 namespace NCompress {\r
13 namespace NLzma {\r
14 \r
15 class CEncoder:\r
16   public ICompressCoder,\r
17   public ICompressSetCoderProperties,\r
18   public ICompressWriteCoderProperties,\r
19   public CMyUnknownImp\r
20 {\r
21   CLzmaEncHandle _encoder;\r
22 public:\r
23   MY_UNKNOWN_IMP2(ICompressSetCoderProperties, ICompressWriteCoderProperties)\r
24     \r
25   STDMETHOD(Code)(ISequentialInStream *inStream, ISequentialOutStream *outStream,\r
26       const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress);\r
27   STDMETHOD(SetCoderProperties)(const PROPID *propIDs, const PROPVARIANT *props, UInt32 numProps);\r
28   STDMETHOD(WriteCoderProperties)(ISequentialOutStream *outStream);\r
29 \r
30   CEncoder();\r
31   virtual ~CEncoder();\r
32 };\r
33 \r
34 }}\r
35 \r
36 #endif\r