Overview | Package | Class | Tree | Index | Help

Oracle® Coherence Java API Reference
v3.5.3
E15583-01
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.tangosol.io
Class AbstractByteArrayReadBuffer

    java.lang.Object
      com.tangosol.util.Base
          com.tangosol.io.AbstractReadBuffer
              com.tangosol.io.AbstractByteArrayReadBuffer

All Implemented Interfaces:
  ReadBuffer, java.lang.Cloneable

Direct Known Subclasses:
  Binary, ByteArrayReadBuffer

    public abstract class AbstractByteArrayReadBuffer

extends AbstractReadBuffer

The AbstractByteArrayReadBuffer abstract class is intended to serve as a base class for the following:

1. the pre-existing Binary class
2. a new byte[] based class that does not attempt to add the immutability aspect provided by the Binary class
3. a new ByteBuffer based class that will work with Java NIO

This implementation is not intended to be thread safe.

Author:
  cp 2005.01.18

Nested Class Summary
`class` | `AbstractByteArrayReadBuffer.ByteArrayBufferInput` This is a simple implementation of the BufferInput interface on top of a byte array.

Nested classes/interfaces inherited from class com.tangosol.io.AbstractReadBuffer
`AbstractReadBuffer.AbstractBufferInput`

Nested classes/interfaces inherited from interface com.tangosol.io.ReadBuffer
`ReadBuffer.BufferInput`

Field Summary
`protected byte[]` | `m_ab` The byte array that holds the binary data.
`protected int` | `m_cb` Number of bytes in the byte array that belong to this ReadBuffer object.
`protected int` | `m_of` Offset into the byte array at which the binary data is located.

Fields inherited from class com.tangosol.io.AbstractReadBuffer
`NO_BINARY, NO_BYTES`

Constructor Summary
`protected` | `AbstractByteArrayReadBuffer()` Default constructor; intended for deserialization use by subclasses.
`protected` | `AbstractByteArrayReadBuffer(byte[] ab, int of, int cb)` Construct an AbstractByteArrayReadBuffer on a portion of a byte array.

Method Summary
`byte` | `byteAt(int of)` Returns the byte at the specified offset.
`void` | `copyBytes(int ofBegin, int ofEnd, byte[] abDest, int ofDest)` Copies bytes from this ReadBuffer into the destination byte array.
`protected ReadBuffer.BufferInput` | `instantiateBufferInput()` Factory method: Instantiate a BufferInput object to read data from the ReadBuffer.
`protected abstract boolean` | `isByteArrayPrivate()` Determine if the underlying byte[] should be treated as private data.
`int` | `length()` Determine the length of the buffer.
`protected void` | `resetRange(int of, int cb)` Reset the portion of the byte array the ReadBuffer operates upon.
`Binary` | `toBinary()` Returns a new Binary object that holds the complete contents of this ReadBuffer. This is the equivalent of `toBinary(0, length())`.
`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()`.
`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()`.

Methods inherited from class com.tangosol.io.AbstractReadBuffer
`checkBounds, clone, equals, getBufferInput, getReadBuffer, instantiateReadBuffer, toByteArray`

Field Detail

### m_ab

    protected byte[] m_ab

  The byte array that holds the binary data. This value should not be changed.

### m_of

    protected int m_of

  Offset into the byte array at which the binary data is located. This value should not be changed.

### m_cb

    protected int m_cb

  Number of bytes in the byte array that belong to this ReadBuffer object. This value should not be changed.

Constructor Detail

### AbstractByteArrayReadBuffer

    protected AbstractByteArrayReadBuffer()

  Default constructor; intended for deserialization use by subclasses.

  Note that this default constructor leaves the buffer in an invalid state.

### AbstractByteArrayReadBuffer

    protected AbstractByteArrayReadBuffer(byte[] ab,
                                          int of,
                                          int cb)

  Construct an AbstractByteArrayReadBuffer on a portion of a byte array.

  Parameters:
    `ab` - a byte array
    `of` - an offset into the byte array
    `cb` - the number of bytes to utilize
  Throws:
    `java.lang.IndexOutOfBoundsException` - if `of` or `cb` is negative, or `of + cb` is larger than `ab.length`
    `java.lang.NullPointerException` - if `ab` is `null`

Method Detail

### length

    public int length()

  Determine the length of the buffer.

  Returns:
    the number of bytes of data represented by this ReadBuffer

### byteAt

    public byte byteAt(int of)

  Returns the byte at the specified offset. An offset ranges from `0` to `length() - 1`. The first byte of the sequence is at offset `0`, the next at offset `1`, and so on, as for array indexing.

  Parameters:
    `of` - the offset (index) of the byte
  Returns:
    the byte at the specified offset in this ReadBuffer

### copyBytes

    public void copyBytes(int ofBegin,
                          int ofEnd,
                          byte[] abDest,
                          int ofDest)

  Copies bytes from this ReadBuffer into the destination byte array.

  The first byte to be copied is at offset `ofBegin`; the last byte to be copied is at offset `ofEnd-1` (thus the total number of bytes to be copied is `ofEnd - ofBegin`). The bytes are copied into the subarray of `abDest` starting at offset `ofDest` and ending at index:

  >          ofDest + (ofEnd - ofBegin) - 1

  This method is the ReadBuffer equivalent of `String.getChars(int, int, char[], int)`. It allows the caller to extract a chunk of bytes into the caller's own array.

  Parameters:
    `ofBegin` - offset of the first byte in the ReadBuffer to copy
    `ofEnd` - offset after the last byte in the ReadBuffer to copy
    `abDest` - the destination byte array
    `ofDest` - the offset in the destination byte array to copy the first byte to

### 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`
  Overrides:
    `toByteArray` in class `AbstractReadBuffer`
  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`
  Overrides:
    `toBinary` in class `AbstractReadBuffer`
  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`
  Overrides:
    `toBinary` in class `AbstractReadBuffer`
  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

### instantiateBufferInput

    protected ReadBuffer.BufferInput instantiateBufferInput()

  Factory method: Instantiate a BufferInput object to read data from the ReadBuffer.

  Specified by:
    `instantiateBufferInput` in class `AbstractReadBuffer`
  Returns:
    a new BufferInput reading from this ReadBuffer

### resetRange

    protected void resetRange(int of,
                              int cb)

  Reset the portion of the byte array the ReadBuffer operates upon.

  Parameters:
    `of` - an offset into the byte array
    `cb` - the number of bytes to utilize
  Throws:
    `java.lang.IndexOutOfBoundsException` - if `of` or `cb` are negative, or `of + cb` is larger than the buffer's length

### isByteArrayPrivate

    protected abstract boolean isByteArrayPrivate()

  Determine if the underlying byte[] should be treated as private data.

  Returns:
    true iff the underlying data should not ever be exposed by this object

Overview | Package | Class | Tree | Index | Help

Oracle® Coherence Java API Reference
v3.5.3
E15583-01
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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