xref: /aosp_15_r20/external/lzma/CPP/7zip/Compress/ZlibEncoder.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // ZlibEncoder.h
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_ZLIB_ENCODER_H
4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_ZLIB_ENCODER_H
5*f6dc9357SAndroid Build Coastguard Worker 
6*f6dc9357SAndroid Build Coastguard Worker #include "DeflateEncoder.h"
7*f6dc9357SAndroid Build Coastguard Worker 
8*f6dc9357SAndroid Build Coastguard Worker namespace NCompress {
9*f6dc9357SAndroid Build Coastguard Worker namespace NZlib {
10*f6dc9357SAndroid Build Coastguard Worker 
11*f6dc9357SAndroid Build Coastguard Worker Z7_CLASS_IMP_NOQIB_1(
12*f6dc9357SAndroid Build Coastguard Worker   CInStreamWithAdler
13*f6dc9357SAndroid Build Coastguard Worker   , ISequentialInStream
14*f6dc9357SAndroid Build Coastguard Worker )
15*f6dc9357SAndroid Build Coastguard Worker   CMyComPtr<ISequentialInStream> _stream;
16*f6dc9357SAndroid Build Coastguard Worker   UInt32 _adler;
17*f6dc9357SAndroid Build Coastguard Worker   UInt64 _size;
18*f6dc9357SAndroid Build Coastguard Worker public:
SetStream(ISequentialInStream * stream)19*f6dc9357SAndroid Build Coastguard Worker   void SetStream(ISequentialInStream *stream) { _stream = stream; }
ReleaseStream()20*f6dc9357SAndroid Build Coastguard Worker   void ReleaseStream() { _stream.Release(); }
Init()21*f6dc9357SAndroid Build Coastguard Worker   void Init() { _adler = 1; _size = 0; } // ADLER_INIT_VAL
GetAdler()22*f6dc9357SAndroid Build Coastguard Worker   UInt32 GetAdler() const { return _adler; }
GetSize()23*f6dc9357SAndroid Build Coastguard Worker   UInt64 GetSize() const { return _size; }
24*f6dc9357SAndroid Build Coastguard Worker };
25*f6dc9357SAndroid Build Coastguard Worker 
26*f6dc9357SAndroid Build Coastguard Worker Z7_CLASS_IMP_NOQIB_1(
27*f6dc9357SAndroid Build Coastguard Worker   CEncoder
28*f6dc9357SAndroid Build Coastguard Worker   , ICompressCoder
29*f6dc9357SAndroid Build Coastguard Worker )
30*f6dc9357SAndroid Build Coastguard Worker   CInStreamWithAdler *AdlerSpec;
31*f6dc9357SAndroid Build Coastguard Worker   CMyComPtr<ISequentialInStream> AdlerStream;
32*f6dc9357SAndroid Build Coastguard Worker   CMyComPtr<ICompressCoder> DeflateEncoder;
33*f6dc9357SAndroid Build Coastguard Worker public:
34*f6dc9357SAndroid Build Coastguard Worker   NCompress::NDeflate::NEncoder::CCOMCoder *DeflateEncoderSpec;
35*f6dc9357SAndroid Build Coastguard Worker 
36*f6dc9357SAndroid Build Coastguard Worker   void Create();
GetInputProcessedSize()37*f6dc9357SAndroid Build Coastguard Worker   UInt64 GetInputProcessedSize() const { return AdlerSpec->GetSize(); }
38*f6dc9357SAndroid Build Coastguard Worker };
39*f6dc9357SAndroid Build Coastguard Worker 
40*f6dc9357SAndroid Build Coastguard Worker }}
41*f6dc9357SAndroid Build Coastguard Worker 
42*f6dc9357SAndroid Build Coastguard Worker #endif
43