| 1234567891011121314151617181920212223242526272829303132333435363738 |
- // LockedStream.h
- #ifndef __LOCKEDSTREAM_H
- #define __LOCKEDSTREAM_H
- #include "../../Windows/Synchronization.h"
- #include "../../Common/MyCom.h"
- #include "../IStream.h"
- class CLockedInStream
- {
- CMyComPtr<IInStream> _stream;
- NWindows::NSynchronization::CCriticalSection _criticalSection;
- public:
- void Init(IInStream *stream)
- { _stream = stream; }
- HRESULT Read(UInt64 startPos, void *data, UInt32 size, UInt32 *processedSize);
- };
- class CLockedSequentialInStreamImp:
- public ISequentialInStream,
- public CMyUnknownImp
- {
- CLockedInStream *_lockedInStream;
- UInt64 _pos;
- public:
- void Init(CLockedInStream *lockedInStream, UInt64 startPos)
- {
- _lockedInStream = lockedInStream;
- _pos = startPos;
- }
- MY_UNKNOWN_IMP
- STDMETHOD(Read)(void *data, UInt32 size, UInt32 *processedSize);
- };
- #endif
|