Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.sun.media.imageio.stream
Interface StreamSegmentMapper

public interface StreamSegmentMapper

An interface for use with the `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
`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.

Method Detail

### getStreamSegment

    public 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. The length of the returned `StreamSegment` may be smaller than the desired length.

  Parameters:
    `pos` - The desired starting position in the `SegmentedImageInputStream`, as a `long`.
    `length` - The desired segment length.

### getStreamSegment

    public 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. The length of the returned `StreamSegment` may be smaller than the desired length.

  Parameters:
    `pos` - The desired starting position in the `SegmentedImageInputStream`, as a `long`.
    `length` - The desired segment length.
    `seg` - A `StreamSegment` object to be overwritten.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD