instreamwithcrc.h

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

H
60
字号
// InStreamWithCRC.h#ifndef __INSTREAMWITHCRC_H#define __INSTREAMWITHCRC_H#include "../../../Common/CRC.h"#include "../../../Common/MyCom.h"#include "../../IStream.h"class CSequentialInStreamWithCRC:   public ISequentialInStream,  public CMyUnknownImp{public:  MY_UNKNOWN_IMP  STDMETHOD(Read)(void *data, UInt32 size, UInt32 *processedSize);private:  CMyComPtr<ISequentialInStream> _stream;  UInt64 _size;  CCRC _crc;public:  void Init(ISequentialInStream *stream)  {    _stream = stream;    _size = 0;    _crc.Init();  }  void ReleaseStream() { _stream.Release(); }  UInt32 GetCRC() const { return _crc.GetDigest(); }  UInt64 GetSize() const { return _size; }};class CInStreamWithCRC:   public IInStream,  public CMyUnknownImp{public:  MY_UNKNOWN_IMP1(IInStream)  STDMETHOD(Read)(void *data, UInt32 size, UInt32 *processedSize);  STDMETHOD(Seek)(Int64 offset, UInt32 seekOrigin, UInt64 *newPosition);private:  CMyComPtr<IInStream> _stream;  UInt64 _size;  CCRC _crc;public:  void Init(IInStream *stream)  {    _stream = stream;    _size = 0;    _crc.Init();  }  void ReleaseStream() { _stream.Release(); }  UInt32 GetCRC() const { return _crc.GetDigest(); }  UInt64 GetSize() const { return _size; }};#endif

⌨️ 快捷键说明

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