Package org.jboss.netty.buffer
Class TruncatedChannelBuffer
java.lang.Object
org.jboss.netty.buffer.AbstractChannelBuffer
org.jboss.netty.buffer.TruncatedChannelBuffer
- All Implemented Interfaces:
Comparable<ChannelBuffer>
,ChannelBuffer
,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.-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbyte[]
array()
Returns the backing byte array of this buffer.int
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.private void
checkIndex
(int index) private void
checkIndex
(int index, int length) copy
(int index, int length) Returns a copy of this buffer's sub-region.Returns a buffer which shares the whole region of this buffer.factory()
Returns the factory which creates aChannelBuffer
whose type and defaultByteOrder
are same with this buffer.byte
getByte
(int index) Gets a byte at the specified absoluteindex
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 absoluteindex
.void
getBytes
(int index, OutputStream out, int length) Transfers this buffer's data to the specified stream starting at the specified absoluteindex
.void
getBytes
(int index, ByteBuffer dst) Transfers this buffer's data to the specified destination starting at the specified absoluteindex
until the destination's position reaches its limit.int
getBytes
(int index, GatheringByteChannel out, int length) Transfers this buffer's data to the specified channel starting at the specified absoluteindex
.void
getBytes
(int index, ChannelBuffer dst, int dstIndex, int length) Transfers this buffer's data to the specified destination starting at the specified absoluteindex
.int
getInt
(int index) Gets a 32-bit integer at the specified absoluteindex
in this buffer.long
getLong
(int index) Gets a 64-bit long integer at the specified absoluteindex
in this buffer.short
getShort
(int index) Gets a 16-bit short integer at the specified absoluteindex
in this buffer.int
getUnsignedMedium
(int index) Gets an unsigned 24-bit medium integer at the specified absoluteindex
in this buffer.boolean
hasArray()
Returnstrue
if and only if this buffer has a backing byte array.boolean
isDirect()
Returnstrue
if and only if this buffer is backed by an NIO direct buffer.order()
Returns the endianness of this buffer.void
setByte
(int index, int value) Sets the specified byte at the specified absoluteindex
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 absoluteindex
.int
setBytes
(int index, InputStream in, int length) Transfers the content of the specified source stream to this buffer starting at the specified absoluteindex
.void
setBytes
(int index, ByteBuffer src) Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex
until the source buffer's position reaches its limit.int
setBytes
(int index, ScatteringByteChannel in, int length) Transfers the content of the specified source channel to this buffer starting at the specified absoluteindex
.void
setBytes
(int index, ChannelBuffer src, int srcIndex, int length) Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex
.void
setInt
(int index, int value) Sets the specified 32-bit integer at the specified absoluteindex
in this buffer.void
setLong
(int index, long value) Sets the specified 64-bit long integer at the specified absoluteindex
in this buffer.void
setMedium
(int index, int value) Sets the specified 24-bit medium integer at the specified absoluteindex
in this buffer.void
setShort
(int index, int value) Sets the specified 16-bit short integer at the specified absoluteindex
in this buffer.slice
(int index, int length) Returns a slice of this buffer's sub-region.toByteBuffer
(int index, int length) Converts this buffer's sub-region into a NIO buffer.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, readChar, readDouble, readerIndex, readerIndex, readFloat, readInt, readLong, readMedium, readShort, readSlice, readUnsignedByte, readUnsignedInt, readUnsignedMedium, readUnsignedShort, resetReaderIndex, resetWriterIndex, setBytes, setBytes, setBytes, setChar, setDouble, setFloat, setIndex, setZero, skipBytes, slice, toByteBuffer, toByteBuffers, toByteBuffers, 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, readChar, readDouble, readerIndex, readerIndex, readFloat, readInt, readLong, readMedium, readShort, readSlice, readUnsignedByte, readUnsignedInt, readUnsignedMedium, readUnsignedShort, resetReaderIndex, resetWriterIndex, setBytes, setBytes, setBytes, setChar, setDouble, setFloat, setIndex, setZero, skipBytes, slice, toByteBuffer, toByteBuffers, toByteBuffers, toString, toString, toString, writable, writableBytes, writeByte, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeChar, writeDouble, writeFloat, writeInt, writeLong, writeMedium, writerIndex, writerIndex, writeShort, writeZero
-
Field Details
-
buffer
-
length
private final int length
-
-
Constructor Details
-
TruncatedChannelBuffer
-
-
Method Details
-
unwrap
Description copied from interface:WrappedChannelBuffer
Returns this buffer's parent that this buffer is wrapping.- Specified by:
unwrap
in interfaceWrappedChannelBuffer
-
factory
Description copied from interface:ChannelBuffer
Returns the factory which creates aChannelBuffer
whose type and defaultByteOrder
are same with this buffer.- Specified by:
factory
in interfaceChannelBuffer
-
order
Description copied from interface:ChannelBuffer
Returns the endianness of this buffer.- Specified by:
order
in interfaceChannelBuffer
-
isDirect
public boolean isDirect()Description copied from interface:ChannelBuffer
Returnstrue
if and only if this buffer is backed by an NIO direct buffer.- Specified by:
isDirect
in interfaceChannelBuffer
-
capacity
public int capacity()Description copied from interface:ChannelBuffer
Returns the number of bytes (octets) this buffer can contain.- Specified by:
capacity
in interfaceChannelBuffer
-
hasArray
public boolean hasArray()Description copied from interface:ChannelBuffer
Returnstrue
if and only if this buffer has a backing byte array. If this method returns true, you can safely callChannelBuffer.array()
andChannelBuffer.arrayOffset()
.- Specified by:
hasArray
in interfaceChannelBuffer
-
array
public byte[] array()Description copied from interface:ChannelBuffer
Returns the backing byte array of this buffer.- Specified by:
array
in interfaceChannelBuffer
-
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 interfaceChannelBuffer
-
getByte
public byte getByte(int index) Description copied from interface:ChannelBuffer
Gets a byte at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getByte
in interfaceChannelBuffer
-
getShort
public short getShort(int index) Description copied from interface:ChannelBuffer
Gets a 16-bit short integer at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getShort
in interfaceChannelBuffer
-
getUnsignedMedium
public int getUnsignedMedium(int index) Description copied from interface:ChannelBuffer
Gets an unsigned 24-bit medium integer at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getUnsignedMedium
in interfaceChannelBuffer
-
getInt
public int getInt(int index) Description copied from interface:ChannelBuffer
Gets a 32-bit integer at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getInt
in interfaceChannelBuffer
-
getLong
public long getLong(int index) Description copied from interface:ChannelBuffer
Gets a 64-bit long integer at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getLong
in interfaceChannelBuffer
-
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 tobuf.slice(0, buf.capacity())
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
duplicate
in interfaceChannelBuffer
-
copy
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 modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
copy
in interfaceChannelBuffer
-
slice
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 modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
slice
in interfaceChannelBuffer
-
getBytes
Description copied from interface:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
. This method does not modifyreaderIndex
orwriterIndex
of both the source (i.e.this
) and the destination.- Specified by:
getBytes
in interfaceChannelBuffer
dstIndex
- the first index of the destinationlength
- 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 absoluteindex
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getBytes
in interfaceChannelBuffer
dstIndex
- the first index of the destinationlength
- the number of bytes to transfer
-
getBytes
Description copied from interface:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
until the destination's position reaches its limit. This method does not modifyreaderIndex
orwriterIndex
of this buffer while the destination'sposition
will be increased.- Specified by:
getBytes
in interfaceChannelBuffer
-
setByte
public void setByte(int index, int value) Description copied from interface:ChannelBuffer
Sets the specified byte at the specified absoluteindex
in this buffer. The 24 high-order bits of the specified value are ignored. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
setByte
in interfaceChannelBuffer
-
setShort
public void setShort(int index, int value) Description copied from interface:ChannelBuffer
Sets the specified 16-bit short integer at the specified absoluteindex
in this buffer. The 16 high-order bits of the specified value are ignored. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
setShort
in interfaceChannelBuffer
-
setMedium
public void setMedium(int index, int value) Description copied from interface:ChannelBuffer
Sets the specified 24-bit medium integer at the specified absoluteindex
in this buffer. Please note that the most significant byte is ignored in the specified value. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
setMedium
in interfaceChannelBuffer
-
setInt
public void setInt(int index, int value) Description copied from interface:ChannelBuffer
Sets the specified 32-bit integer at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
setInt
in interfaceChannelBuffer
-
setLong
public void setLong(int index, long value) Description copied from interface:ChannelBuffer
Sets the specified 64-bit long integer at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
setLong
in interfaceChannelBuffer
-
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 absoluteindex
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
setBytes
in interfaceChannelBuffer
-
setBytes
Description copied from interface:ChannelBuffer
Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex
. This method does not modifyreaderIndex
orwriterIndex
of both the source (i.e.this
) and the destination.- Specified by:
setBytes
in interfaceChannelBuffer
srcIndex
- the first index of the sourcelength
- the number of bytes to transfer
-
setBytes
Description copied from interface:ChannelBuffer
Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex
until the source buffer's position reaches its limit. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
setBytes
in interfaceChannelBuffer
-
getBytes
Description copied from interface:ChannelBuffer
Transfers this buffer's data to the specified stream starting at the specified absoluteindex
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getBytes
in interfaceChannelBuffer
length
- the number of bytes to transfer- Throws:
IOException
- if the specified stream threw an exception during I/O
-
getBytes
Description copied from interface:ChannelBuffer
Transfers this buffer's data to the specified channel starting at the specified absoluteindex
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getBytes
in interfaceChannelBuffer
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
Description copied from interface:ChannelBuffer
Transfers the content of the specified source stream to this buffer starting at the specified absoluteindex
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
setBytes
in interfaceChannelBuffer
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
Description copied from interface:ChannelBuffer
Transfers the content of the specified source channel to this buffer starting at the specified absoluteindex
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
setBytes
in interfaceChannelBuffer
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
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 modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
toByteBuffer
in interfaceChannelBuffer
-
checkIndex
private void checkIndex(int index) -
checkIndex
private void checkIndex(int index, int length)
-