net.sf.cindy.buffer
Class ByteArrayBuffer

java.lang.Object
  extended by net.sf.cindy.buffer.AbstractBuffer
      extended by net.sf.cindy.buffer.ByteArrayBuffer
All Implemented Interfaces:
Buffer

public class ByteArrayBuffer
extends AbstractBuffer

Implementation of Buffer which use byte array as container.

Version:
$id$
Author:
Roger Chen

Field Summary
 
Fields inherited from class net.sf.cindy.buffer.AbstractBuffer
WRITE_PACKET_SIZE
 
Constructor Summary
protected ByteArrayBuffer(byte[] content, int offset, int capacity)
           
 
Method Summary
protected  byte _get(int index)
          Get byte without check.
protected  void _put(int index, byte b)
          Put byte without check.
protected  void _release()
           
static ByteArrayBuffer allocate(int capacity)
           
 java.nio.ByteBuffer asByteBuffer()
          Creates a view of this buffer as a byte buffer.
 Buffer compact()
           
 Buffer duplicate()
           
 Buffer get(Buffer dst, int length)
           
 Buffer get(byte[] dst, int offset, int length)
           
 Buffer get(java.nio.ByteBuffer dst, int length)
           
 Buffer get(int index, Buffer dst, int length)
           
 Buffer get(int index, byte[] dst, int offset, int length)
           
 Buffer get(int index, java.nio.ByteBuffer dst, int length)
           
 boolean isDirect()
           
 Buffer put(Buffer src, int length)
           
 Buffer put(byte[] src, int offset, int length)
           
 Buffer put(java.nio.ByteBuffer src, int length)
           
 Buffer put(int index, Buffer src, int length)
           
 Buffer put(int index, byte[] src, int offset, int length)
           
 Buffer put(int index, java.nio.ByteBuffer src, int length)
           
 int read(java.nio.channels.ReadableByteChannel channel)
          Reads a sequence of bytes from the channel.
 Buffer slice()
           
static ByteArrayBuffer wrap(byte[] array)
           
static ByteArrayBuffer wrap(byte[] array, int offset, int length)
           
 int write(java.nio.channels.WritableByteChannel channel)
          Writes a sequence of bytes to the channel.
 
Methods inherited from class net.sf.cindy.buffer.AbstractBuffer
asReadOnlyBuffer, capacity, capacity, checkBounds, checkReadonly, checkReleased, clear, dump, equals, flip, get, get, get, get, get, get, get, get, getChar, getChar, getDouble, getDouble, getFloat, getFloat, getIndex, getIndex, getInt, getInt, getLong, getLong, getMark, getShort, getShort, getString, getString, getUnsignedByte, getUnsignedByte, getUnsignedInt, getUnsignedInt, getUnsignedShort, getUnsignedShort, hasRemaining, indexOf, isBigEndian, isPermanent, isReadonly, isReleased, limit, limit, mark, mark, position, position, put, put, put, put, put, put, put, put, putChar, putChar, putDouble, putDouble, putFloat, putFloat, putIndex, putIndex, putInt, putInt, putLong, putLong, putShort, putShort, putString, putString, putUnsignedByte, putUnsignedByte, putUnsignedInt, putUnsignedInt, putUnsignedShort, putUnsignedShort, release, remaining, reset, rewind, setBigEndian, setPermanent, setReadonly, skip, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ByteArrayBuffer

protected ByteArrayBuffer(byte[] content,
                          int offset,
                          int capacity)
Method Detail

allocate

public static ByteArrayBuffer allocate(int capacity)

wrap

public static ByteArrayBuffer wrap(byte[] array)

wrap

public static ByteArrayBuffer wrap(byte[] array,
                                   int offset,
                                   int length)

isDirect

public boolean isDirect()

asByteBuffer

public java.nio.ByteBuffer asByteBuffer()
Description copied from interface: Buffer
Creates a view of this buffer as a byte buffer. The returned byte buffer's position/limit/capacity equals current position/limit/capacity. The returned ByteBuffer MAY share the content of the Buffer, depends on implementation.

Returns:
the byte buffer

duplicate

public Buffer duplicate()

slice

public Buffer slice()

compact

public Buffer compact()

_release

protected void _release()
Specified by:
_release in class AbstractBuffer

_get

protected byte _get(int index)
Description copied from class: AbstractBuffer
Get byte without check.

Specified by:
_get in class AbstractBuffer
Parameters:
index - index
Returns:
byte

_put

protected void _put(int index,
                    byte b)
Description copied from class: AbstractBuffer
Put byte without check.

Specified by:
_put in class AbstractBuffer
Parameters:
index - index
b - byte

write

public int write(java.nio.channels.WritableByteChannel channel)
          throws java.io.IOException
Description copied from interface: Buffer
Writes a sequence of bytes to the channel.

Specified by:
write in interface Buffer
Overrides:
write in class AbstractBuffer
Parameters:
channel - channel
Returns:
the number of bytes written, possibly zero
Throws:
java.io.IOException - any io exception

read

public int read(java.nio.channels.ReadableByteChannel channel)
         throws java.io.IOException
Description copied from interface: Buffer
Reads a sequence of bytes from the channel.

Specified by:
read in interface Buffer
Overrides:
read in class AbstractBuffer
Parameters:
channel - channel
Returns:
the number of bytes read, possibly zero, or -1 if the channel has reached end-of-stream
Throws:
java.io.IOException - any io exception

get

public Buffer get(byte[] dst,
                  int offset,
                  int length)
Specified by:
get in interface Buffer
Overrides:
get in class AbstractBuffer

get

public Buffer get(int index,
                  byte[] dst,
                  int offset,
                  int length)
Specified by:
get in interface Buffer
Overrides:
get in class AbstractBuffer

get

public Buffer get(java.nio.ByteBuffer dst,
                  int length)
Specified by:
get in interface Buffer
Overrides:
get in class AbstractBuffer

get

public Buffer get(int index,
                  java.nio.ByteBuffer dst,
                  int length)
Specified by:
get in interface Buffer
Overrides:
get in class AbstractBuffer

get

public Buffer get(Buffer dst,
                  int length)
Specified by:
get in interface Buffer
Overrides:
get in class AbstractBuffer

get

public Buffer get(int index,
                  Buffer dst,
                  int length)
Specified by:
get in interface Buffer
Overrides:
get in class AbstractBuffer

put

public Buffer put(byte[] src,
                  int offset,
                  int length)
Specified by:
put in interface Buffer
Overrides:
put in class AbstractBuffer

put

public Buffer put(int index,
                  byte[] src,
                  int offset,
                  int length)
Specified by:
put in interface Buffer
Overrides:
put in class AbstractBuffer

put

public Buffer put(java.nio.ByteBuffer src,
                  int length)
Specified by:
put in interface Buffer
Overrides:
put in class AbstractBuffer

put

public Buffer put(int index,
                  java.nio.ByteBuffer src,
                  int length)
Specified by:
put in interface Buffer
Overrides:
put in class AbstractBuffer

put

public Buffer put(Buffer src,
                  int length)
Specified by:
put in interface Buffer
Overrides:
put in class AbstractBuffer

put

public Buffer put(int index,
                  Buffer src,
                  int length)
Specified by:
put in interface Buffer
Overrides:
put in class AbstractBuffer