Class SlicedInputStream
java.lang.Object
java.io.InputStream
org.elasticsearch.index.snapshots.blobstore.SlicedInputStream
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
public abstract class SlicedInputStream
extends java.io.InputStream
A
SlicedInputStream is a logical
concatenation one or more input streams. In contrast to the JDKs
SequenceInputStream this stream doesn't require the instantiation
of all logical sub-streams ahead of time. Instead, openSlice(int) is called
if a new slice is required. Each slice is closed once it's been fully consumed or if
close is called before.-
Constructor Summary
Constructors Modifier Constructor Description protectedSlicedInputStream(int numSlices)Creates a new SlicedInputStream -
Method Summary
Methods inherited from class java.io.InputStream
mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, skipNBytes, transferToMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
SlicedInputStream
protected SlicedInputStream(int numSlices)Creates a new SlicedInputStream- Parameters:
numSlices- the number of slices to consume
-
-
Method Details
-
openSlice
protected abstract java.io.InputStream openSlice(int slice) throws java.io.IOExceptionCalled for each logical slice given a zero based slice ordinal.- Throws:
java.io.IOException
-
read
public final int read() throws java.io.IOException- Specified by:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
read
public final int read(byte[] buffer, int offset, int length) throws java.io.IOException- Overrides:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
close
public final void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classjava.io.InputStream- Throws:
java.io.IOException
-
available
public final int available() throws java.io.IOException- Overrides:
availablein classjava.io.InputStream- Throws:
java.io.IOException
-