net.sf.cindy.buffer
Class LinkedBuffer

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

public class LinkedBuffer
extends AbstractBuffer

Linked several Buffer as a single Buffer. Experiment.

Version:
$id$
Author:
Roger Chen

Nested Class Summary
protected static class LinkedBuffer.Entry
           
 
Field Summary
protected  LinkedBuffer.Entry header
           
 
Fields inherited from class net.sf.cindy.buffer.AbstractBuffer
WRITE_PACKET_SIZE
 
Constructor Summary
LinkedBuffer(Buffer[] content)
           
 
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()
           
protected  void append(Buffer buffer)
           
 java.nio.ByteBuffer asByteBuffer()
          Creates a view of this buffer as a byte buffer.
protected  Buffer batch(boolean get, int index, Buffer buffer, int length)
           
protected  Buffer batch(boolean get, int index, byte[] array, int offset, int length)
           
protected  Buffer batch(boolean get, int index, java.nio.ByteBuffer buffer, int length)
           
 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)
           
 int getInt()
           
 int getInt(int index)
           
 long getLong()
           
 long getLong(int index)
           
 short getShort()
           
 short getShort(int index)
           
 java.lang.String getString(Charset charset, int bufferLen)
           
 java.lang.String getString(int index, Charset charset, int bufferLen)
           
 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 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)
           
protected  void remove(Buffer buffer)
           
 Buffer slice()
           
 
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, getMark, 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, putString, putString, putUnsignedByte, putUnsignedByte, putUnsignedInt, putUnsignedInt, putUnsignedShort, putUnsignedShort, read, release, remaining, reset, rewind, setBigEndian, setPermanent, setReadonly, skip, toString, write
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

header

protected final LinkedBuffer.Entry header
Constructor Detail

LinkedBuffer

public LinkedBuffer(Buffer[] content)
Method Detail

append

protected void append(Buffer buffer)

remove

protected void remove(Buffer buffer)

isDirect

public boolean isDirect()

duplicate

public Buffer duplicate()

slice

public Buffer slice()

_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

batch

protected Buffer batch(boolean get,
                       int index,
                       byte[] array,
                       int offset,
                       int length)

batch

protected Buffer batch(boolean get,
                       int index,
                       java.nio.ByteBuffer buffer,
                       int length)

batch

protected Buffer batch(boolean get,
                       int index,
                       Buffer buffer,
                       int length)

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

compact

public Buffer compact()

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

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

getString

public java.lang.String getString(Charset charset,
                                  int bufferLen)
Specified by:
getString in interface Buffer
Overrides:
getString in class AbstractBuffer

getString

public java.lang.String getString(int index,
                                  Charset charset,
                                  int bufferLen)
Specified by:
getString in interface Buffer
Overrides:
getString in class AbstractBuffer