Mercurial > vba-linux
annotate src/win32/7zip/7z/CPP/7zip/Common/LockedStream.cpp @ 1:f9f4f1b99eed
importing src directory
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 03 Mar 2012 10:31:27 -0600 |
parents | |
children |
rev | line source |
---|---|
rlm@1 | 1 // LockedStream.cpp |
rlm@1 | 2 |
rlm@1 | 3 #include "StdAfx.h" |
rlm@1 | 4 |
rlm@1 | 5 #include "LockedStream.h" |
rlm@1 | 6 |
rlm@1 | 7 HRESULT CLockedInStream::Read(UInt64 startPos, void *data, UInt32 size, |
rlm@1 | 8 UInt32 *processedSize) |
rlm@1 | 9 { |
rlm@1 | 10 NWindows::NSynchronization::CCriticalSectionLock lock(_criticalSection); |
rlm@1 | 11 RINOK(_stream->Seek(startPos, STREAM_SEEK_SET, NULL)); |
rlm@1 | 12 return _stream->Read(data, size, processedSize); |
rlm@1 | 13 } |
rlm@1 | 14 |
rlm@1 | 15 STDMETHODIMP CLockedSequentialInStreamImp::Read(void *data, UInt32 size, UInt32 *processedSize) |
rlm@1 | 16 { |
rlm@1 | 17 UInt32 realProcessedSize = 0; |
rlm@1 | 18 HRESULT result = _lockedInStream->Read(_pos, data, size, &realProcessedSize); |
rlm@1 | 19 _pos += realProcessedSize; |
rlm@1 | 20 if (processedSize != NULL) |
rlm@1 | 21 *processedSize = realProcessedSize; |
rlm@1 | 22 return result; |
rlm@1 | 23 } |