Skip navigation links

Oracle® Coherence Java API Reference
v3.5.1

E15583-01


com.tangosol.io
Class MultiBufferReadBuffer.MultiBufferInput

java.lang.Object
  extended by java.io.InputStream
      extended by com.tangosol.io.AbstractReadBuffer.AbstractBufferInput
          extended by com.tangosol.io.MultiBufferReadBuffer.MultiBufferInput

All Implemented Interfaces:
InputStreaming, ReadBuffer.BufferInput, java.io.Closeable, java.io.DataInput
Enclosing class:
MultiBufferReadBuffer

public class MultiBufferReadBuffer.MultiBufferInput
extends AbstractReadBuffer.AbstractBufferInput

An implementation of the BufferInput interface that is backed by a series of the underlying ReadBuffer BufferInput objects.


Field Summary
protected  boolean m_fDestructive
          True if the BufferInput set to self-destruct.

 

Constructor Summary
MultiBufferReadBuffer.MultiBufferInput()
          Default constructor.
MultiBufferReadBuffer.MultiBufferInput(boolean fDestructive)
          Default constructor.

 

Method Summary
protected  void adjust(int cb)
          Adjust the offset of this BufferOutput based on a write that by-passed this BufferOutput's own super-class implementation that is responsible for maintaining the offset.
protected  ReadBuffer.BufferInput getIn()
          Obtain the underlying BufferOutput.
 int read()
          Read the next byte of data from the InputStream.
 int read(byte[] ab, int of, int cb)
          Read up to cb bytes from the input stream and store them into the passed array ab starting at offset of.
 ReadBuffer readBuffer(int cb)
          Read cb bytes and return them as a ReadBuffer object.
 byte readByte()
          Read a byte value.
 char readChar()
          Read a char value.
 double readDouble()
          Read a double value.
 float readFloat()
          Read a float value.
 int readInt()
          Read an int value.
 long readLong()
          Read a long value.
 int readPackedInt()
          Read an int value using a variable-length storage format as described by WriteBuffer.BufferOutput.writePackedInt(int).
 long readPackedLong()
          Read a long value using a variable-length storage format as described by WriteBuffer.BufferOutput.writePackedLong(long).
 java.lang.String readSafeUTF()
          Read 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.
 short readShort()
          Read a short value.
 int readUnsignedShort()
          Read an unsigned short value.
 java.lang.String readUTF()
          Reads a String value.
 void reset()
          Rewind this stream to the position at the time the AbstractReadBuffer.AbstractBufferInput.mark(int) method was last called on this InputStream.
 void setOffset(int of)
          Specify the offset of the next byte to read from the underlying ReadBuffer.
 int skipBytes(int cb)
          Skips over up to the specified number of bytes of data.
protected  void sync()
          After traversing an underlying WriteBuffer boundary, or otherwise changing the offset significantly, sync between this BufferOutput's absolute position and an underlying BufferOutput's relative position.

 

Methods inherited from class com.tangosol.io.AbstractReadBuffer.AbstractBufferInput
available, close, convertUTF, getBuffer, getCharBuf, getMarkInternal, getOffset, mark, markSupported, read, readBoolean, readFully, readFully, readLine, readUnsignedByte, readUTF, setMarkInternal, setOffsetInternal, skip

 

Field Detail

m_fDestructive

protected boolean m_fDestructive
True if the BufferInput set to self-destruct.

Constructor Detail

MultiBufferReadBuffer.MultiBufferInput

public MultiBufferReadBuffer.MultiBufferInput()
Default constructor.

MultiBufferReadBuffer.MultiBufferInput

public MultiBufferReadBuffer.MultiBufferInput(boolean fDestructive)
Default constructor.
Parameters:
fDestructive - true iff the stream should self-destruct as it is advanced

Method Detail

read

public int read()
         throws java.io.IOException
Read the next byte of data from the InputStream. The value byte is returned as an int in the range 0 to 255. If the end of the stream has been reached, the value -1 is returned.

This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.

Specified by:
read in interface InputStreaming
Overrides:
read in class AbstractReadBuffer.AbstractBufferInput
Returns:
the next byte of data, or -1 if the end of the stream has been reached
Throws:
java.io.IOException - if an I/O error occurs

