CoherenceTM v3.3
Copyright© 2000-2007 by Oracle Corporation

com.tangosol.io
Class AbstractReadBuffer

java.lang.Object
  extended by com.tangosol.util.Base
      extended by com.tangosol.io.AbstractReadBuffer
All Implemented Interfaces:
ReadBuffer, Cloneable
Direct Known Subclasses:
AbstractByteArrayReadBuffer, ByteBufferReadBuffer, MultiBufferReadBuffer

public abstract class AbstractReadBuffer
extends Base
implements ReadBuffer

Abstract base implementation of the ReadBuffer interface.

Author:
cp 2006.04.17

Nested Class Summary
 class AbstractReadBuffer.AbstractBufferInput
          This is an implementation of the BufferInput interface that delegates its work back to its ReadBuffer.
 
Nested classes/interfaces inherited from interface com.tangosol.io.ReadBuffer
ReadBuffer.BufferInput
 
Field Summary
static Binary NO_BINARY
          An empty Binary object.
static byte[] NO_BYTES
          An empty byte array (by definition immutable).
 
Constructor Summary
AbstractReadBuffer()
           
 
Method Summary
protected  void checkBounds(int of, int cb)
          Check if the specified read is within bounds.
 Object clone()
          Create a clone of this ReadBuffer object.
 boolean equals(Object o)
          Compare two ReadBuffer objects for equality.
 ReadBuffer.BufferInput getBufferInput()
          Get a BufferInput object to read data from this buffer.
 ReadBuffer getReadBuffer(int of, int cb)
          Obtain a ReadBuffer for a portion of this ReadBuffer.
protected  ReadBuffer.BufferInput instantiateBufferInput()
          Factory method: Instantiate a BufferInput object to read data from the ReadBuffer.
protected abstract  ReadBuffer instantiateReadBuffer(int of, int cb)
          Factory method: Instantiate a ReadBuffer for a portion of this ReadBuffer.
 Binary toBinary()
          Returns a new Binary object that holds the complete contents of this ReadBuffer.
 Binary toBinary(int of, int cb)
          Returns a Binary object that holds the specified portion of this ReadBuffer.
 byte[] toByteArray()
          Get the contents of the ReadBuffer as a byte array.
 byte[] toByteArray(int of, int cb)
          Get a portion of the contents of the ReadBuffer as a byte array.
 
Methods inherited from interface com.tangosol.io.ReadBuffer
byteAt, copyBytes, length
 

Field Detail

NO_BYTES

public static final byte[] NO_BYTES
An empty byte array (by definition immutable).


NO_BINARY

public static final Binary NO_BINARY
An empty Binary object.

Constructor Detail

AbstractReadBuffer

public AbstractReadBuffer()
Method Detail

getBufferInput

public ReadBuffer.BufferInput getBufferInput()
Get a BufferInput object to read data from this buffer. Note that each call to this method will return a new BufferInput object, with the possible exception being that a zero-length ReadBuffer could always return the same instance (since there is nothing to read).

Specified by:
getBufferInput in interface ReadBuffer
Returns:
a BufferInput that is reading from this buffer starting at offset zero

getReadBuffer

public ReadBuffer getReadBuffer(int of,
                                int cb)
Obtain a ReadBuffer for a portion of this ReadBuffer.

Specified by:
getReadBuffer in interface ReadBuffer
Parameters:
of - the beginning index, inclusive
cb - the number of bytes to include in the resulting ReadBuffer
Returns:
a ReadBuffer that represents a portion of this ReadBuffer

toByteArray

public byte[] toByteArray()
Get the contents of the ReadBuffer as a byte array.

This is the equivalent of toByteArray(0, length()).

Specified by:
toByteArray in interface ReadBuffer
Returns:
a byte[] with the contents of this Binary object

toByteArray

public byte[] toByteArray(int of,
                          int cb)
Get a portion of the contents of the ReadBuffer as a byte array.

This is the equivalent of getReadBuffer(of, cb).toByteArray().

Specified by:
toByteArray in interface ReadBuffer
Parameters:
of - the beginning index, inclusive
cb - the number of bytes to include in the resulting byte[]
Returns:
a byte[] containing the specified portion of this ReadBuffer

toBinary

public Binary toBinary()
Returns a new Binary object that holds the complete contents of this ReadBuffer.

This is the equivalent of toBinary(0, length()).

Specified by:
toBinary in interface ReadBuffer
Returns:
the contents of this ReadBuffer as a Binary object

toBinary

public Binary toBinary(int of,
                       int cb)
Returns a Binary object that holds the specified portion of this ReadBuffer.

This is the equivalent of getReadBuffer(of, cb).toBinary().

Specified by:
toBinary in interface ReadBuffer
Parameters:
of - the beginning index, inclusive
cb - the number of bytes to include in the Binary object
Returns:
a Binary object containing the specified portion of this ReadBuffer

equals

public boolean equals(Object o)
Compare two ReadBuffer objects for equality.

Parameters:
o - a ReadBuffer object
Returns:
true iff the other ReadBuffer is identical to this

clone

public Object clone()
Create a clone of this ReadBuffer object.

Specified by:
clone in interface ReadBuffer
Returns:
a ReadBuffer object with the same contents as this ReadBuffer object

instantiateReadBuffer

protected abstract ReadBuffer instantiateReadBuffer(int of,
                                                    int cb)
Factory method: Instantiate a ReadBuffer for a portion of this ReadBuffer.

Parameters:
of - the beginning index, inclusive
cb - the number of bytes to include in the resulting ReadBuffer
Returns:
a ReadBuffer that represents a portion of this ReadBuffer

instantiateBufferInput

protected ReadBuffer.BufferInput instantiateBufferInput()
Factory method: Instantiate a BufferInput object to read data from the ReadBuffer.

Returns:
a new BufferInput reading from this ReadBuffer

checkBounds

protected void checkBounds(int of,
                           int cb)
Check if the specified read is within bounds.

Parameters:
of - the absolute offset of the read operation
cb - the length in bytes of the read operation
Throws:
IndexOutOfBoundsException - if the specified read is not within bounds

CoherenceTM v3.3
Copyright© 2000-2007 by Oracle Corporation