• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // LockedStream.cpp
2 
3 #include "StdAfx.h"
4 
5 #include "LockedStream.h"
6 
Read(UInt64 startPos,void * data,UInt32 size,UInt32 * processedSize)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 
Read(void * data,UInt32 size,UInt32 * processedSize)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 }
24