Interface StreamSegmentMapper
SegmentedImageInputStream
class. An instance of the StreamSegmentMapper
interface provides the location and length of a segment of a source
ImageInputStream corresponding to the initial portion of
a desired segment of the output stream.
As an example, consider a mapping between a source
ImageInputStream src and a SegmentedImageInputStream
dst comprising bytes 100-149 and 200-249 of the source
stream. The dst stream has a reference to an instance
mapper of StreamSegmentMapper.
A call to dst.seek(0); dst.read(buf, 0, 10) will
result in a call to mapper.getStreamSegment(0, 10),
returning a new StreamSegment with a starting
position of 100 and a length of 10 (or less). This indicates that
in order to read bytes 0-9 of the segmented stream, bytes 100-109
of the source stream should be read.
A call to dst.seek(10); int nbytes = dst.read(buf, 0,
100) is somewhat more complex, since it will require data
from both segments of src. The method
mapper.getStreamSegment(10, 100) will be called. This
method will return a new StreamSegment with a starting
position of 110 and a length of 40 (or less). The length is
limited to 40 since a longer value would result in a read past the
end of the first segment. The read will stop after the first 40
bytes and an addition read or reads will be required to obtain the
data contained in the second segment.
-
Method Summary
Modifier and TypeMethodDescriptiongetStreamSegment(long pos, int length) Returns aStreamSegmentobject indicating the location of the initial portion of a desired segment in the source stream.voidgetStreamSegment(long pos, int length, StreamSegment seg) Sets the values of aStreamSegmentobject indicating the location of the initial portion of a desired segment in the source stream.
-
Method Details
-
getStreamSegment
Returns aStreamSegmentobject indicating the location of the initial portion of a desired segment in the source stream. The length of the returnedStreamSegmentmay be smaller than the desired length.- Parameters:
pos- The desired starting position in theSegmentedImageInputStream, as along.length- The desired segment length.- Returns:
- a StreamSegment object
-
getStreamSegment
Sets the values of aStreamSegmentobject indicating the location of the initial portion of a desired segment in the source stream. The length of the returnedStreamSegmentmay be smaller than the desired length.- Parameters:
pos- The desired starting position in theSegmentedImageInputStream, as along.length- The desired segment length.seg- AStreamSegmentobject to be overwritten.
-