Package org.forgerock.http.io
Class BranchingInputStream
- java.lang.Object
-
- java.io.InputStream
-
- org.forgerock.http.io.BranchingInputStream
-
- All Implemented Interfaces:
Closeable,AutoCloseable
- Direct Known Subclasses:
FileBranchingStream
public abstract class BranchingInputStream extends InputStream
An input stream that can branch into separate input streams to perform divergent reads.
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedBranchingInputStream(BranchingInputStream parent)Initialise theBranchingInputStreamwith the specified parent.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract BranchingInputStreambranch()Creates a new branch at this stream's current position.abstract voidclose()Closes this branching stream and all of the branches created from it.abstract BranchingInputStreamcopy()Creates a twin of this stream at this stream's current position.BranchingInputStreamparent()Returns the parent branching input stream from which this branch was created, ornullif this is the trunk.-
Methods inherited from class java.io.InputStream
available, mark, markSupported, nullInputStream, read, read, read, readAllBytes, readNBytes, readNBytes, reset, skip, transferTo
-
-
-
-
Constructor Detail
-
BranchingInputStream
protected BranchingInputStream(BranchingInputStream parent)
Initialise theBranchingInputStreamwith the specified parent.- Parameters:
parent- The parent stream, or null if it is the trunk.
-
-
Method Detail
-
branch
public abstract BranchingInputStream branch() throws IOException
Creates a new branch at this stream's current position. The returned stream will have this stream as its parent.- Returns:
- a new branching stream, in the same position as this branch.
- Throws:
IOException- if an I/O exception occurs.
-
copy
public abstract BranchingInputStream copy() throws IOException
Creates a twin of this stream at this stream's current position. The returned stream will have the same parent as this stream.- Returns:
- a new twin stream, in the same position as this branch.
- Throws:
IOException- if an I/O exception occurs.
-
close
public abstract void close() throws IOExceptionCloses this branching stream and all of the branches created from it.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classInputStream- Throws:
IOException- if an I/O exception occurs.
-
parent
public BranchingInputStream parent()
Returns the parent branching input stream from which this branch was created, ornullif this is the trunk.- Returns:
- the parent branching input stream from which this branch was
created, or
nullif this is the trunk.
-
-