Upload 2.0.2
[physicsfs] / lzma / CPP / 7zip / Common / LimitedStreams.cpp
1 // LimitedStreams.cpp
2
3 #include "StdAfx.h"
4
5 #include "LimitedStreams.h"
6 #include "../../Common/Defs.h"
7
8 STDMETHODIMP CLimitedSequentialInStream::Read(void *data, UInt32 size, UInt32 *processedSize)
9 {
10   UInt32 realProcessedSize = 0;
11   UInt32 sizeToRead = (UInt32)MyMin((_size - _pos), (UInt64)size);
12   HRESULT result = S_OK;
13   if (sizeToRead > 0)
14   {
15     result = _stream->Read(data, sizeToRead, &realProcessedSize);
16     _pos += realProcessedSize;
17     if (realProcessedSize == 0)
18       _wasFinished = true;
19   }
20   if(processedSize != NULL)
21     *processedSize = realProcessedSize;
22   return result;
23 }
24