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