org.jboss.messaging.core.buffers
Class HeapChannelBuffer

java.lang.Object
  extended by org.jboss.messaging.core.buffers.AbstractChannelBuffer
      extended by org.jboss.messaging.core.buffers.HeapChannelBuffer
All Implemented Interfaces:
java.lang.Comparable<ChannelBuffer>, ChannelBuffer, MessagingBuffer

public class HeapChannelBuffer
extends AbstractChannelBuffer

A skeletal implementation for Java heap buffers.

Version:
$Rev: 486 $, $Date: 2008-11-16 22:52:47 +0900 (Sun, 16 Nov 2008) $
Author:
The Netty Project (netty-dev@lists.jboss.org), Trustin Lee (tlee@redhat.com)

Field Summary
protected  byte[] array
          The underlying heap byte array that this buffer is wrapping.
 
Constructor Summary
protected HeapChannelBuffer(byte[] array, int readerIndex, int writerIndex)
          Creates a new heap buffer with an existing byte array.
 
Method Summary
 byte[] array()
           
 int capacity()
          Returns the number of bytes (octets) this buffer can contain.
 ChannelBuffer copy(int index, int length)
           
 ChannelBuffer duplicate()
           
 byte getByte(int index)
          Gets a byte at the specified absolute index in this buffer.
 void getBytes(int index, byte[] dst, int dstIndex, int length)
          Transfers this buffer's data to the specified destination starting at the specified absolute index.
 void getBytes(int index, java.nio.ByteBuffer dst)
          Transfers this buffer's data to the specified destination starting at the specified absolute index until the destination's position reaches its limit.
 void getBytes(int index, ChannelBuffer dst, int dstIndex, int length)
          Transfers this buffer's data to the specified destination starting at the specified absolute index.
 int getBytes(int index, java.nio.channels.GatheringByteChannel out, int length)
          Transfers this buffer's data to the specified channel starting at the specified absolute index.
 void getBytes(int index, java.io.OutputStream out, int length)
          Transfers this buffer's data to the specified stream starting at the specified absolute index.
 int getInt(int index)
          Gets a 32-bit integer at the specified absolute index in this buffer.
 long getLong(int index)
          Gets a 64-bit long integer at the specified absolute index in this buffer.
 short getShort(int index)
          Gets a 16-bit short integer at the specified absolute index in this buffer.
 int getUnsignedMedium(int index)
          Gets an unsigned 24-bit medium integer at the specified absolute index in this buffer.
 void setByte(int index, byte value)
          Sets the specified byte at the specified absolute index in this buffer.
 void setBytes(int index, byte[] src, int srcIndex, int length)
          Transfers the specified source array's data to this buffer starting at the specified absolute index.
 void setBytes(int index, java.nio.ByteBuffer src)
          Transfers the specified source buffer's data to this buffer starting at the specified absolute index until the source buffer's position reaches its limit.
 void setBytes(int index, ChannelBuffer src, int srcIndex, int length)
          Transfers the specified source buffer's data to this buffer starting at the specified absolute index.
 int setBytes(int index, java.io.InputStream in, int length)
          Transfers the content of the specified source stream to this buffer starting at the specified absolute index.
 int setBytes(int index, java.nio.channels.ScatteringByteChannel in, int length)
          Transfers the content of the specified source channel to this buffer starting at the specified absolute index.
 void setInt(int index, int value)
          Sets the specified 32-bit integer at the specified absolute index in this buffer.
 void setLong(int index, long value)
          Sets the specified 64-bit long integer at the specified absolute index in this buffer.
 void setMedium(int index, int value)
          Sets the specified 24-bit medium integer at the specified absolute index in this buffer.
 void setShort(int index, short value)
          Sets the specified 16-bit short integer at the specified absolute index in this buffer.
 java.nio.ByteBuffer toByteBuffer(int index, int length)
          Converts this buffer's sub-region into a NIO buffer.
 java.lang.String toString(int index, int length, java.lang.String charsetName)
          Decodes this buffer's sub-region into a string with the specified character set name.
 
Methods inherited from class org.jboss.messaging.core.buffers.AbstractChannelBuffer
checkReadableBytes, clear, compareTo, discardReadBytes, equals, getBytes, getBytes, getBytes, getMedium, getUnderlyingBuffer, getUnsignedByte, getUnsignedInt, getUnsignedShort, hashCode, markReaderIndex, markWriterIndex, readable, readableBytes, readBoolean, readByte, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readChar, readDouble, readerIndex, readerIndex, readFloat, readInt, readLong, readMedium, readNullableSimpleString, readNullableString, readShort, readSimpleString, readString, readUnsignedByte, readUnsignedInt, readUnsignedMedium, readUnsignedShort, readUTF, resetReaderIndex, resetWriterIndex, setBytes, setBytes, setBytes, setIndex, setZero, skipBytes, toByteBuffer, toByteBuffers, toByteBuffers, toString, toString, writable, writableBytes, writeBoolean, writeByte, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeChar, writeDouble, writeFloat, writeInt, writeLong, writeMedium, writeNullableSimpleString, writeNullableString, writerIndex, writerIndex, writeShort, writeSimpleString, writeString, writeUTF, writeZero
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

array

protected final byte[] array
The underlying heap byte array that this buffer is wrapping.

Constructor Detail

HeapChannelBuffer

protected HeapChannelBuffer(byte[] array,
                            int readerIndex,
                            int writerIndex)
Creates a new heap buffer with an existing byte array.

Parameters:
array - the byte array to wrap
readerIndex - the initial reader index of this buffer
writerIndex - the initial writer index of this buffer
Method Detail

capacity

