Interface ReadBuffer.BufferInput
- All Superinterfaces:
- DataInput,- com.oracle.coherence.common.io.InputStreaming,- InputStreaming
- All Known Implementing Classes:
- AbstractByteArrayReadBuffer.ByteArrayBufferInput,- AbstractReadBuffer.AbstractBufferInput,- ByteBufferReadBuffer.ByteBufferInput,- MultiBufferReadBuffer.MultiBufferInput,- WrapperBufferInput,- WrapperBufferInput.VersionAwareBufferInput
- Enclosing interface:
- ReadBuffer
- Author:
- cp 2005.01.18
- 
Method SummaryModifier and TypeMethodDescriptionintReturns the number of bytes that can be read (or skipped over) from this input stream without causing a blocking I/O condition to occur.voidclose()Close the InputStream and release any system resources associated with it.Get the ReadBuffer object that this BufferInput is reading from.default ObjectReturns an ObjectInputFilter (or null) that should be used by the caller to confirm / deny deserialization of a class encoded in this input stream.intDetermine the current offset of this BufferInput within the underlying ReadBuffer.voidmark(int cbReadLimit) Marks the current read position in the InputStream in order to support the stream to be later "rewound" (using theInputStreaming.reset()method) to the current position.booleanDetermine if this InputStream supports themark(int)andInputStreaming.reset()methods.booleanRead a boolean value.readBuffer(int cb) Readcbbytes and return them as a ReadBuffer object.bytereadByte()Read a byte value.charreadChar()Read a char value.doubleRead a double value.floatRead a float value.voidreadFully(byte[] ab) Readab.lengthbytes and store them inab.voidreadFully(byte[] ab, int of, int cb) Readcbbytes and store them inabstarting at offsetof.intreadInt()Read an int value.readLine()Reads the next "line" of text.longreadLong()Read a long value.intRead an int value using a variable-length storage format as described byWriteBuffer.BufferOutput.writePackedInt(int).longRead a long value using a variable-length storage format as described byWriteBuffer.BufferOutput.writePackedLong(long).Read a variable-length encoded UTF packed String.shortRead a short value.intRead an unsigned byte value.intRead an unsigned short value.readUTF()Reads a String value.default voidsetObjectInputFilter(Object oInputFilter) Set theObjectInputFilterfor this stream.voidsetOffset(int of) Specify the offset of the next byte to read from the underlying ReadBuffer.intskipBytes(int cb) Skips over up to the specified number of bytes of data.Methods inherited from interface com.oracle.coherence.common.io.InputStreamingread, read, read, reset, skip
- 
Method Details- 
availableReturns the number of bytes that can be read (or skipped over) from this input stream without causing a blocking I/O condition to occur. This method reflects the assumed implementation of various buffering InputStreams, which can guarantee non-blocking reads up to the extent of their buffers, but beyond that the read operations will have to read from some underlying (and potentially blocking) source.BufferInput implementations must implement this method to return the extent of the buffer that has not yet been read; in other words, the entire un-read portion of the buffer must be available. - Specified by:
- availablein interface- com.oracle.coherence.common.io.InputStreaming
- Returns:
- the number of bytes that can be read from this InputStream without blocking
- Throws:
- IOException- if an I/O error occurs
 
- 
closeClose the InputStream and release any system resources associated with it.BufferInput implementations do not pass this call down onto an underlying stream, if any. - Specified by:
- closein interface- com.oracle.coherence.common.io.InputStreaming
- Throws:
- IOException- if an I/O error occurs
 
- 
markvoid mark(int cbReadLimit) Marks the current read position in the InputStream in order to support the stream to be later "rewound" (using theInputStreaming.reset()method) to the current position. The caller passes in the maximum number of bytes that it expects to read before calling theInputStreaming.reset()method, thus indicating the upper bounds of the responsibility of the stream to be able to buffer what it has read in order to support this functionality.BufferInput implementations ignore the cbReadLimit; they must support an unlimited read limit, since they appear to the user as an input stream on top of a fully realized read buffer.- Specified by:
- markin interface- com.oracle.coherence.common.io.InputStreaming
- Parameters:
- cbReadLimit- the maximum number of bytes that caller expects the InputStream to be able to read before the mark position becomes invalid
 
