rlm@1: // LzhOutStreamWithCRC.h rlm@1: rlm@1: #ifndef __LZHOUTSTREAMWITHCRC_H rlm@1: #define __LZHOUTSTREAMWITHCRC_H rlm@1: rlm@1: #include "LzhCRC.h" rlm@1: #include "../../../Common/MyCom.h" rlm@1: #include "../../IStream.h" rlm@1: rlm@1: namespace NArchive { rlm@1: namespace NLzh { rlm@1: rlm@1: class COutStreamWithCRC: rlm@1: public ISequentialOutStream, rlm@1: public CMyUnknownImp rlm@1: { rlm@1: public: rlm@1: MY_UNKNOWN_IMP rlm@1: rlm@1: STDMETHOD(Write)(const void *data, UInt32 size, UInt32 *processedSize); rlm@1: private: rlm@1: CCRC _crc; rlm@1: CMyComPtr _stream; rlm@1: public: rlm@1: void Init(ISequentialOutStream *stream) rlm@1: { rlm@1: _stream = stream; rlm@1: _crc.Init(); rlm@1: } rlm@1: void ReleaseStream() { _stream.Release(); } rlm@1: UInt32 GetCRC() const { return _crc.GetDigest(); } rlm@1: void InitCRC() { _crc.Init(); } rlm@1: rlm@1: }; rlm@1: rlm@1: }} rlm@1: rlm@1: #endif