Mercurial > vba-linux
view src/win32/7zip/7z/CPP/7zip/Compress/ImplodeDecoder.h @ 1:f9f4f1b99eed
importing src directory
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 03 Mar 2012 10:31:27 -0600 |
parents | |
children |
line wrap: on
line source
1 // ImplodeDecoder.h3 #ifndef __COMPRESS_IMPLODE_DECODER_H4 #define __COMPRESS_IMPLODE_DECODER_H6 #include "../../Common/MyCom.h"8 #include "../ICoder.h"10 #include "ImplodeHuffmanDecoder.h"11 #include "LzOutWindow.h"13 namespace NCompress {14 namespace NImplode {15 namespace NDecoder {17 class CCoder:18 public ICompressCoder,19 public ICompressSetDecoderProperties2,20 public CMyUnknownImp21 {22 CLzOutWindow m_OutWindowStream;23 NBitl::CDecoder<CInBuffer> m_InBitStream;25 NImplode::NHuffman::CDecoder m_LiteralDecoder;26 NImplode::NHuffman::CDecoder m_LengthDecoder;27 NImplode::NHuffman::CDecoder m_DistanceDecoder;29 bool m_BigDictionaryOn;30 bool m_LiteralsOn;32 int m_NumDistanceLowDirectBits;33 UInt32 m_MinMatchLength;35 bool ReadLevelItems(NImplode::NHuffman::CDecoder &table, Byte *levels, int numLevelItems);36 bool ReadTables();37 void DeCodeLevelTable(Byte *newLevels, int numLevels);38 public:39 CCoder();41 MY_UNKNOWN_IMP1(ICompressSetDecoderProperties2)43 void ReleaseStreams();44 HRESULT Flush() { return m_OutWindowStream.Flush(); }46 HRESULT CodeReal(ISequentialInStream *inStream, ISequentialOutStream *outStream,47 const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress);49 STDMETHOD(Code)(ISequentialInStream *inStream, ISequentialOutStream *outStream,50 const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress);52 STDMETHOD(SetDecoderProperties2)(const Byte *data, UInt32 size);53 };55 }}}57 #endif