%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/waritko/yacy/libbuild/J7Zip-modified/src/Common/
Upload File :
Create Path :
Current File : //home/waritko/yacy/libbuild/J7Zip-modified/src/Common/LimitedSequentialInStream.java

package Common;

import java.io.InputStream;

public class LimitedSequentialInStream extends InputStream {
    final InputStream _stream; // ISequentialInStream
    final long _size;
    long _pos;
    boolean _wasFinished;
    
    public LimitedSequentialInStream(InputStream stream, long streamSize) {
        _stream = stream;
        _size = streamSize;
        _pos = 0;
        _wasFinished = false;
    }
    
    /*
    public void SetStream(InputStream stream) { // ISequentialInStream
        _stream = stream;
    }
    
    public void Init(long streamSize) {
        _size = streamSize;
        _pos = 0;
        _wasFinished = false;
    }*/
    
    public int read() throws java.io.IOException {
        int ret = _stream.read();
        if (ret == -1) _wasFinished = true;
        return ret;
    }
    
    public int read(byte [] data,int off, int size) throws java.io.IOException {
        long sizeToRead2 = (_size - _pos);
        if (size < sizeToRead2) sizeToRead2 = size;
        
        int sizeToRead = (int)sizeToRead2;
        
        if (sizeToRead > 0) {
            int realProcessedSize = _stream.read(data, off, sizeToRead);
            if (realProcessedSize == -1) {
                _wasFinished = true;
                return -1;
            }
            _pos += realProcessedSize;
            return realProcessedSize;
        }
        
        return -1; // EOF
    }
}


Zerion Mini Shell 1.0