- 
markSupportedboolean markSupported()Determine if this InputStream supports themark(int)andInputStreaming.reset()methods.BufferInput implementations must support the mark(int)andInputStreaming.reset()methods, so this method always returnstrue.- Specified by:
- markSupportedin interface- com.oracle.coherence.common.io.InputStreaming
- Returns:
- trueif this InputStream supports the mark and reset method;- falseotherwise
 
- 
readFullyReadab.lengthbytes and store them inab.This method blocks until input data is available, the end of the stream is detected, or an exception is thrown. - Specified by:
- readFullyin interface- DataInput
- Parameters:
- ab- the array to store the bytes which are read from the stream
- Throws:
- NullPointerException- if the passed array is null
- EOFException- if the stream is exhausted before the number of bytes indicated by the array length could be read
- IOException- if an I/O error occurs
 
- 
readFullyReadcbbytes and store them inabstarting at offsetof.This method blocks until input data is available, the end of the stream is detected, or an exception is thrown. - Specified by:
- readFullyin interface- DataInput
- Parameters:
- ab- the array to store the bytes which are read from the stream
- of- the offset into the array that the read bytes will be stored
- cb- the maximum number of bytes to read
- Throws:
- NullPointerException- if the passed array is null
- IndexOutOfBoundsException- if- ofor- cbis negative, or- of+cbis greater than the length of the- ab
- EOFException- if the stream is exhausted before the number of bytes indicated by the array length could be read
- IOException- if an I/O error occurs
 
- 
skipBytesSkips over up to the specified number of bytes of data. The number of bytes actually skipped over may be fewer than the number specified to skip, and may even be zero; this can be caused by an end-of-file condition, but can also occur even when there is data remaining to be read. As a result, the caller should check the return value from this method, which indicates the actual number of bytes skipped.- Specified by:
- skipBytesin interface- DataInput
- Parameters:
- cb- the maximum number of bytes to skip over
- Returns:
- the actual number of bytes that were skipped over
- Throws:
- IOException- if an I/O error occurs
 
- 
readBooleanRead a boolean value.This method is the counterpart for the DataOutput.writeBoolean(boolean)method.- Specified by:
- readBooleanin interface- DataInput
- Returns:
- either trueorfalse
- Throws:
- EOFException- if the value could not be read because no more data remains to be read
- IOException- if an I/O error occurs
 
- 
readByteRead a byte value.This method is the counterpart for the DataOutput.writeByte(int)method.- Specified by:
- readBytein interface- DataInput
- Returns:
- a bytevalue
- Throws:
- EOFException- if the value could not be read because no more data remains to be read
- IOException- if an I/O error occurs
 
- 
readUnsignedByteRead an unsigned byte value.This method is the counterpart for the DataOutput.writeByte(int)method when it is used with unsigned 8-bit values.- Specified by:
- readUnsignedBytein interface- DataInput
- Returns:
- an intvalue in the range 0x00 to 0xFF
- Throws:
- EOFException- if the value could not be read because no more data remains to be read
- IOException- if an I/O error occurs
 
- 
readShortRead a short value.This method is the counterpart for the DataOutput.writeShort(int)method.- Specified by:
- readShortin interface- DataInput
- Returns:
- a shortvalue
- Throws:
- EOFException- if the value could not be read because no more data remains to be read
- IOException- if an I/O error occurs
 
- 
readUnsignedShortRead an unsigned short value.This method is the counterpart for the DataOutput.writeShort(int)method when it is used with unsigned 16-bit values.- Specified by:
- readUnsignedShortin interface- DataInput
- Returns:
- an intvalue in the range of 0x0000 to 0xFFFF
- Throws:
- EOFException- if the value could not be read because no more data remains to be read
- IOException- if an I/O error occurs
 
- 
readCharRead a char value.This method is the counterpart for the DataOutput.writeChar(int)method.- Specified by:
- readCharin interface- DataInput
- Returns:
- a charvalue
- Throws:
- EOFException- if the value could not be read because no more data remains to be read
- IOException- if an I/O error occurs
 
- 
readIntRead an int value.This method is the counterpart for the DataOutput.writeInt(int)method.- Specified by:
- readIntin interface- DataInput
- Returns:
- an intvalue
- Throws:
- EOFException- if the value could not be read because no more data remains to be read
- IOException- if an I/O error occurs
 
- 
readLongRead a long value.This method is the counterpart for the DataOutput.writeLong(long)method.- Specified by:
- readLongin interface- DataInput
- Returns:
- a longvalue
- Throws:
- EOFException- if the value could not be read because no more data remains to be read
- IOException- if an I/O error occurs
 