read

public int read(byte[] ab,
                int of,
                int cb)
         throws java.io.IOException
Read up to cb bytes from the input stream and store them into the passed array ab starting at offset of. The number of bytes actually read is returned.

This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.

Specified by:
read in interface InputStreaming
Overrides:
read in class AbstractReadBuffer.AbstractBufferInput
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
Returns:
the number of bytes read from the stream, or -1 if no bytes were read from the stream because the end of the stream had been reached
Throws:
java.io.IOException - if an I/O error occurs

reset

public void reset()
           throws java.io.IOException
Rewind this stream to the position at the time the AbstractReadBuffer.AbstractBufferInput.mark(int) method was last called on this InputStream. If the InputStream cannot fulfill this contract, it should throw an IOException.
Specified by:
reset in interface InputStreaming
Overrides:
reset in class AbstractReadBuffer.AbstractBufferInput
Throws:
java.io.IOException - if an I/O error occurs, for example if this has not been marked or if the mark has been invalidated

skipBytes

public int skipBytes(int cb)
              throws java.io.IOException
Skips 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:
skipBytes in interface java.io.DataInput
Overrides:
skipBytes in class AbstractReadBuffer.AbstractBufferInput
Parameters:
cb - the maximum number of bytes to skip over
Returns:
the actual number of bytes that were skipped over
Throws:
java.io.IOException - if an I/O error occurs

readByte

public byte readByte()
              throws java.io.IOException
Read a byte value.

This method is the counterpart for the DataOutput.writeByte(int) method.

Specified by:
readByte in interface java.io.DataInput
Overrides:
readByte in class AbstractReadBuffer.AbstractBufferInput
Returns:
a byte value
Throws:
java.io.EOFException - if the value could not be read because no more data remains to be read
java.io.IOException - if an I/O error occurs

readShort

public short readShort()
                throws java.io.IOException
Read a short value.

This method is the counterpart for the DataOutput.writeShort(int) method.

Specified by:
readShort in interface java.io.DataInput
Overrides:
readShort in class AbstractReadBuffer.AbstractBufferInput
Returns:
a short value
Throws:
java.io.EOFException - if the value could not be read because no more data remains to be read
java.io.IOException - if an I/O error occurs

readUnsignedShort

public int readUnsignedShort()
                      throws java.io.IOException
Read 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:
readUnsignedShort in interface java.io.DataInput
Overrides:
readUnsignedShort in class AbstractReadBuffer.AbstractBufferInput
Returns:
an int value in the range of 0x0000 to 0xFFFF
Throws:
java.io.EOFException - if the value could not be read because no more data remains to be read
java.io.IOException - if an I/O error occurs

readChar

public char readChar()
              throws java.io.IOException
Read a char value.

This method is the counterpart for the DataOutput.writeChar(int) method.

Specified by:
readChar in interface java.io.DataInput
Overrides:
readChar in class AbstractReadBuffer.AbstractBufferInput
Returns:
a char value
Throws:
java.io.EOFException - if the value could not be read because no more data remains to be read
java.io.IOException - if an I/O error occurs

readInt

public int readInt()
            throws java.io.IOException
Read an int value.

This method is the counterpart for the DataOutput.writeInt(int) method.

Specified by:
readInt in interface java.io.DataInput
Overrides:
readInt in class AbstractReadBuffer.AbstractBufferInput
Returns:
an int value
Throws:
java.io.EOFException - if the value could not be read because no more data remains to be read
java.io.IOException - if an I/O error occurs

readLong

public long readLong()
              throws java.io.IOException
Read a long value.

This method is the counterpart for the DataOutput.writeLong(long) method.

Specified by:
readLong in interface java.io.DataInput
Overrides:
readLong in class AbstractReadBuffer.AbstractBufferInput
Returns:
a long value
Throws:
java.io.EOFException - if the value could not be read because no more data remains to be read
java.io.IOException - if an I/O error occurs

readFloat

public float readFloat()
                throws java.io.IOException
Read a float value.

This method is the counterpart for the DataOutput.writeFloat(float) method.

