xref: /aosp_15_r20/external/lzma/CPP/7zip/Compress/Lzma2Decoder.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // Lzma2Decoder.h
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_LZMA2_DECODER_H
4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_LZMA2_DECODER_H
5*f6dc9357SAndroid Build Coastguard Worker 
6*f6dc9357SAndroid Build Coastguard Worker #include "../../../C/Lzma2DecMt.h"
7*f6dc9357SAndroid Build Coastguard Worker 
8*f6dc9357SAndroid Build Coastguard Worker #include "../Common/CWrappers.h"
9*f6dc9357SAndroid Build Coastguard Worker 
10*f6dc9357SAndroid Build Coastguard Worker namespace NCompress {
11*f6dc9357SAndroid Build Coastguard Worker namespace NLzma2 {
12*f6dc9357SAndroid Build Coastguard Worker 
13*f6dc9357SAndroid Build Coastguard Worker class CDecoder Z7_final:
14*f6dc9357SAndroid Build Coastguard Worker   public ICompressCoder,
15*f6dc9357SAndroid Build Coastguard Worker   public ICompressSetDecoderProperties2,
16*f6dc9357SAndroid Build Coastguard Worker   public ICompressSetFinishMode,
17*f6dc9357SAndroid Build Coastguard Worker   public ICompressGetInStreamProcessedSize,
18*f6dc9357SAndroid Build Coastguard Worker   public ICompressSetBufSize,
19*f6dc9357SAndroid Build Coastguard Worker  #ifndef Z7_NO_READ_FROM_CODER
20*f6dc9357SAndroid Build Coastguard Worker   public ICompressSetInStream,
21*f6dc9357SAndroid Build Coastguard Worker   public ICompressSetOutStreamSize,
22*f6dc9357SAndroid Build Coastguard Worker   public ISequentialInStream,
23*f6dc9357SAndroid Build Coastguard Worker  #endif
24*f6dc9357SAndroid Build Coastguard Worker  #ifndef Z7_ST
25*f6dc9357SAndroid Build Coastguard Worker   public ICompressSetCoderMt,
26*f6dc9357SAndroid Build Coastguard Worker   public ICompressSetMemLimit,
27*f6dc9357SAndroid Build Coastguard Worker  #endif
28*f6dc9357SAndroid Build Coastguard Worker   public CMyUnknownImp
29*f6dc9357SAndroid Build Coastguard Worker {
30*f6dc9357SAndroid Build Coastguard Worker   Z7_COM_QI_BEGIN2(ICompressCoder)
31*f6dc9357SAndroid Build Coastguard Worker   Z7_COM_QI_ENTRY(ICompressSetDecoderProperties2)
32*f6dc9357SAndroid Build Coastguard Worker   Z7_COM_QI_ENTRY(ICompressSetFinishMode)
33*f6dc9357SAndroid Build Coastguard Worker   Z7_COM_QI_ENTRY(ICompressGetInStreamProcessedSize)
34*f6dc9357SAndroid Build Coastguard Worker   Z7_COM_QI_ENTRY(ICompressSetBufSize)
35*f6dc9357SAndroid Build Coastguard Worker  #ifndef Z7_NO_READ_FROM_CODER
36*f6dc9357SAndroid Build Coastguard Worker   Z7_COM_QI_ENTRY(ICompressSetInStream)
37*f6dc9357SAndroid Build Coastguard Worker   Z7_COM_QI_ENTRY(ICompressSetOutStreamSize)
38*f6dc9357SAndroid Build Coastguard Worker   Z7_COM_QI_ENTRY(ISequentialInStream)
39*f6dc9357SAndroid Build Coastguard Worker  #endif
40*f6dc9357SAndroid Build Coastguard Worker  #ifndef Z7_ST
41*f6dc9357SAndroid Build Coastguard Worker   Z7_COM_QI_ENTRY(ICompressSetCoderMt)
42*f6dc9357SAndroid Build Coastguard Worker   Z7_COM_QI_ENTRY(ICompressSetMemLimit)
43*f6dc9357SAndroid Build Coastguard Worker  #endif
44*f6dc9357SAndroid Build Coastguard Worker   Z7_COM_QI_END
45*f6dc9357SAndroid Build Coastguard Worker   Z7_COM_ADDREF_RELEASE
46*f6dc9357SAndroid Build Coastguard Worker 
47*f6dc9357SAndroid Build Coastguard Worker   Z7_IFACE_COM7_IMP(ICompressCoder)
48*f6dc9357SAndroid Build Coastguard Worker   Z7_IFACE_COM7_IMP(ICompressSetDecoderProperties2)
49*f6dc9357SAndroid Build Coastguard Worker   Z7_IFACE_COM7_IMP(ICompressSetFinishMode)
50*f6dc9357SAndroid Build Coastguard Worker   Z7_IFACE_COM7_IMP(ICompressGetInStreamProcessedSize)
51*f6dc9357SAndroid Build Coastguard Worker   Z7_IFACE_COM7_IMP(ICompressSetBufSize)
52*f6dc9357SAndroid Build Coastguard Worker  #ifndef Z7_NO_READ_FROM_CODER
53*f6dc9357SAndroid Build Coastguard Worker   Z7_IFACE_COM7_IMP(ICompressSetOutStreamSize)
54*f6dc9357SAndroid Build Coastguard Worker   Z7_IFACE_COM7_IMP(ICompressSetInStream)
55*f6dc9357SAndroid Build Coastguard Worker   Z7_IFACE_COM7_IMP(ISequentialInStream)
56*f6dc9357SAndroid Build Coastguard Worker  #endif
57*f6dc9357SAndroid Build Coastguard Worker  #ifndef Z7_ST
58*f6dc9357SAndroid Build Coastguard Worker   Z7_IFACE_COM7_IMP(ICompressSetCoderMt)
59*f6dc9357SAndroid Build Coastguard Worker   Z7_IFACE_COM7_IMP(ICompressSetMemLimit)
60*f6dc9357SAndroid Build Coastguard Worker  #endif
61*f6dc9357SAndroid Build Coastguard Worker 
62*f6dc9357SAndroid Build Coastguard Worker   CLzma2DecMtHandle _dec;
63*f6dc9357SAndroid Build Coastguard Worker   UInt64 _inProcessed;
64*f6dc9357SAndroid Build Coastguard Worker   Byte _prop;
65*f6dc9357SAndroid Build Coastguard Worker   int _finishMode;
66*f6dc9357SAndroid Build Coastguard Worker   UInt32 _inBufSize;
67*f6dc9357SAndroid Build Coastguard Worker   UInt32 _outStep;
68*f6dc9357SAndroid Build Coastguard Worker 
69*f6dc9357SAndroid Build Coastguard Worker  #ifndef Z7_ST
70*f6dc9357SAndroid Build Coastguard Worker   int _tryMt;
71*f6dc9357SAndroid Build Coastguard Worker   UInt32 _numThreads;
72*f6dc9357SAndroid Build Coastguard Worker   UInt64 _memUsage;
73*f6dc9357SAndroid Build Coastguard Worker  #endif
74*f6dc9357SAndroid Build Coastguard Worker 
75*f6dc9357SAndroid Build Coastguard Worker  #ifndef Z7_NO_READ_FROM_CODER
76*f6dc9357SAndroid Build Coastguard Worker   CMyComPtr<ISequentialInStream> _inStream;
77*f6dc9357SAndroid Build Coastguard Worker   CSeqInStreamWrap _inWrap;
78*f6dc9357SAndroid Build Coastguard Worker  #endif
79*f6dc9357SAndroid Build Coastguard Worker 
80*f6dc9357SAndroid Build Coastguard Worker public:
81*f6dc9357SAndroid Build Coastguard Worker   CDecoder();
82*f6dc9357SAndroid Build Coastguard Worker   ~CDecoder();
83*f6dc9357SAndroid Build Coastguard Worker };
84*f6dc9357SAndroid Build Coastguard Worker 
85*f6dc9357SAndroid Build Coastguard Worker }}
86*f6dc9357SAndroid Build Coastguard Worker 
87*f6dc9357SAndroid Build Coastguard Worker #endif
88