- 
readFloatRead a float value.This method is the counterpart for the DataOutput.writeFloat(float)method.- Specified by:
- readFloatin interface- DataInput
- Returns:
- a floatvalue
- Throws:
- EOFException- if the value could not be read because no more data remains to be read
- IOException- if an I/O error occurs
 
- 
readDoubleRead a double value.This method is the counterpart for the DataOutput.writeDouble(double)method.- Specified by:
- readDoublein interface- DataInput
- Returns:
- a doublevalue
- Throws:
- EOFException- if the value could not be read because no more data remains to be read
- IOException- if an I/O error occurs
 
- 
readLineReads the next "line" of text.This method does not have a counterpart in the DataOutputinterface. Furthermore, this method is defined as operating on bytes and not on characters, and thus it should be selected for use only after careful consideration, as if it were deprecated (which it has been in java.io.DataInputStream).- Specified by:
- readLinein interface- DataInput
- Returns:
- a line of text as a String
- Throws:
- IOException- if an I/O error occurs.
 
- 
readUTFReads a String value.This method is the counterpart for the DataOutput.writeUTF(java.lang.String)method.- Specified by:
- readUTFin interface- DataInput
- Returns:
- a String value
- Throws:
- UTFDataFormatException- if the bytes that were read were not a valid UTF-8 encoded string
- EOFException- if the value could not be read because no more data remains to be read
- IOException- if an I/O error occurs
 
- 
getBufferReadBuffer getBuffer()Get the ReadBuffer object that this BufferInput is reading from.- Returns:
- the underlying ReadBuffer object
 
- 
readSafeUTFRead a variable-length encoded UTF packed String. The major differences between this implementation and DataInput is that this supports null String values and is not limited to 64KB UTF-encoded values.- Returns:
- a String value; may be null
- Throws:
- IOException- if an I/O error occurs
 
- 
readPackedIntRead an int value using a variable-length storage format as described byWriteBuffer.BufferOutput.writePackedInt(int).- Returns:
- an int value
- Throws:
- IOException- if an I/O error occurs
 
- 
readPackedLongRead a long value using a variable-length storage format as described byWriteBuffer.BufferOutput.writePackedLong(long).- Returns:
- a long value
- Throws:
- IOException- if an I/O error occurs
 
- 
readBufferReadcbbytes and return them as a ReadBuffer object.- Parameters:
- cb- the number of bytes to read
- Returns:
- a ReadBuffer object composed of cbbytes read from the BufferInput
- Throws:
- EOFException- if the stream is exhausted before the number of bytes indicated could be read
- IOException- if an I/O error occurs
 
- 
getOffsetint getOffset()Determine the current offset of this BufferInput within the underlying ReadBuffer.- Returns:
- the offset of the next byte to read from the ReadBuffer
 
- 
setOffsetvoid setOffset(int of) Specify the offset of the next byte to read from the underlying ReadBuffer.- Parameters:
- of- the offset of the next byte to read from the ReadBuffer
- Throws:
- IndexOutOfBoundsException- if- of < 0or- of > getBuffer().length()
 
- 
getObjectInputFilterReturns an ObjectInputFilter (or null) that should be used by the caller to confirm / deny deserialization of a class encoded in this input stream.Note: the return type is agnostic of the ObjectInputFilter to support various JDK versions. - Returns:
- null or an ObjectInputFilter that will permit (or not) the constructor of a class encoded in this stream.
- See Also:
 
- 
setObjectInputFilterSet theObjectInputFilterfor this stream.The filter's checkInput method is expected to be called for each class and reference deserialized in the stream. - Parameters:
- oInputFilter- an ObjectInputFilter instance as an Object to enable running with Java version 8 or higher, may be null
- Throws:
- IllegalStateException- if the filter factory returns- nullwhen the current filter is non-null, or if the filter has already been set.
- Implementation Requirements:
- This method can set the ObjectInputFilter once.
 In Java version 17 and greater, the stream's ObjectInputFilter is set to the filter returned by invoking the JVM-wide filter factorywith thegetObjectInputFilter()current filter} and thefilterparameter.It is not permitted to replace a non-nullfilter with anullfilter. If the current filter isnon-null, the value returned from the filter factory (or provided filter) must benon-null.
 
 
-