implodedecoder.h

来自「由7-zip提供的压缩、解压缩程序」· C头文件 代码 · 共 61 行

H
61
字号
// ImplodeDecoder.h#ifndef __IMPLODE_DECODER_H#define __IMPLODE_DECODER_H#include "../../../Common/MyCom.h"#include "../../ICoder.h"#include "../LZ/LZOutWindow.h"#include "ImplodeHuffmanDecoder.h"namespace NCompress {namespace NImplode {namespace NDecoder {class CCoder :  public ICompressCoder,  public ICompressSetDecoderProperties2,  public CMyUnknownImp{  CLZOutWindow m_OutWindowStream;  NStream::NLSBF::CDecoder<CInBuffer> m_InBitStream;    NImplode::NHuffman::CDecoder m_LiteralDecoder;  NImplode::NHuffman::CDecoder m_LengthDecoder;  NImplode::NHuffman::CDecoder m_DistanceDecoder;  bool m_BigDictionaryOn;  bool m_LiteralsOn;  int m_NumDistanceLowDirectBits;   UInt32 m_MinMatchLength;  bool ReadLevelItems(NImplode::NHuffman::CDecoder &table, Byte *levels, int numLevelItems);  bool ReadTables();  void DeCodeLevelTable(Byte *newLevels, int numLevels);public:  CCoder();  MY_UNKNOWN_IMP1(ICompressSetDecoderProperties2)  void ReleaseStreams();  HRESULT (Flush)() { return m_OutWindowStream.Flush(); }  STDMETHOD(CodeReal)(ISequentialInStream *inStream, ISequentialOutStream *outStream,       const UInt64 *inSize, const UInt64 *outSize,      ICompressProgressInfo *progress);  STDMETHOD(Code)(ISequentialInStream *inStream, ISequentialOutStream *outStream,       const UInt64 *inSize, const UInt64 *outSize,      ICompressProgressInfo *progress);  // ICompressSetDecoderProperties  STDMETHOD(SetDecoderProperties2)(const Byte *data, UInt32 size);};}}}#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?