xref: /aosp_15_r20/external/lzma/CPP/7zip/Compress/LzmaEncoder.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
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