other-licenses/7zstub/src/7zip/Common/LimitedStreams.cpp

branch
TOR_BUG_9701
changeset 8
97036ab72558
equal deleted inserted replaced
-1:000000000000 0:1551d59c60d9
1 // LimitedStreams.cpp
2
3 #include "StdAfx.h"
4
5 #include "LimitedStreams.h"
6 #include "../../Common/Defs.h"
7
8 void CLimitedSequentialInStream::Init(ISequentialInStream *stream, UInt64 streamSize)
9 {
10 _stream = stream;
11 _size = streamSize;
12 }
13
14 STDMETHODIMP CLimitedSequentialInStream::Read(void *data, UInt32 size, UInt32 *processedSize)
15 {
16 UInt32 processedSizeReal;
17 UInt32 sizeToRead = UInt32(MyMin(_size, UInt64(size)));
18 HRESULT result = _stream->Read(data, sizeToRead, &processedSizeReal);
19 _size -= processedSizeReal;
20 if(processedSize != NULL)
21 *processedSize = processedSizeReal;
22 return result;
23 }
24

mercurial