public int capacity()
Description copied from interface: ChannelBuffer
Returns the number of bytes (octets) this buffer can contain.


getByte

public byte getByte(int index)
Description copied from interface: ChannelBuffer
Gets a byte at the specified absolute index in this buffer.


getBytes

public void getBytes(int index,
                     ChannelBuffer dst,
                     int dstIndex,
                     int length)
Description copied from interface: ChannelBuffer
Transfers this buffer's data to the specified destination starting at the specified absolute index.

dstIndex - the first index of the destination
length - the number of bytes to transfer

getBytes

public void getBytes(int index,
                     byte[] dst,
                     int dstIndex,
                     int length)
Description copied from interface: ChannelBuffer
Transfers this buffer's data to the specified destination starting at the specified absolute index.

dstIndex - the first index of the destination
length - the number of bytes to transfer

getBytes

public void getBytes(int index,
                     java.nio.ByteBuffer dst)
Description copied from interface: ChannelBuffer
Transfers this buffer's data to the specified destination starting at the specified absolute index until the destination's position reaches its limit.


getBytes

public void getBytes(int index,
                     java.io.OutputStream out,
                     int length)
              throws java.io.IOException
Description copied from interface: ChannelBuffer
Transfers this buffer's data to the specified stream starting at the specified absolute index.

length - the number of bytes to transfer
Throws:
java.io.IOException - if the specified stream threw an exception during I/O

getBytes

public int getBytes(int index,
                    java.nio.channels.GatheringByteChannel out,
                    int length)
             throws java.io.IOException
Description copied from interface: ChannelBuffer
Transfers this buffer's data to the specified channel starting at the specified absolute index.

length - the maximum number of bytes to transfer
Returns:
the actual number of bytes written out to the specified channel
Throws:
java.io.IOException - if the specified channel threw an exception during I/O

setByte

public void setByte(int index,
                    byte value)
Description copied from interface: ChannelBuffer
Sets the specified byte at the specified absolute index in this buffer.


setBytes

public void setBytes(int index,
                     ChannelBuffer src,
                     int srcIndex,
                     int length)
Description copied from interface: ChannelBuffer
Transfers the specified source buffer's data to this buffer starting at the specified absolute index.

srcIndex - the first index of the source
length - the number of bytes to transfer

setBytes

public void setBytes(int index,
                     byte[] src,
                     int srcIndex,
                     int length)
Description copied from interface: ChannelBuffer
Transfers the specified source array's data to this buffer starting at the specified absolute index.


setBytes

public void setBytes(int index,
                     java.nio.ByteBuffer src)
Description copied from interface: ChannelBuffer
Transfers the specified source buffer's data to this buffer starting at the specified absolute index until the source buffer's position reaches its limit.


setBytes

public int setBytes(int index,
                    java.io.InputStream in,
                    int length)
             throws java.io.IOException
Description copied from interface: ChannelBuffer
Transfers the content of the specified source stream to this buffer starting at the specified absolute index.

length - the number of bytes to transfer
Returns:
the actual number of bytes read in from the specified channel. -1 if the specified channel is closed.
Throws:
java.io.IOException - if the specified stream threw an exception during I/O

setBytes

public int setBytes(int index,
                    java.nio.channels.ScatteringByteChannel in,
                    int length)
             throws java.io.IOException
Description copied from interface: ChannelBuffer
Transfers the content of the specified source channel to this buffer starting at the specified absolute index.

length - the maximum number of bytes to transfer
Returns:
the actual number of bytes read in from the specified channel. -1 if the specified channel is closed.
Throws:
java.io.IOException - if the specified channel threw an exception during I/O

getShort

public short getShort(int index)
Description copied from interface: ChannelBuffer
Gets a 16-bit short integer at the specified absolute index in this buffer.


getUnsignedMedium

public int getUnsignedMedium(int index)
Description copied from interface: ChannelBuffer
Gets an unsigned 24-bit medium integer at the specified absolute index in this buffer.


getInt

public int getInt(int index)
Description copied from interface: ChannelBuffer
Gets a 32-bit integer at the specified absolute index in this buffer.


getLong

public long getLong(int index)
Description copied from interface: ChannelBuffer
Gets a 64-bit long integer at the specified absolute index in this buffer.


setShort

public void setShort(int index,
                     short value)
Description copied from interface: ChannelBuffer
Sets the specified 16-bit short integer at the specified absolute index in this buffer.


setMedium

public void setMedium(int index,
                      int value)
Description copied from interface: ChannelBuffer
Sets the specified 24-bit medium integer at the specified absolute index in this buffer. Please note that the most significant byte is ignored in the specified value.


setInt

public void setInt(int index,
                   int value)
Description copied from interface: ChannelBuffer
Sets the specified 32-bit integer at the specified absolute index in this buffer.


setLong

public void setLong(int index,
                    long value)
Description copied from interface: ChannelBuffer
Sets the specified 64-bit long integer at the specified absolute index in this buffer.


copy

public ChannelBuffer copy(int index,
                          int length)

duplicate

public ChannelBuffer duplicate()

toByteBuffer

public java.nio.ByteBuffer toByteBuffer(int index,
                                        int length)
Description copied from interface: ChannelBuffer
Converts this buffer's sub-region into a NIO buffer. The returned buffer might or might not share the content with this buffer, while they have separate indexes and marks.


toString

public java.lang.String toString(int index,
                                 int length,
                                 java.lang.String charsetName)
Description copied from interface: ChannelBuffer
Decodes this buffer's sub-region into a string with the specified character set name.


array

public byte[] array()


Copyright © 2006 JBoss Inc. All Rights Reserved.