Specified by:
readFloat in interface java.io.DataInput
Overrides:
readFloat in class AbstractReadBuffer.AbstractBufferInput
Returns:
a float value
Throws:
java.io.EOFException - if the value could not be read because no more data remains to be read
java.io.IOException - if an I/O error occurs

readDouble

public double readDouble()
                  throws java.io.IOException
Read a double value.

This method is the counterpart for the DataOutput.writeDouble(double) method.

Specified by:
readDouble in interface java.io.DataInput
Overrides:
readDouble in class AbstractReadBuffer.AbstractBufferInput
Returns:
a double value
Throws:
java.io.EOFException - if the value could not be read because no more data remains to be read
java.io.IOException - if an I/O error occurs

readUTF

public java.lang.String readUTF()
                         throws java.io.IOException
Reads a String value.

This method is the counterpart for the DataOutput.writeUTF(java.lang.String) method.

Specified by:
readUTF in interface java.io.DataInput
Overrides:
readUTF in class AbstractReadBuffer.AbstractBufferInput
Returns:
a String value
Throws:
java.io.UTFDataFormatException - if the bytes that were read were not a valid UTF-8 encoded string
java.io.EOFException - if the value could not be read because no more data remains to be read
java.io.IOException - if an I/O error occurs

readSafeUTF

public java.lang.String readSafeUTF()
                             throws java.io.IOException
Read 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.
Specified by:
readSafeUTF in interface ReadBuffer.BufferInput
Overrides:
readSafeUTF in class AbstractReadBuffer.AbstractBufferInput
Returns:
a String value; may be null
Throws:
java.io.IOException - if an I/O error occurs

readPackedInt

public int readPackedInt()
                  throws java.io.IOException
Read an int value using a variable-length storage format as described by WriteBuffer.BufferOutput.writePackedInt(int).
Specified by:
readPackedInt in interface ReadBuffer.BufferInput
Overrides:
readPackedInt in class AbstractReadBuffer.AbstractBufferInput
Returns:
an int value
Throws:
java.io.IOException - if an I/O error occurs

readPackedLong

public long readPackedLong()
                    throws java.io.IOException
Read a long value using a variable-length storage format as described by WriteBuffer.BufferOutput.writePackedLong(long).
Specified by:
readPackedLong in interface ReadBuffer.BufferInput
Overrides:
readPackedLong in class AbstractReadBuffer.AbstractBufferInput
Returns:
a long value
Throws:
java.io.IOException - if an I/O error occurs

readBuffer

public ReadBuffer readBuffer(int cb)
                      throws java.io.IOException
Read cb bytes and return them as a ReadBuffer object.
Specified by:
readBuffer in interface ReadBuffer.BufferInput
Overrides:
readBuffer in class AbstractReadBuffer.AbstractBufferInput
Parameters:
cb - the number of bytes to read
Returns:
a ReadBuffer object composed of cb bytes read from the BufferInput
Throws:
java.io.EOFException - if the stream is exhausted before the number of bytes indicated could be read
java.io.IOException - if an I/O error occurs

setOffset

public void setOffset(int of)
Specify the offset of the next byte to read from the underlying ReadBuffer.
Specified by:
setOffset in interface ReadBuffer.BufferInput
Overrides:
setOffset in class AbstractReadBuffer.AbstractBufferInput
Parameters:
of - the offset of the next byte to read from the ReadBuffer

getIn

protected ReadBuffer.BufferInput getIn()
Obtain the underlying BufferOutput.
Returns:
the underlying BufferOutput

adjust

protected void adjust(int cb)
Adjust the offset of this BufferOutput based on a write that by-passed this BufferOutput's own super-class implementation that is responsible for maintaining the offset.
Parameters:
cb - the number of bytes that were just written directly to the underlying BufferOutput

sync

protected void sync()
After traversing an underlying WriteBuffer boundary, or otherwise changing the offset significantly, sync between this BufferOutput's absolute position and an underlying BufferOutput's relative position.

Skip navigation links

Oracle® Coherence Java API Reference
v3.5.1

E15583-01


Copyright © 2000, 2009, Oracle. All rights reserved.