public 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.
Modifier and Type | Method and Description |
---|---|
StreamSegment |
getStreamSegment(long pos,
int length)
Returns a
StreamSegment object indicating the
location of the initial portion of a desired segment in the
source stream. |
void |
getStreamSegment(long pos,
int length,
StreamSegment seg)
Sets the values of a
StreamSegment object
indicating the location of the initial portion of a desired
segment in the source stream. |
StreamSegment getStreamSegment(long pos, int length)
StreamSegment
object indicating the
location of the initial portion of a desired segment in the
source stream. The length of the returned
StreamSegment
may be smaller than the desired
length.pos
- The desired starting position in the
SegmentedImageInputStream
, as a long
.length
- The desired segment length.void getStreamSegment(long pos, int length, StreamSegment seg)
StreamSegment
object
indicating the location of the initial portion of a desired
segment in the source stream. The length of the returned
StreamSegment
may be smaller than the desired
length.pos
- The desired starting position in the
SegmentedImageInputStream
, as a long
.length
- The desired segment length.seg
- A StreamSegment
object to be overwritten.Copyright © 2015–2022 SCIFIO. All rights reserved.