| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| /** |
| * @author Rustem V. Rafikov |
| * @version $Revision: 1.2 $ |
| */ |
| |
| package javax.imageio.stream; |
| |
| import java.io.DataInput; |
| import java.io.IOException; |
| import java.nio.ByteOrder; |
| |
| /** |
| * The ImageInputStream represents input stream interface that is used by |
| * ImageReaders. |
| * |
| * @since Android 1.0 |
| */ |
| public interface ImageInputStream extends DataInput { |
| |
| /** |
| * Sets the specified byte order for reading of data values from this |
| * stream. |
| * |
| * @param byteOrder |
| * the byte order. |
| */ |
| void setByteOrder(ByteOrder byteOrder); |
| |
| /** |
| * Gets the byte order. |
| * |
| * @return the byte order. |
| */ |
| ByteOrder getByteOrder(); |
| |
| /** |
| * Reads a byte from the stream. |
| * |
| * @return the byte of the stream, or -1 for EOF indicating. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| int read() throws IOException; |
| |
| /** |
| * Reads number of bytes which is equal to the specified array's length and |
| * stores a result to this array. |
| * |
| * @param b |
| * the byte array. |
| * @return the number of read bytes, or -1 indicated EOF. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| int read(byte[] b) throws IOException; |
| |
| /** |
| * Reads the number of bytes specified by len parameter from the stream and |
| * stores a result to the specified array with the specified offset. |
| * |
| * @param b |
| * the byte array. |
| * @param off |
| * the offset. |
| * @param len |
| * the number of bytes to be read. |
| * @return the number of read bytes, or -1 indicated EOF. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| int read(byte[] b, int off, int len) throws IOException; |
| |
| /** |
| * Reads the number of bytes specified by len parameter from the stream, and |
| * modifies the specified IIOByteBuffer with the byte array, offset, and |
| * length. |
| * |
| * @param buf |
| * the IIOByteBuffer. |
| * @param len |
| * the number of bytes to be read. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| void readBytes(IIOByteBuffer buf, int len) throws IOException; |
| |
| /** |
| * Reads a byte from the stream and returns a boolean true value if it is |
| * non zero, false if it is zero. |
| * |
| * @return the boolean value for read byte. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| boolean readBoolean() throws IOException; |
| |
| /** |
| * Reads a byte from the stream and returns its value as signed byte. |
| * |
| * @return the signed byte value for read byte. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| byte readByte() throws IOException; |
| |
| /** |
| * Reads a byte from the stream and returns its value as an integer. |
| * |
| * @return the unsigned byte value for read byte as an integer. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| int readUnsignedByte() throws IOException; |
| |
| /** |
| * Reads 2 bytes from the stream, and returns the result as a short. |
| * |
| * @return the signed short value from the stream. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| short readShort() throws IOException; |
| |
| /** |
| * Reads 2 bytes from the stream and returns its value as an unsigned short. |
| * |
| * @return a unsigned short value coded in an integer. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| int readUnsignedShort() throws IOException; |
| |
| /** |
| * Reads 2 bytes from the stream and returns their unsigned char value. |
| * |
| * @return the unsigned char value. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| char readChar() throws IOException; |
| |
| /** |
| * Reads 4 bytes from the stream, and returns the result as an integer. |
| * |
| * @return the signed integer value from the stream. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| int readInt() throws IOException; |
| |
| /** |
| * Reads 4 bytes from the stream and returns its value as long. |
| * |
| * @return the unsigned integer value as long. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| long readUnsignedInt() throws IOException; |
| |
| /** |
| * Reads 8 bytes from the stream, and returns the result as a long. |
| * |
| * @return the long value from the stream. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| long readLong() throws IOException; |
| |
| /** |
| * Reads 4 bytes from the stream, and returns the result as a float. |
| * |
| * @return the float value from the stream. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| float readFloat() throws IOException; |
| |
| /** |
| * Reads 8 bytes from the stream, and returns the result as a double. |
| * |
| * @return the double value from the stream. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| double readDouble() throws IOException; |
| |
| /** |
| * Reads a line from the stream. |
| * |
| * @return the string contained the line from the stream. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| String readLine() throws IOException; |
| |
| /** |
| * Reads bytes from the stream in a string that has been encoded in a |
| * modified UTF-8 format. |
| * |
| * @return the string read from stream and modified UTF-8 format. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| String readUTF() throws IOException; |
| |
| /** |
| * Reads the specified number of bytes from the stream, and stores the |
| * result into the specified array starting at the specified index offset. |
| * |
| * @param b |
| * the byte array. |
| * @param off |
| * the offset. |
| * @param len |
| * the number of bytes to be read. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| void readFully(byte[] b, int off, int len) throws IOException; |
| |
| /** |
| * Reads number of bytes from the stream which is equal to the specified |
| * array's length, and stores them into this array. |
| * |
| * @param b |
| * the byte array. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| void readFully(byte[] b) throws IOException; |
| |
| /** |
| * Reads the specified number of shorts from the stream, and stores the |
| * result into the specified array starting at the specified index offset. |
| * |
| * @param s |
| * the short array. |
| * @param off |
| * the offset. |
| * @param len |
| * the number of shorts to be read. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| void readFully(short[] s, int off, int len) throws IOException; |
| |
| /** |
| * Reads the specified number of chars from the stream, and stores the |
| * result into the specified array starting at the specified index offset. |
| * |
| * @param c |
| * the char array. |
| * @param off |
| * the offset. |
| * @param len |
| * the number of chars to be read. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| void readFully(char[] c, int off, int len) throws IOException; |
| |
| /** |
| * Reads the specified number of integer from the stream, and stores the |
| * result into the specified array starting at the specified index offset. |
| * |
| * @param i |
| * the integer array. |
| * @param off |
| * the offset. |
| * @param len |
| * the number of integer to be read. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| void readFully(int[] i, int off, int len) throws IOException; |
| |
| /** |
| * Reads the specified number of longs from the stream, and stores the |
| * result into the specified array starting at the specified index offset. |
| * |
| * @param l |
| * the long array. |
| * @param off |
| * the offset. |
| * @param len |
| * the number of longs to be read. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| void readFully(long[] l, int off, int len) throws IOException; |
| |
| /** |
| * Reads the specified number of floats from the stream, and stores the |
| * result into the specified array starting at the specified index offset. |
| * |
| * @param f |
| * the float array. |
| * @param off |
| * the offset. |
| * @param len |
| * the number of floats to be read. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| void readFully(float[] f, int off, int len) throws IOException; |
| |
| /** |
| * Reads the specified number of doubles from the stream, and stores the |
| * result into the specified array starting at the specified index offset. |
| * |
| * @param d |
| * the double array. |
| * @param off |
| * the offset. |
| * @param len |
| * the number of doubles to be read. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| void readFully(double[] d, int off, int len) throws IOException; |
| |
| /** |
| * Gets the stream position. |
| * |
| * @return the stream position. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| long getStreamPosition() throws IOException; |
| |
| /** |
| * Gets the bit offset. |
| * |
| * @return the bit offset. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| int getBitOffset() throws IOException; |
| |
| /** |
| * Sets the bit offset to an integer between 0 and 7. |
| * |
| * @param bitOffset |
| * the bit offset. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| void setBitOffset(int bitOffset) throws IOException; |
| |
| /** |
| * Reads a bit from the stream and returns the value 0 or 1. |
| * |
| * @return the value of single bit: 0 or 1. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| int readBit() throws IOException; |
| |
| /** |
| * Read the specified number of bits and returns their values as long. |
| * |
| * @param numBits |
| * the number of bits to be read. |
| * @return the bit string as a long. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| long readBits(int numBits) throws IOException; |
| |
| /** |
| * Returns the length of the stream. |
| * |
| * @return the length of the stream, or -1 if unknown. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| long length() throws IOException; |
| |
| /** |
| * Skips the specified number of bytes by moving stream position. |
| * |
| * @param n |
| * the number of bytes. |
| * @return the actual skipped number of bytes. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| int skipBytes(int n) throws IOException; |
| |
| /** |
| * Skips the specified number of bytes by moving stream position. |
| * |
| * @param n |
| * the number of bytes. |
| * @return the actual skipped number of bytes. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| long skipBytes(long n) throws IOException; |
| |
| /** |
| * Sets the current stream position to the specified location. |
| * |
| * @param pos |
| * a file pointer position. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| void seek(long pos) throws IOException; |
| |
| /** |
| * Marks a position in the stream to be returned to by a subsequent call to |
| * reset. |
| */ |
| void mark(); |
| |
| /** |
| * Returns the file pointer to its previous position. |
| * |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| void reset() throws IOException; |
| |
| /** |
| * Flushes the initial position in this stream prior to the specified stream |
| * position. |
| * |
| * @param pos |
| * the position. |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| void flushBefore(long pos) throws IOException; |
| |
| /** |
| * Flushes the initial position in this stream prior to the current stream |
| * position. |
| * |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| void flush() throws IOException; |
| |
| /** |
| * Gets the flushed position. |
| * |
| * @return the flushed position. |
| */ |
| long getFlushedPosition(); |
| |
| /** |
| * Returns true if this ImageInputStream caches data in order to allow |
| * seeking backwards. |
| * |
| * @return true, if this ImageInputStream caches data in order to allow |
| * seeking backwards, false otherwise. |
| */ |
| boolean isCached(); |
| |
| /** |
| * Returns true if this ImageInputStream caches data in order to allow |
| * seeking backwards, and keeps it in memory. |
| * |
| * @return true, if this ImageInputStream caches data in order to allow |
| * seeking backwards, and keeps it in memory. |
| */ |
| boolean isCachedMemory(); |
| |
| /** |
| * Returns true if this ImageInputStream caches data in order to allow |
| * seeking backwards, and keeps it in a temporary file. |
| * |
| * @return true, if this ImageInputStream caches data in order to allow |
| * seeking backwards, and keeps it in a temporary file. |
| */ |
| boolean isCachedFile(); |
| |
| /** |
| * Closes this stream. |
| * |
| * @throws IOException |
| * if an I/O exception has occurred. |
| */ |
| void close() throws IOException; |
| } |