Package org.restlet.engine.io
Class RangeInputStream
- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- org.restlet.engine.io.RangeInputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
public class RangeInputStream extends java.io.FilterInputStreamFilters an input stream to expose only a given range.
-
-
Field Summary
Fields Modifier and Type Field Description private intavailableSizeThe range size available.private longendIndexThe end index inside the source stream.private longpositionThe current position.private RangerangeThe range to satisfy.private longstartIndexThe start index inside the source stream.private longtotalSizeThe total size of the source stream.
-
Constructor Summary
Constructors Constructor Description RangeInputStream(java.io.InputStream in, long totalSize, Range range)Constructs a stream exposing only a range of a given source stream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intavailable()voidmark(int readlimit)intread()intread(byte[] b, int off, int len)
-
-
-
Field Detail
-
position
private volatile long position
The current position.
-
range
private volatile Range range
The range to satisfy.
-
totalSize
private volatile long totalSize
The total size of the source stream.
-
startIndex
private final long startIndex
The start index inside the source stream.
-
endIndex
private final long endIndex
The end index inside the source stream.
-
availableSize
private volatile int availableSize
The range size available.
-
-
Constructor Detail
-
RangeInputStream
public RangeInputStream(java.io.InputStream in, long totalSize, Range range)Constructs a stream exposing only a range of a given source stream.- Parameters:
in- The source input stream.totalSize- The total size of the source stream.range- The range to satisfy.
-
-
Method Detail
-
available
public int available() throws java.io.IOException- Overrides:
availablein classjava.io.FilterInputStream- Throws:
java.io.IOException
-
mark
public void mark(int readlimit)
- Overrides:
markin classjava.io.FilterInputStream
-
read
public int read() throws java.io.IOException- Overrides:
readin classjava.io.FilterInputStream- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException- Overrides:
readin classjava.io.FilterInputStream- Throws:
java.io.IOException
-
-