Upload 2.0.2
[physicsfs] / lzma / CPP / 7zip / Common / LockedStream.cpp
1 // LockedStream.cpp
2
3 #include "StdAfx.h"
4
5 #include "LockedStream.h"
6
7 HRESULT CLockedInStream::Read(UInt64 startPos, void *data, UInt32 size, 
8   UInt32 *processedSize)
9 {
10   NWindows::NSynchronization::CCriticalSectionLock lock(_criticalSection);
11   RINOK(_stream->Seek(startPos, STREAM_SEEK_SET, NULL));
12   return _stream->Read(data, size, processedSize);
13 }
14
15 STDMETHODIMP CLockedSequentialInStreamImp::Read(void *data, UInt32 size, UInt32 *processedSize)
16 {
17   UInt32 realProcessedSize = 0;
18   HRESULT result = _lockedInStream->Read(_pos, data, size, &realProcessedSize);
19   _pos += realProcessedSize;
20   if (processedSize != NULL)
21     *processedSize = realProcessedSize;
22   return result;
23 }