1baa3858d3f5d128a5c8466b700098109edcad5f2repo sync// 7zSpecStream.h 2baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 3baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#ifndef __7Z_SPEC_STREAM_H 4baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#define __7Z_SPEC_STREAM_H 5baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 6baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#include "../../../Common/MyCom.h" 7baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 8f955a79a9fffb09826cf7547f70d08c3798a2f50Tetsuo Osaka#include "../../ICoder.h" 9f955a79a9fffb09826cf7547f70d08c3798a2f50Tetsuo Osaka 10baa3858d3f5d128a5c8466b700098109edcad5f2repo syncclass CSequentialInStreamSizeCount2: 11baa3858d3f5d128a5c8466b700098109edcad5f2repo sync public ISequentialInStream, 12baa3858d3f5d128a5c8466b700098109edcad5f2repo sync public ICompressGetSubStreamSize, 13baa3858d3f5d128a5c8466b700098109edcad5f2repo sync public CMyUnknownImp 14baa3858d3f5d128a5c8466b700098109edcad5f2repo sync{ 15baa3858d3f5d128a5c8466b700098109edcad5f2repo sync CMyComPtr<ISequentialInStream> _stream; 16baa3858d3f5d128a5c8466b700098109edcad5f2repo sync CMyComPtr<ICompressGetSubStreamSize> _getSubStreamSize; 17baa3858d3f5d128a5c8466b700098109edcad5f2repo sync UInt64 _size; 18baa3858d3f5d128a5c8466b700098109edcad5f2repo syncpublic: 19baa3858d3f5d128a5c8466b700098109edcad5f2repo sync void Init(ISequentialInStream *stream) 20baa3858d3f5d128a5c8466b700098109edcad5f2repo sync { 21f955a79a9fffb09826cf7547f70d08c3798a2f50Tetsuo Osaka _size = 0; 22f955a79a9fffb09826cf7547f70d08c3798a2f50Tetsuo Osaka _getSubStreamSize.Release(); 23baa3858d3f5d128a5c8466b700098109edcad5f2repo sync _stream = stream; 24baa3858d3f5d128a5c8466b700098109edcad5f2repo sync _stream.QueryInterface(IID_ICompressGetSubStreamSize, &_getSubStreamSize); 25baa3858d3f5d128a5c8466b700098109edcad5f2repo sync } 26baa3858d3f5d128a5c8466b700098109edcad5f2repo sync UInt64 GetSize() const { return _size; } 27baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 28f955a79a9fffb09826cf7547f70d08c3798a2f50Tetsuo Osaka MY_UNKNOWN_IMP2(ISequentialInStream, ICompressGetSubStreamSize) 29baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 30baa3858d3f5d128a5c8466b700098109edcad5f2repo sync STDMETHOD(Read)(void *data, UInt32 size, UInt32 *processedSize); 31baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 32baa3858d3f5d128a5c8466b700098109edcad5f2repo sync STDMETHOD(GetSubStreamSize)(UInt64 subStream, UInt64 *value); 33baa3858d3f5d128a5c8466b700098109edcad5f2repo sync}; 34baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 35baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#endif 36