| 1234567891011121314151617181920212223242526272829303132333435 |
- // 7zSpecStream.h
- #ifndef __7Z_SPEC_STREAM_H
- #define __7Z_SPEC_STREAM_H
- #include "../../IStream.h"
- #include "../../ICoder.h"
- #include "../../../Common/MyCom.h"
- class CSequentialInStreamSizeCount2:
- public ISequentialInStream,
- public ICompressGetSubStreamSize,
- public CMyUnknownImp
- {
- CMyComPtr<ISequentialInStream> _stream;
- CMyComPtr<ICompressGetSubStreamSize> _getSubStreamSize;
- UInt64 _size;
- public:
- void Init(ISequentialInStream *stream)
- {
- _stream = stream;
- _getSubStreamSize = 0;
- _stream.QueryInterface(IID_ICompressGetSubStreamSize, &_getSubStreamSize);
- _size = 0;
- }
- UInt64 GetSize() const { return _size; }
- MY_UNKNOWN_IMP1(ICompressGetSubStreamSize)
- STDMETHOD(Read)(void *data, UInt32 size, UInt32 *processedSize);
- STDMETHOD(GetSubStreamSize)(UInt64 subStream, UInt64 *value);
- };
- #endif
|