package com.mucommander.commons.file.archive.sevenzip.provider.Common; import com.mucommander.commons.file.archive.sevenzip.provider.SevenZip.IInStream; public class LockedInStream { IInStream _stream; public LockedInStream() { } public void Init(IInStream stream) { _stream = stream; } /* really too slow, don't use ! public synchronized int read(long startPos) throws java.io.IOException { // NWindows::NSynchronization::CCriticalSectionLock lock(_criticalSection); _stream.Seek(startPos, IInStream.STREAM_SEEK_SET); return _stream.read(); } */ public synchronized int read(long startPos, byte [] data, int size) throws java.io.IOException { // NWindows::NSynchronization::CCriticalSectionLock lock(_criticalSection); _stream.Seek(startPos, IInStream.STREAM_SEEK_SET); return _stream.read(data,0, size); } public synchronized int read(long startPos, byte [] data, int off, int size) throws java.io.IOException { // NWindows::NSynchronization::CCriticalSectionLock lock(_criticalSection); _stream.Seek(startPos, IInStream.STREAM_SEEK_SET); return _stream.read(data,off, size); } }