ppmddecoder.h

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

H
90
字号
// Compress/PPM/PPMDDecoder.h#ifndef __COMPRESS_PPMD_DECODER_H#define __COMPRESS_PPMD_DECODER_H#include "../../../Common/MyCom.h"#include "../../ICoder.h"#include "../../Common/OutBuffer.h"#include "../RangeCoder/RangeCoder.h"#include "PPMDDecode.h"namespace NCompress {namespace NPPMD {class CDecoder :   public ICompressCoder,  public ICompressSetDecoderProperties2,  #ifdef _ST_MODE  public ICompressSetInStream,  public ICompressSetOutStreamSize,  public ISequentialInStream,  #endif  public CMyUnknownImp{  NRangeCoder::CDecoder _rangeDecoder;  COutBuffer _outStream;  CDecodeInfo _info;  Byte _order;  UInt32 _usedMemorySize;  int _remainLen;  UInt64 _outSize;  bool _outSizeDefined;  UInt64 _processedSize;  HRESULT CodeSpec(UInt32 num, Byte *memStream);public:  #ifdef _ST_MODE  MY_UNKNOWN_IMP4(      ICompressSetDecoderProperties2,       ICompressSetInStream,       ICompressSetOutStreamSize,       ISequentialInStream)  #else  MY_UNKNOWN_IMP1(      ICompressSetDecoderProperties2)  #endif  void ReleaseStreams()  {    ReleaseInStream();    _outStream.ReleaseStream();  }  HRESULT Flush() { return _outStream.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);  STDMETHOD(SetDecoderProperties2)(const Byte *data, UInt32 size);  STDMETHOD(SetInStream)(ISequentialInStream *inStream);  STDMETHOD(ReleaseInStream)();  STDMETHOD(SetOutStreamSize)(const UInt64 *outSize);  #ifdef _ST_MODE  STDMETHOD(Read)(void *data, UInt32 size, UInt32 *processedSize);  #endif  CDecoder(): _outSizeDefined(false) {}};}}#endif

⌨️ 快捷键说明

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