Class AbstractCloseableIteratorAsInputStream<T>
- java.lang.Object
-
- java.io.InputStream
-
- io.servicetalk.concurrent.internal.AbstractCloseableIteratorAsInputStream<T>
-
- Type Parameters:
T- Type of items emitted by theCloseableIterator.
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
- Direct Known Subclasses:
CloseableIteratorBufferAsInputStream
public abstract class AbstractCloseableIteratorAsInputStream<T> extends java.io.InputStream
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractCloseableIteratorAsInputStream(CloseableIterator<T> source)Create a new instance.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description intavailable()voidclose()protected abstract booleanhasLeftOver()Determine if there are left over bytes buffered.protected abstract booleanisClosed()Determine ifclose()has been called.protected abstract voidleftOverCheckReset()Check if the left over buffer needs to be reset.protected abstract intleftOverReadableBytes()Get the number of readable bytes in the left over buffer.protected abstract voidleftOverReadBytes(byte[] dst, int offset, int length)Read bytes from the left over buffer intob.protected abstract byteleftOverReadSingleByte()Read a single byte from the left over buffer.protected abstract voidleftOverReset()Reset the left over buffer.booleanmarkSupported()protected abstract voidnextLeftOver(CloseableIterator<T> iterator)Read the next element from theIterator.intread()intread(byte[] b, int off, int len)
-
-
-
Constructor Detail
-
AbstractCloseableIteratorAsInputStream
protected AbstractCloseableIteratorAsInputStream(CloseableIterator<T> source)
Create a new instance.- Parameters:
source- TheCloseableIteratorproviding data.
-
-
Method Detail
-
leftOverReadableBytes
protected abstract int leftOverReadableBytes()
Get the number of readable bytes in the left over buffer.- Returns:
- the number of readable bytes in the left over buffer.
-
leftOverReadBytes
protected abstract void leftOverReadBytes(byte[] dst, int offset, int length)Read bytes from the left over buffer intob.- Parameters:
dst- The destination to read to.offset- The offset to read into fordst.length- The amount of bytes to read from the left over buffer.
-
hasLeftOver
protected abstract boolean hasLeftOver()
Determine if there are left over bytes buffered.- Returns:
trueif there are left over bytes buffered.
-
leftOverCheckReset
protected abstract void leftOverCheckReset()
Check if the left over buffer needs to be reset.
-
leftOverReset
protected abstract void leftOverReset()
Reset the left over buffer.
-
nextLeftOver
protected abstract void nextLeftOver(CloseableIterator<T> iterator)
Read the next element from theIterator.- Parameters:
iterator- TheCloseableIteratorto get the next element from.
-
leftOverReadSingleByte
protected abstract byte leftOverReadSingleByte()
Read a single byte from the left over buffer.- Returns:
- a single byte from the left over buffer.
-
isClosed
protected abstract boolean isClosed()
Determine ifclose()has been called.- Returns:
trueifclose()has been called.
-
read
public final int read(byte[] b, int off, int len) throws java.io.IOException- Overrides:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
available
public final int available()
- Overrides:
availablein classjava.io.InputStream
-
close
public 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
-
markSupported
public final boolean markSupported()
- Overrides:
markSupportedin classjava.io.InputStream
-
read
public final int read() throws java.io.IOException- Specified by:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
-