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(long) 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(long numSlices)Creates a new SlicedInputStream -
Method Summary
-
Constructor Details
-
SlicedInputStream
protected SlicedInputStream(long numSlices)Creates a new SlicedInputStream- Parameters:
numSlices- the number of slices to consume
-
-
Method Details
-
openSlice
protected abstract java.io.InputStream openSlice(long 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
-