Home | History | Annotate | Download | only in Common
      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 }
     24