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