Mercurial > vba-linux
annotate src/win32/7zip/7z/CPP/7zip/Compress/ZlibDecoder.h @ 1:f9f4f1b99eed
importing src directory
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 03 Mar 2012 10:31:27 -0600 |
parents | |
children |
rev | line source |
---|---|
rlm@1 | 1 // ZlibDecoder.h |
rlm@1 | 2 |
rlm@1 | 3 #ifndef __ZLIB_DECODER_H |
rlm@1 | 4 #define __ZLIB_DECODER_H |
rlm@1 | 5 |
rlm@1 | 6 #include "DeflateDecoder.h" |
rlm@1 | 7 |
rlm@1 | 8 namespace NCompress { |
rlm@1 | 9 namespace NZlib { |
rlm@1 | 10 |
rlm@1 | 11 const UInt32 ADLER_INIT_VAL = 1; |
rlm@1 | 12 |
rlm@1 | 13 class COutStreamWithAdler: |
rlm@1 | 14 public ISequentialOutStream, |
rlm@1 | 15 public CMyUnknownImp |
rlm@1 | 16 { |
rlm@1 | 17 CMyComPtr<ISequentialOutStream> _stream; |
rlm@1 | 18 UInt32 _adler; |
rlm@1 | 19 public: |
rlm@1 | 20 MY_UNKNOWN_IMP |
rlm@1 | 21 STDMETHOD(Write)(const void *data, UInt32 size, UInt32 *processedSize); |
rlm@1 | 22 void SetStream(ISequentialOutStream *stream) { _stream = stream; } |
rlm@1 | 23 void ReleaseStream() { _stream.Release(); } |
rlm@1 | 24 void Init() { _adler = ADLER_INIT_VAL; } |
rlm@1 | 25 UInt32 GetAdler() const { return _adler; } |
rlm@1 | 26 }; |
rlm@1 | 27 |
rlm@1 | 28 class CDecoder: |
rlm@1 | 29 public ICompressCoder, |
rlm@1 | 30 public CMyUnknownImp |
rlm@1 | 31 { |
rlm@1 | 32 COutStreamWithAdler *AdlerSpec; |
rlm@1 | 33 CMyComPtr<ISequentialOutStream> AdlerStream; |
rlm@1 | 34 |
rlm@1 | 35 NCompress::NDeflate::NDecoder::CCOMCoder *DeflateDecoderSpec; |
rlm@1 | 36 CMyComPtr<ICompressCoder> DeflateDecoder; |
rlm@1 | 37 public: |
rlm@1 | 38 STDMETHOD(Code)(ISequentialInStream *inStream, ISequentialOutStream *outStream, |
rlm@1 | 39 const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress); |
rlm@1 | 40 |
rlm@1 | 41 MY_UNKNOWN_IMP |
rlm@1 | 42 }; |
rlm@1 | 43 |
rlm@1 | 44 }} |
rlm@1 | 45 |
rlm@1 | 46 #endif |