ppmdencoder.h
来自「由7-zip提供的压缩、解压缩程序」· C头文件 代码 · 共 82 行
H
82 行
// Compress/PPMD/Encoder.h#ifndef __COMPRESS_PPMD_ENCODER_H#define __COMPRESS_PPMD_ENCODER_H#include "../../../Common/MyCom.h"#include "../../ICoder.h"#include "../../Common/InBuffer.h"#include "../RangeCoder/RangeCoder.h"#include "PPMDEncode.h"namespace NCompress {namespace NPPMD {class CEncoder : public ICompressCoder, public ICompressSetCoderProperties, public ICompressWriteCoderProperties, public CMyUnknownImp{public: CInBuffer _inStream; NRangeCoder::CEncoder _rangeEncoder; CEncodeInfo _info; UInt32 _usedMemorySize; Byte _order; HRESULT Flush() { _rangeEncoder.FlushData(); return _rangeEncoder.FlushStream(); } void ReleaseStreams() { _inStream.ReleaseStream(); _rangeEncoder.ReleaseStream(); } HRESULT CodeReal(ISequentialInStream *inStream, ISequentialOutStream *outStream, const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress); class CEncoderFlusher { CEncoder *_encoder; public: CEncoderFlusher(CEncoder *encoder): _encoder(encoder) {} ~CEncoderFlusher() { _encoder->Flush(); _encoder->ReleaseStreams(); } };public: MY_UNKNOWN_IMP2( ICompressSetCoderProperties, ICompressWriteCoderProperties) STDMETHOD(Code)(ISequentialInStream *inStream, ISequentialOutStream *outStream, const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress); STDMETHOD(SetCoderProperties)(const PROPID *propIDs, const PROPVARIANT *properties, UInt32 numProperties); STDMETHOD(WriteCoderProperties)(ISequentialOutStream *outStream); CEncoder();};}}#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?