org.jboss.netty.buffer
Class TruncatedChannelBuffer

java.lang.Object
  extended by org.jboss.netty.buffer.AbstractChannelBuffer
      extended by org.jboss.netty.buffer.TruncatedChannelBuffer
All Implemented Interfaces:
Comparable<ChannelBuffer>, ChannelBuffer, WrappedChannelBuffer

public class TruncatedChannelBuffer
extends AbstractChannelBuffer
implements WrappedChannelBuffer

A derived buffer which hides its parent's tail data beyond a certain index. It is recommended to use ChannelBuffer.slice() and ChannelBuffer.slice(int, int) instead of calling the constructor explicitly.

Version:
$Rev: 2206 $, $Date: 2010-03-03 14:35:01 +0900 (Wed, 03 Mar 2010) $
Author:
The Netty Project, Trustin Lee

Constructor Summary
TruncatedChannelBuffer(ChannelBuffer buffer, int length)
           
 
Method Summary
 byte[] array()
          Returns the backing byte array of this buffer.
 int arrayOffset()
          Returns the offset of the first byte within the backing byte array of this buffer.
 int capacity()
          Returns the number of bytes (octets) this buffer can contain.
 ChannelBuffer copy(int index, int length)
          Returns a copy of this buffer's sub-region.
 ChannelBuffer duplicate()
          Returns a buffer which shares the whole region of this buffer.
 ChannelBufferFactory factory()
          Returns the factory which creates a ChannelBuffer whose type and default ByteOrder are same with this buffer.
 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, 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, GatheringByteChannel out, int length)
          Transfers this buffer's data to the specified channel starting at the specified absolute index.
 void getBytes(int index, 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.
 boolean hasArray()
          Returns true if and only if this buffer has a backing byte array.
 boolean isDirect()
          Returns true if and only if this buffer is backed by an NIO direct buffer.
 ByteOrder order()
          Returns the endianness of this buffer.
 void setByte(int index, int 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, 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, 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, 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, int value)
          Sets the specified 16-bit short integer at the specified absolute index in this buffer.
 ChannelBuffer slice(int index, int length)
          Returns a slice of this buffer's sub-region.
 ByteBuffer toByteBuffer(int index, int length)
          Converts this buffer's sub-region into a NIO buffer.
 ChannelBuffer unwrap()
          Returns this buffer's parent that this buffer is wrapping.
 
Methods inherited from class org.jboss.netty.buffer.AbstractChannelBuffer
bytesBefore, bytesBefore, bytesBefore, bytesBefore, bytesBefore, bytesBefore, checkReadableBytes, clear, compareTo, copy, discardReadBytes, ensureWritableBytes, equals, getBytes, getBytes, getBytes, getChar, getDouble, getFloat, getMedium, getUnsignedByte, getUnsignedInt, getUnsignedShort, hashCode, indexOf, indexOf, markReaderIndex, markWriterIndex, readable, readableBytes, readByte, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readChar, readDouble, readerIndex, readerIndex, readFloat, readInt, readLong, readMedium, readShort, readSlice, readSlice, readUnsignedByte, readUnsignedInt, readUnsignedMedium, readUnsignedShort, resetReaderIndex, resetWriterIndex, setBytes, setBytes, setBytes, setChar, setDouble, setFloat, setIndex, setZero, skipBytes, skipBytes, slice, toByteBuffer, toByteBuffers, toByteBuffers, toString, toString, toString, toString, toString, toString, toString, writable, writableBytes, writeByte, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeChar, writeDouble, writeFloat, writeInt, writeLong, writeMedium, writerIndex, writerIndex, writeShort, writeZero
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.jboss.netty.buffer.ChannelBuffer
bytesBefore, bytesBefore, bytesBefore, bytesBefore, bytesBefore, bytesBefore, clear, compareTo, copy, discardReadBytes, ensureWritableBytes, equals, getBytes, getBytes, getBytes, getChar, getDouble, getFloat, getMedium, getUnsignedByte, getUnsignedInt, getUnsignedShort, hashCode, indexOf, indexOf, markReaderIndex, markWriterIndex, readable, readableBytes, readByte, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readChar, readDouble, readerIndex, readerIndex, readFloat, readInt, readLong, readMedium, readShort, readSlice, readSlice, readUnsignedByte, readUnsignedInt, readUnsignedMedium, readUnsignedShort, resetReaderIndex, resetWriterIndex, setBytes, setBytes, setBytes, setChar, setDouble, setFloat, setIndex, setZero, skipBytes, skipBytes, slice, toByteBuffer, toByteBuffers, toByteBuffers, toString, toString, toString, toString, toString, toString, toString, writable, writableBytes, writeByte, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeChar, writeDouble, writeFloat, writeInt, writeLong, writeMedium, writerIndex, writerIndex, writeShort, writeZero
 

Constructor Detail

TruncatedChannelBuffer

public TruncatedChannelBuffer(ChannelBuffer buffer,
                              int length)
Method Detail

unwrap

public ChannelBuffer unwrap()
Description copied from interface: WrappedChannelBuffer
Returns this buffer's parent that this buffer is wrapping.

Specified by:
unwrap in interface WrappedChannelBuffer

factory

public ChannelBufferFactory factory()
Description copied from interface: ChannelBuffer
Returns the factory which creates a ChannelBuffer whose type and default ByteOrder are same with this buffer.

Specified by:
factory in interface ChannelBuffer

order

public ByteOrder order()
Description copied from interface: ChannelBuffer
Returns the endianness of this buffer.

Specified by:
order in interface ChannelBuffer

isDirect

public boolean isDirect()
Description copied from interface: ChannelBuffer
Returns true if and only if this buffer is backed by an NIO direct buffer.

Specified by:
isDirect in interface ChannelBuffer

capacity

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

Specified by:
capacity in interface ChannelBuffer

hasArray

public boolean hasArray()
Description copied from interface: ChannelBuffer
Returns true if and only if this buffer has a backing byte array. If this method returns true, you can safely call ChannelBuffer.array() and ChannelBuffer.arrayOffset().

Specified by:
hasArray in interface ChannelBuffer

array

public byte[] array()
Description copied from interface: ChannelBuffer
Returns the backing byte array of this buffer.

Specified by:
array in interface ChannelBuffer

arrayOffset

public int arrayOffset()
Description copied from interface: ChannelBuffer
Returns the offset of the first byte within the backing byte array of this buffer.

Specified by:
arrayOffset in interface ChannelBuffer

getByte

public byte getByte(int index)
Description copied from interface: ChannelBuffer
Gets a byte at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
getByte in interface ChannelBuffer

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. This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
getShort in interface ChannelBuffer

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. This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
getUnsignedMedium in interface ChannelBuffer

getInt

public int getInt(int index)
Description copied from interface: ChannelBuffer
Gets a 32-bit integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
getInt in interface ChannelBuffer

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. This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
getLong in interface ChannelBuffer

duplicate

public ChannelBuffer duplicate()
Description copied from interface: ChannelBuffer
Returns a buffer which shares the whole region of this buffer. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks. This method is identical to buf.slice(0, buf.capacity()). This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
duplicate in interface ChannelBuffer

copy

public ChannelBuffer copy(int index,
                          int length)
Description copied from interface: ChannelBuffer
Returns a copy of this buffer's sub-region. Modifying the content of the returned buffer or this buffer does not affect each other at all. This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
copy in interface ChannelBuffer

slice

public ChannelBuffer slice(int index,
                           int length)
Description copied from interface: ChannelBuffer
Returns a slice of this buffer's sub-region. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks. This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
slice in interface ChannelBuffer

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. This method does not modify readerIndex or writerIndex of both the source (i.e. this) and the destination.

Specified by:
getBytes in interface ChannelBuffer
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. This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
getBytes in interface ChannelBuffer
dstIndex - the first index of the destination
length - the number of bytes to transfer

getBytes

public void getBytes(int index,
                     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. This method does not modify readerIndex or writerIndex of this buffer while the destination's position will be increased.

Specified by:
getBytes in interface ChannelBuffer

setByte

public void setByte(int index,
                    int value)
Description copied from interface: ChannelBuffer
Sets the specified byte at the specified absolute index in this buffer. The 24 high-order bits of the specified value are ignored. This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
setByte in interface ChannelBuffer

setShort

public void setShort(int index,
                     int value)
Description copied from interface: ChannelBuffer
Sets the specified 16-bit short integer at the specified absolute index in this buffer. The 16 high-order bits of the specified value are ignored. This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
setShort in interface ChannelBuffer

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. This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
setMedium in interface ChannelBuffer

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. This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
setInt in interface ChannelBuffer

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. This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
setLong in interface ChannelBuffer

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. This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
setBytes in interface ChannelBuffer

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. This method does not modify readerIndex or writerIndex of both the source (i.e. this) and the destination.

Specified by:
setBytes in interface ChannelBuffer
srcIndex - the first index of the source
length - the number of bytes to transfer

setBytes

public void setBytes(int index,
                     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. This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
setBytes in interface ChannelBuffer

getBytes

public void getBytes(int index,
                     OutputStream out,
                     int length)
              throws IOException
Description copied from interface: ChannelBuffer
Transfers this buffer's data to the specified stream starting at the specified absolute index. This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
getBytes in interface ChannelBuffer
length - the number of bytes to transfer
Throws:
IOException - if the specified stream threw an exception during I/O

getBytes

public int getBytes(int index,
                    GatheringByteChannel out,
                    int length)
             throws IOException
Description copied from interface: ChannelBuffer
Transfers this buffer's data to the specified channel starting at the specified absolute index. This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
getBytes in interface ChannelBuffer
length - the maximum number of bytes to transfer
Returns:
the actual number of bytes written out to the specified channel
Throws:
IOException - if the specified channel threw an exception during I/O

setBytes

public int setBytes(int index,
                    InputStream in,
                    int length)
             throws IOException
Description copied from interface: ChannelBuffer
Transfers the content of the specified source stream to this buffer starting at the specified absolute index. This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
setBytes in interface ChannelBuffer
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:
IOException - if the specified stream threw an exception during I/O

setBytes

public int setBytes(int index,
                    ScatteringByteChannel in,
                    int length)
             throws IOException
Description copied from interface: ChannelBuffer
Transfers the content of the specified source channel to this buffer starting at the specified absolute index. This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
setBytes in interface ChannelBuffer
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:
IOException - if the specified channel threw an exception during I/O

toByteBuffer

public 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. This method does not modify readerIndex or writerIndex of this buffer.

Specified by:
toByteBuffer in interface ChannelBuffer


Copyright © 2008-2011 JBoss, a division of Red Hat, Inc.. All Rights Reserved.