net.sf.cindy.buffer
Class ByteBufferBuffer

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

public class ByteBufferBuffer
extends AbstractBuffer

Implementation of Buffer which use java.nio.ByteBuffer as container.

Version:
$id$
Author:
Roger Chen

Field Summary
 
Fields inherited from class net.sf.cindy.buffer.AbstractBuffer
WRITE_PACKET_SIZE
 
Constructor Summary
protected ByteBufferBuffer(java.nio.ByteBuffer 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 ByteBufferBuffer allocate(int capacity, boolean direct)
           
 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)
           
 char getChar()
           
 char getChar(int index)
           
 double getDouble()
           
 double getDouble(int index)
           
 float getFloat()
           
 float getFloat(int index)
           
 int getInt()
           
 int getInt(int index)
           
 long getLong()
           
 long getLong(int index)
           
 short getShort()
           
 short getShort(int index)
           
 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)
           
 Buffer putChar(char c)
           
 Buffer putChar(int index, char c)
           
 Buffer putDouble(double d)
           
 Buffer putDouble(int index, double d)
           
 Buffer putFloat(float f)
           
 Buffer putFloat(int index, float f)
           
 Buffer putInt(int i)
           
 Buffer putInt(int index, int i)
           
 Buffer putLong(int index, long l)
           
 Buffer putLong(long l)
           
 Buffer putShort(int index, short s)
           
 Buffer putShort(short s)
           
 int read(java.nio.channels.ReadableByteChannel channel)
          Reads a sequence of bytes from the channel.
 Buffer slice()
           
static ByteBufferBuffer wrap(java.nio.ByteBuffer buffer)
           
 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, getIndex, getIndex, getMark, 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, putIndex, putIndex, 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

ByteBufferBuffer

protected ByteBufferBuffer(java.nio.ByteBuffer content,
                           int offset,
                           int capacity)
Method Detail

allocate

public static ByteBufferBuffer allocate(int capacity,
                                        boolean direct)

wrap

public static ByteBufferBuffer wrap(java.nio.ByteBuffer buffer)

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

getChar

public char getChar()
Specified by:
getChar in interface Buffer
Overrides:
getChar in class AbstractBuffer

getChar

public char getChar(int index)
Specified by:
getChar in interface Buffer
Overrides:
getChar in class AbstractBuffer

putChar

public Buffer putChar(char c)
Specified by:
putChar in interface Buffer
Overrides:
putChar in class AbstractBuffer

putChar

public Buffer putChar(int index,
                      char c)
Specified by:
putChar in interface Buffer
Overrides:
putChar in class AbstractBuffer

getShort

public short getShort()
Specified by:
getShort in interface Buffer
Overrides:
getShort in class AbstractBuffer

getShort

public short getShort(int index)
Specified by:
getShort in interface Buffer
Overrides:
getShort in class AbstractBuffer

putShort

public Buffer putShort(short s)
Specified by:
putShort in interface Buffer
Overrides:
putShort in class AbstractBuffer

putShort

public Buffer putShort(int index,
                       short s)
Specified by:
putShort in interface Buffer
Overrides:
putShort in class AbstractBuffer

getInt

public int getInt()
Specified by:
getInt in interface Buffer
Overrides:
getInt in class AbstractBuffer

getInt

public int getInt(int index)
Specified by:
getInt in interface Buffer
Overrides:
getInt in class AbstractBuffer

putInt

public Buffer putInt(int i)
Specified by:
putInt in interface Buffer
Overrides:
putInt in class AbstractBuffer

putInt

public Buffer putInt(int index,
                     int i)
Specified by:
putInt in interface Buffer
Overrides:
putInt in class AbstractBuffer

getLong

public long getLong()
Specified by:
getLong in interface Buffer
Overrides:
getLong in class AbstractBuffer

getLong

public long getLong(int index)
Specified by:
getLong in interface Buffer
Overrides:
getLong in class AbstractBuffer

putLong

public Buffer putLong(long l)
Specified by:
putLong in interface Buffer
Overrides:
putLong in class AbstractBuffer

putLong

public Buffer putLong(int index,
                      long l)
Specified by:
putLong in interface Buffer
Overrides:
putLong in class AbstractBuffer

getFloat

public float getFloat()
Specified by:
getFloat in interface Buffer
Overrides:
getFloat in class AbstractBuffer

getFloat

public float getFloat(int index)
Specified by:
getFloat in interface Buffer
Overrides:
getFloat in class AbstractBuffer

putFloat

public Buffer putFloat(float f)
Specified by:
putFloat in interface Buffer
Overrides:
putFloat in class AbstractBuffer

putFloat

public Buffer putFloat(int index,
                       float f)
Specified by:
putFloat in interface Buffer
Overrides:
putFloat in class AbstractBuffer

getDouble

public double getDouble()
Specified by:
getDouble in interface Buffer
Overrides:
getDouble in class AbstractBuffer

getDouble

public double getDouble(int index)
Specified by:
getDouble in interface Buffer
Overrides:
getDouble in class AbstractBuffer

putDouble

public Buffer putDouble(double d)
Specified by:
putDouble in interface Buffer
Overrides:
putDouble in class AbstractBuffer

putDouble

public Buffer putDouble(int index,
                        double d)
Specified by:
putDouble in interface Buffer
Overrides:
putDouble in class AbstractBuffer