Class ReplayableInputStream
- java.lang.Object
-
- java.io.InputStream
-
- org.apache.manifoldcf.connectorcommon.fuzzyml.ReplayableInputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
public class ReplayableInputStream extends java.io.InputStream
This class represents an input stream wraps another, and that can be reset and played over. It accomplishes this by buffering all bytes that go past, and then plays back from that buffer after the reset. The caller, at some point, is expected to signal that no further restarts will occur, which ends all attempts at buffering.
-
-
Field Summary
Fields Modifier and Type Field Description protected int
bytePosition
protected ByteBuffer
bytes
protected boolean
doBuffering
protected java.io.InputStream
wrappedStream
-
Constructor Summary
Constructors Constructor Description ReplayableInputStream(java.io.InputStream wrappedStream)
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
int
read()
int
read(byte[] b, int off, int len)
void
restart(boolean lastRestart)
long
skip(long n)
-
-
-
Field Detail
-
bytes
protected final ByteBuffer bytes
-
wrappedStream
protected final java.io.InputStream wrappedStream
-
bytePosition
protected int bytePosition
-
doBuffering
protected boolean doBuffering
-
-
Method Detail
-
restart
public void restart(boolean lastRestart)
-
read
public int read() throws java.io.IOException
- Specified by:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException
- Overrides:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
skip
public long skip(long n) throws java.io.IOException
- Overrides:
skip
in classjava.io.InputStream
- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classjava.io.InputStream
- Throws:
java.io.IOException
-
-