Class ReplayingDecoderBuffer
- java.lang.Object
-
- org.jboss.netty.handler.codec.replay.ReplayingDecoderBuffer
-
- All Implemented Interfaces:
java.lang.Comparable<ChannelBuffer>
,ChannelBuffer
class ReplayingDecoderBuffer extends java.lang.Object implements ChannelBuffer
-
-
Field Summary
Fields Modifier and Type Field Description private ReplayingDecoder<?>
parent
private static java.lang.Error
REPLAY
private boolean
terminated
-
Constructor Summary
Constructors Constructor Description ReplayingDecoderBuffer(ReplayingDecoder<?> parent)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.private ChannelBuffer
buf()
int
bytesBefore(byte value)
Locates the first occurrence of the specifiedvalue
in this buffer.int
bytesBefore(int length, byte value)
Locates the first occurrence of the specifiedvalue
in this buffer.int
bytesBefore(int index, int length, byte value)
Locates the first occurrence of the specifiedvalue
in this buffer.int
bytesBefore(int index, int length, ChannelBufferIndexFinder indexFinder)
Locates the first place where the specifiedindexFinder
returnstrue
.int
bytesBefore(int length, ChannelBufferIndexFinder indexFinder)
Locates the first place where the specifiedindexFinder
returnstrue
.int
bytesBefore(ChannelBufferIndexFinder indexFinder)
Locates the first place where the specifiedindexFinder
returnstrue
.int
capacity()
Returns the number of bytes (octets) this buffer can contain.private void
checkIndex(int index, int length)
private void
checkReadableBytes(int readableBytes)
void
clear()
Sets thereaderIndex
andwriterIndex
of this buffer to0
.int
compareTo(ChannelBuffer buffer)
Compares the content of the specified buffer to the content of this buffer.ChannelBuffer
copy()
Returns a copy of this buffer's readable bytes.ChannelBuffer
copy(int index, int length)
Returns a copy of this buffer's sub-region.void
discardReadBytes()
Discards the bytes between the 0th index andreaderIndex
.ChannelBuffer
duplicate()
Returns a buffer which shares the whole region of this buffer.void
ensureWritableBytes(int writableBytes)
Makes sure the number of the writable bytes is equal to or greater than the specified value.boolean
equals(java.lang.Object obj)
Determines if the content of the specified buffer is identical to the content of this array.ChannelBufferFactory
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)
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
.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, java.io.OutputStream out, int length)
Transfers this buffer's data to the specified stream starting at the specified absoluteindex
.void
getBytes(int index, java.nio.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, java.nio.channels.GatheringByteChannel out, int length)
Transfers this buffer's data to the specified channel starting at the specified absoluteindex
.void
getBytes(int index, ChannelBuffer dst)
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
until the destination becomes non-writable.void
getBytes(int index, ChannelBuffer dst, int length)
Transfers this buffer's data to the specified destination 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
.char
getChar(int index)
Gets a 2-byte UTF-16 character at the specified absoluteindex
in this buffer.double
getDouble(int index)
Gets a 64-bit floating point number at the specified absoluteindex
in this buffer.float
getFloat(int index)
Gets a 32-bit floating point number at the specified absoluteindex
in this buffer.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.int
getMedium(int index)
Gets a 24-bit medium 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.short
getUnsignedByte(int index)
Gets an unsigned byte at the specified absoluteindex
in this buffer.long
getUnsignedInt(int index)
Gets an unsigned 32-bit 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.int
getUnsignedShort(int index)
Gets an unsigned 16-bit short integer at the specified absoluteindex
in this buffer.boolean
hasArray()
Returnstrue
if and only if this buffer has a backing byte array.int
hashCode()
Returns a hash code which was calculated from the content of this buffer.int
indexOf(int fromIndex, int toIndex, byte value)
Locates the first occurrence of the specifiedvalue
in this buffer.int
indexOf(int fromIndex, int toIndex, ChannelBufferIndexFinder indexFinder)
Locates the first place where the specifiedindexFinder
returnstrue
.boolean
isDirect()
Returnstrue
if and only if this buffer is backed by an NIO direct buffer.void
markReaderIndex()
Marks the currentreaderIndex
in this buffer.void
markWriterIndex()
Marks the currentwriterIndex
in this buffer.java.nio.ByteOrder
order()
Returns the endianness of this buffer.boolean
readable()
Returnstrue
if and only if(this.writerIndex - this.readerIndex)
is greater than0
.int
readableBytes()
Returns the number of readable bytes which is equal to(this.writerIndex - this.readerIndex)
.byte
readByte()
Gets a byte at the currentreaderIndex
and increases thereaderIndex
by1
in this buffer.void
readBytes(byte[] dst)
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=dst.length
).void
readBytes(byte[] dst, int dstIndex, int length)
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
).ChannelBuffer
readBytes(int length)
Transfers this buffer's data to a newly created buffer starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
).void
readBytes(java.io.OutputStream out, int length)
Transfers this buffer's data to the specified stream starting at the currentreaderIndex
.void
readBytes(java.nio.ByteBuffer dst)
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
until the destination's position reaches its limit, and increases thereaderIndex
by the number of the transferred bytes.int
readBytes(java.nio.channels.GatheringByteChannel out, int length)
Transfers this buffer's data to the specified stream starting at the currentreaderIndex
.void
readBytes(ChannelBuffer dst)
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
until the destination becomes non-writable, and increases thereaderIndex
by the number of the transferred bytes.void
readBytes(ChannelBuffer dst, int length)
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
).void
readBytes(ChannelBuffer dst, int dstIndex, int length)
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
).char
readChar()
Gets a 2-byte UTF-16 character at the currentreaderIndex
and increases thereaderIndex
by2
in this buffer.double
readDouble()
Gets a 64-bit floating point number at the currentreaderIndex
and increases thereaderIndex
by8
in this buffer.int
readerIndex()
Returns thereaderIndex
of this buffer.void
readerIndex(int readerIndex)
Sets thereaderIndex
of this buffer.float
readFloat()
Gets a 32-bit floating point number at the currentreaderIndex
and increases thereaderIndex
by4
in this buffer.int
readInt()
Gets a 32-bit integer at the currentreaderIndex
and increases thereaderIndex
by4
in this buffer.long
readLong()
Gets a 64-bit integer at the currentreaderIndex
and increases thereaderIndex
by8
in this buffer.int
readMedium()
Gets a 24-bit medium integer at the currentreaderIndex
and increases thereaderIndex
by3
in this buffer.short
readShort()
Gets a 16-bit short integer at the currentreaderIndex
and increases thereaderIndex
by2
in this buffer.ChannelBuffer
readSlice(int length)
Returns a new slice of this buffer's sub-region starting at the currentreaderIndex
and increases thereaderIndex
by the size of the new slice (=length
).short
readUnsignedByte()
Gets an unsigned byte at the currentreaderIndex
and increases thereaderIndex
by1
in this buffer.long
readUnsignedInt()
Gets an unsigned 32-bit integer at the currentreaderIndex
and increases thereaderIndex
by4
in this buffer.int
readUnsignedMedium()
Gets an unsigned 24-bit medium integer at the currentreaderIndex
and increases thereaderIndex
by3
in this buffer.int
readUnsignedShort()
Gets an unsigned 16-bit short integer at the currentreaderIndex
and increases thereaderIndex
by2
in this buffer.void
resetReaderIndex()
Repositions the currentreaderIndex
to the markedreaderIndex
in this buffer.void
resetWriterIndex()
Repositions the currentwriterIndex
to the markedwriterIndex
in 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)
Transfers the specified source array's data to this buffer starting at the specified absoluteindex
.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, java.io.InputStream in, int length)
Transfers the content of the specified source stream to this buffer starting at the specified absoluteindex
.void
setBytes(int index, java.nio.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, java.nio.channels.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)
Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex
until the source buffer becomes unreadable.void
setBytes(int index, ChannelBuffer src, int length)
Transfers the specified source buffer's data 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
setChar(int index, int value)
Sets the specified 2-byte UTF-16 character at the specified absoluteindex
in this buffer.void
setDouble(int index, double value)
Sets the specified 64-bit floating-point number at the specified absoluteindex
in this buffer.void
setFloat(int index, float value)
Sets the specified 32-bit floating-point number at the specified absoluteindex
in this buffer.void
setIndex(int readerIndex, int writerIndex)
Sets thereaderIndex
andwriterIndex
of this buffer in one shot.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.void
setZero(int index, int length)
Fills this buffer with NUL (0x00) starting at the specified absoluteindex
.void
skipBytes(int length)
Increases the currentreaderIndex
by the specifiedlength
in this buffer.ChannelBuffer
slice()
Returns a slice of this buffer's readable bytes.ChannelBuffer
slice(int index, int length)
Returns a slice of this buffer's sub-region.(package private) void
terminate()
java.nio.ByteBuffer
toByteBuffer()
Converts this buffer's readable bytes into a NIO buffer.java.nio.ByteBuffer
toByteBuffer(int index, int length)
Converts this buffer's sub-region into a NIO buffer.java.nio.ByteBuffer[]
toByteBuffers()
Converts this buffer's readable bytes into an array of NIO buffers.java.nio.ByteBuffer[]
toByteBuffers(int index, int length)
Converts this buffer's sub-region into an array of NIO buffers.java.lang.String
toString()
Returns the string representation of this buffer.java.lang.String
toString(int index, int length, java.nio.charset.Charset charset)
Decodes this buffer's sub-region into a string with the specified character set.java.lang.String
toString(java.nio.charset.Charset charsetName)
Decodes this buffer's readable bytes into a string with the specified character set name.boolean
writable()
Returnstrue
if and only if(this.capacity - this.writerIndex)
is greater than0
.int
writableBytes()
Returns the number of writable bytes which is equal to(this.capacity - this.writerIndex)
.void
writeByte(int value)
Sets the specified byte at the currentwriterIndex
and increases thewriterIndex
by1
in this buffer.void
writeBytes(byte[] src)
Transfers the specified source array's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=src.length
).void
writeBytes(byte[] src, int srcIndex, int length)
Transfers the specified source array's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=length
).int
writeBytes(java.io.InputStream in, int length)
Transfers the content of the specified stream to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes.void
writeBytes(java.nio.ByteBuffer src)
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
until the source buffer's position reaches its limit, and increases thewriterIndex
by the number of the transferred bytes.int
writeBytes(java.nio.channels.ScatteringByteChannel in, int length)
Transfers the content of the specified channel to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes.void
writeBytes(ChannelBuffer src)
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
until the source buffer becomes unreadable, and increases thewriterIndex
by the number of the transferred bytes.void
writeBytes(ChannelBuffer src, int length)
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=length
).void
writeBytes(ChannelBuffer src, int srcIndex, int length)
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=length
).void
writeChar(int value)
Sets the specified 2-byte UTF-16 character at the currentwriterIndex
and increases thewriterIndex
by2
in this buffer.void
writeDouble(double value)
Sets the specified 64-bit floating point number at the currentwriterIndex
and increases thewriterIndex
by8
in this buffer.void
writeFloat(float value)
Sets the specified 32-bit floating point number at the currentwriterIndex
and increases thewriterIndex
by4
in this buffer.void
writeInt(int value)
Sets the specified 32-bit integer at the currentwriterIndex
and increases thewriterIndex
by4
in this buffer.void
writeLong(long value)
Sets the specified 64-bit long integer at the currentwriterIndex
and increases thewriterIndex
by8
in this buffer.void
writeMedium(int value)
Sets the specified 24-bit medium integer at the currentwriterIndex
and increases thewriterIndex
by3
in this buffer.int
writerIndex()
Returns thewriterIndex
of this buffer.void
writerIndex(int writerIndex)
Sets thewriterIndex
of this buffer.void
writeShort(int value)
Sets the specified 16-bit short integer at the currentwriterIndex
and increases thewriterIndex
by2
in this buffer.void
writeZero(int length)
Fills this buffer with NUL (0x00) starting at the currentwriterIndex
and increases thewriterIndex
by the specifiedlength
.
-
-
-
Field Detail
-
REPLAY
private static final java.lang.Error REPLAY
-
parent
private final ReplayingDecoder<?> parent
-
terminated
private boolean terminated
-
-
Constructor Detail
-
ReplayingDecoderBuffer
ReplayingDecoderBuffer(ReplayingDecoder<?> parent)
-
-
Method Detail
-
buf
private ChannelBuffer buf()
-
terminate
void terminate()
-
capacity
public int capacity()
Description copied from interface:ChannelBuffer
Returns the number of bytes (octets) this buffer can contain.- Specified by:
capacity
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
-
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
-
clear
public void clear()
Description copied from interface:ChannelBuffer
Sets thereaderIndex
andwriterIndex
of this buffer to0
. This method is identical tosetIndex(0, 0)
.Please note that the behavior of this method is different from that of NIO buffer, which sets the
limit
to thecapacity
of the buffer.- Specified by:
clear
in interfaceChannelBuffer
-
equals
public boolean equals(java.lang.Object obj)
Description copied from interface:ChannelBuffer
Determines if the content of the specified buffer is identical to the content of this array. 'Identical' here means:- the size of the contents of the two buffers are same and
- every single byte of the content of the two buffers are same.
ChannelBuffer.readerIndex()
norChannelBuffer.writerIndex()
. This method also returnsfalse
fornull
and an object which is not an instance ofChannelBuffer
type.- Specified by:
equals
in interfaceChannelBuffer
- Overrides:
equals
in classjava.lang.Object
-
compareTo
public int compareTo(ChannelBuffer buffer)
Description copied from interface:ChannelBuffer
Compares the content of the specified buffer to the content of this buffer. Comparison is performed in the same manner with the string comparison functions of various languages such asstrcmp
,memcmp
andString.compareTo(String)
.- Specified by:
compareTo
in interfaceChannelBuffer
- Specified by:
compareTo
in interfacejava.lang.Comparable<ChannelBuffer>
-
copy
public ChannelBuffer copy()
Description copied from interface:ChannelBuffer
Returns a copy of this buffer's readable bytes. Modifying the content of the returned buffer or this buffer does not affect each other at all. This method is identical tobuf.copy(buf.readerIndex(), buf.readableBytes())
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
copy
in interfaceChannelBuffer
-
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 modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
copy
in interfaceChannelBuffer
-
discardReadBytes
public void discardReadBytes()
Description copied from interface:ChannelBuffer
Discards the bytes between the 0th index andreaderIndex
. It moves the bytes betweenreaderIndex
andwriterIndex
to the 0th index, and setsreaderIndex
andwriterIndex
to0
andoldWriterIndex - oldReaderIndex
respectively.Please refer to the class documentation for more detailed explanation.
- Specified by:
discardReadBytes
in interfaceChannelBuffer
-
ensureWritableBytes
public void ensureWritableBytes(int writableBytes)
Description copied from interface:ChannelBuffer
Makes sure the number of the writable bytes is equal to or greater than the specified value. If there is enough writable bytes in this buffer, this method returns with no side effect. Otherwise:- a non-dynamic buffer will throw an
IndexOutOfBoundsException
. - a dynamic buffer will expand its capacity so that the number of the
writable bytes
becomes equal to or greater than the specified value. The expansion involves the reallocation of the internal buffer and consequently memory copy.
- Specified by:
ensureWritableBytes
in interfaceChannelBuffer
- Parameters:
writableBytes
- the expected minimum number of writable bytes
- a non-dynamic buffer will throw an
-
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 tobuf.slice(0, buf.capacity())
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
duplicate
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
-
getUnsignedByte
public short getUnsignedByte(int index)
Description copied from interface:ChannelBuffer
Gets an unsigned byte at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getUnsignedByte
in interfaceChannelBuffer
-
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
public void getBytes(int index, byte[] dst)
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
-
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 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
-
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 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, ChannelBuffer dst, int length)
Description copied from interface:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
. This method is basically same withChannelBuffer.getBytes(int, ChannelBuffer, int, int)
, except that this method increases thewriterIndex
of the destination by the number of the transferred bytes whileChannelBuffer.getBytes(int, ChannelBuffer, int, int)
does not. This method does not modifyreaderIndex
orwriterIndex
of the source buffer (i.e.this
).- Specified by:
getBytes
in interfaceChannelBuffer
length
- the number of bytes to transfer
-
getBytes
public void getBytes(int index, ChannelBuffer dst)
Description copied from interface:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
until the destination becomes non-writable. This method is basically same withChannelBuffer.getBytes(int, ChannelBuffer, int, int)
, except that this method increases thewriterIndex
of the destination by the number of the transferred bytes whileChannelBuffer.getBytes(int, ChannelBuffer, int, int)
does not. This method does not modifyreaderIndex
orwriterIndex
of the source buffer (i.e.this
).- Specified by:
getBytes
in interfaceChannelBuffer
-
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 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:
java.io.IOException
- if the specified channel threw an exception during I/O
-
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 absoluteindex
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getBytes
in interfaceChannelBuffer
length
- the number of bytes to transfer- Throws:
java.io.IOException
- if the specified stream threw an exception during I/O
-
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
-
getUnsignedInt
public long getUnsignedInt(int index)
Description copied from interface:ChannelBuffer
Gets an unsigned 32-bit integer at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getUnsignedInt
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
-
getMedium
public int getMedium(int index)
Description copied from interface:ChannelBuffer
Gets a 24-bit medium integer at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getMedium
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
-
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
-
getUnsignedShort
public int getUnsignedShort(int index)
Description copied from interface:ChannelBuffer
Gets an unsigned 16-bit short integer at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getUnsignedShort
in interfaceChannelBuffer
-
getChar
public char getChar(int index)
Description copied from interface:ChannelBuffer
Gets a 2-byte UTF-16 character at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getChar
in interfaceChannelBuffer
-
getFloat
public float getFloat(int index)
Description copied from interface:ChannelBuffer
Gets a 32-bit floating point number at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getFloat
in interfaceChannelBuffer
-
getDouble
public double getDouble(int index)
Description copied from interface:ChannelBuffer
Gets a 64-bit floating point number at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getDouble
in interfaceChannelBuffer
-
hashCode
public int hashCode()
Description copied from interface:ChannelBuffer
Returns a hash code which was calculated from the content of this buffer. If there's a byte array which is equal to this array, both arrays should return the same value.- Specified by:
hashCode
in interfaceChannelBuffer
- Overrides:
hashCode
in classjava.lang.Object
-
indexOf
public int indexOf(int fromIndex, int toIndex, byte value)
Description copied from interface:ChannelBuffer
Locates the first occurrence of the specifiedvalue
in this buffer. The search takes place from the specifiedfromIndex
(inclusive) to the specifiedtoIndex
(exclusive).If
fromIndex
is greater thantoIndex
, the search is performed in a reversed order.This method does not modify
readerIndex
orwriterIndex
of this buffer.- Specified by:
indexOf
in interfaceChannelBuffer
- Returns:
- the absolute index of the first occurrence if found.
-1
otherwise.
-
indexOf
public int indexOf(int fromIndex, int toIndex, ChannelBufferIndexFinder indexFinder)
Description copied from interface:ChannelBuffer
Locates the first place where the specifiedindexFinder
returnstrue
. The search takes place from the specifiedfromIndex
(inclusive) to the specifiedtoIndex
(exclusive).If
fromIndex
is greater thantoIndex
, the search is performed in a reversed order.This method does not modify
readerIndex
orwriterIndex
of this buffer.- Specified by:
indexOf
in interfaceChannelBuffer
- Returns:
- the absolute index where the specified
indexFinder
returnedtrue
.-1
if theindexFinder
did not returntrue
at all.
-
bytesBefore
public int bytesBefore(byte value)
Description copied from interface:ChannelBuffer
Locates the first occurrence of the specifiedvalue
in this buffer. The search takes place from the currentreaderIndex
(inclusive) to the currentwriterIndex
(exclusive).This method does not modify
readerIndex
orwriterIndex
of this buffer.- Specified by:
bytesBefore
in interfaceChannelBuffer
- Returns:
- the number of bytes between the current
readerIndex
and the first occurrence if found.-1
otherwise.
-
bytesBefore
public int bytesBefore(ChannelBufferIndexFinder indexFinder)
Description copied from interface:ChannelBuffer
Locates the first place where the specifiedindexFinder
returnstrue
. The search takes place from the currentreaderIndex
(inclusive) to the currentwriterIndex
.This method does not modify
readerIndex
orwriterIndex
of this buffer.- Specified by:
bytesBefore
in interfaceChannelBuffer
- Returns:
- the number of bytes between the current
readerIndex
and the first place where theindexFinder
returnedtrue
.-1
if theindexFinder
did not returntrue
at all.
-
bytesBefore
public int bytesBefore(int length, byte value)
Description copied from interface:ChannelBuffer
Locates the first occurrence of the specifiedvalue
in this buffer. The search starts from the currentreaderIndex
(inclusive) and lasts for the specifiedlength
.This method does not modify
readerIndex
orwriterIndex
of this buffer.- Specified by:
bytesBefore
in interfaceChannelBuffer
- Returns:
- the number of bytes between the current
readerIndex
and the first occurrence if found.-1
otherwise.
-
bytesBefore
public int bytesBefore(int length, ChannelBufferIndexFinder indexFinder)
Description copied from interface:ChannelBuffer
Locates the first place where the specifiedindexFinder
returnstrue
. The search starts the currentreaderIndex
(inclusive) and lasts for the specifiedlength
.This method does not modify
readerIndex
orwriterIndex
of this buffer.- Specified by:
bytesBefore
in interfaceChannelBuffer
- Returns:
- the number of bytes between the current
readerIndex
and the first place where theindexFinder
returnedtrue
.-1
if theindexFinder
did not returntrue
at all.
-
bytesBefore
public int bytesBefore(int index, int length, byte value)
Description copied from interface:ChannelBuffer
Locates the first occurrence of the specifiedvalue
in this buffer. The search starts from the specifiedindex
(inclusive) and lasts for the specifiedlength
.This method does not modify
readerIndex
orwriterIndex
of this buffer.- Specified by:
bytesBefore
in interfaceChannelBuffer
- Returns:
- the number of bytes between the specified
index
and the first occurrence if found.-1
otherwise.
-
bytesBefore
public int bytesBefore(int index, int length, ChannelBufferIndexFinder indexFinder)
Description copied from interface:ChannelBuffer
Locates the first place where the specifiedindexFinder
returnstrue
. The search starts the specifiedindex
(inclusive) and lasts for the specifiedlength
.This method does not modify
readerIndex
orwriterIndex
of this buffer.- Specified by:
bytesBefore
in interfaceChannelBuffer
- Returns:
- the number of bytes between the specified
index
and the first place where theindexFinder
returnedtrue
.-1
if theindexFinder
did not returntrue
at all.
-
markReaderIndex
public void markReaderIndex()
Description copied from interface:ChannelBuffer
Marks the currentreaderIndex
in this buffer. You can reposition the currentreaderIndex
to the markedreaderIndex
by callingChannelBuffer.resetReaderIndex()
. The initial value of the markedreaderIndex
is0
.- Specified by:
markReaderIndex
in interfaceChannelBuffer
-
markWriterIndex
public void markWriterIndex()
Description copied from interface:ChannelBuffer
Marks the currentwriterIndex
in this buffer. You can reposition the currentwriterIndex
to the markedwriterIndex
by callingChannelBuffer.resetWriterIndex()
. The initial value of the markedwriterIndex
is0
.- Specified by:
markWriterIndex
in interfaceChannelBuffer
-
factory
public ChannelBufferFactory 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
public java.nio.ByteOrder order()
Description copied from interface:ChannelBuffer
Returns the endianness of this buffer.- Specified by:
order
in interfaceChannelBuffer
-
readable
public boolean readable()
Description copied from interface:ChannelBuffer
Returnstrue
if and only if(this.writerIndex - this.readerIndex)
is greater than0
.- Specified by:
readable
in interfaceChannelBuffer
-
readableBytes
public int readableBytes()
Description copied from interface:ChannelBuffer
Returns the number of readable bytes which is equal to(this.writerIndex - this.readerIndex)
.- Specified by:
readableBytes
in interfaceChannelBuffer
-
readByte
public byte readByte()
Description copied from interface:ChannelBuffer
Gets a byte at the currentreaderIndex
and increases thereaderIndex
by1
in this buffer.- Specified by:
readByte
in interfaceChannelBuffer
-
readUnsignedByte
public short readUnsignedByte()
Description copied from interface:ChannelBuffer
Gets an unsigned byte at the currentreaderIndex
and increases thereaderIndex
by1
in this buffer.- Specified by:
readUnsignedByte
in interfaceChannelBuffer
-
readBytes
public void readBytes(byte[] dst, int dstIndex, int length)
Description copied from interface:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
).- Specified by:
readBytes
in interfaceChannelBuffer
dstIndex
- the first index of the destinationlength
- the number of bytes to transfer
-
readBytes
public void readBytes(byte[] dst)
Description copied from interface:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=dst.length
).- Specified by:
readBytes
in interfaceChannelBuffer
-
readBytes
public void readBytes(java.nio.ByteBuffer dst)
Description copied from interface:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
until the destination's position reaches its limit, and increases thereaderIndex
by the number of the transferred bytes.- Specified by:
readBytes
in interfaceChannelBuffer
-
readBytes
public void readBytes(ChannelBuffer dst, int dstIndex, int length)
Description copied from interface:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
).- Specified by:
readBytes
in interfaceChannelBuffer
dstIndex
- the first index of the destinationlength
- the number of bytes to transfer
-
readBytes
public void readBytes(ChannelBuffer dst, int length)
Description copied from interface:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
). This method is basically same withChannelBuffer.readBytes(ChannelBuffer, int, int)
, except that this method increases thewriterIndex
of the destination by the number of the transferred bytes (=length
) whileChannelBuffer.readBytes(ChannelBuffer, int, int)
does not.- Specified by:
readBytes
in interfaceChannelBuffer
-
readBytes
public void readBytes(ChannelBuffer dst)
Description copied from interface:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
until the destination becomes non-writable, and increases thereaderIndex
by the number of the transferred bytes. This method is basically same withChannelBuffer.readBytes(ChannelBuffer, int, int)
, except that this method increases thewriterIndex
of the destination by the number of the transferred bytes whileChannelBuffer.readBytes(ChannelBuffer, int, int)
does not.- Specified by:
readBytes
in interfaceChannelBuffer
-
readBytes
public int readBytes(java.nio.channels.GatheringByteChannel out, int length) throws java.io.IOException
Description copied from interface:ChannelBuffer
Transfers this buffer's data to the specified stream starting at the currentreaderIndex
.- Specified by:
readBytes
in interfaceChannelBuffer
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
-
readBytes
public ChannelBuffer readBytes(int length)
Description copied from interface:ChannelBuffer
Transfers this buffer's data to a newly created buffer starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
). The returned buffer'sreaderIndex
andwriterIndex
are0
andlength
respectively.- Specified by:
readBytes
in interfaceChannelBuffer
- Parameters:
length
- the number of bytes to transfer- Returns:
- the newly created buffer which contains the transferred bytes
-
readSlice
public ChannelBuffer readSlice(int length)
Description copied from interface:ChannelBuffer
Returns a new slice of this buffer's sub-region starting at the currentreaderIndex
and increases thereaderIndex
by the size of the new slice (=length
).- Specified by:
readSlice
in interfaceChannelBuffer
- Parameters:
length
- the size of the new slice- Returns:
- the newly created slice
-
readBytes
public void readBytes(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 currentreaderIndex
.- Specified by:
readBytes
in interfaceChannelBuffer
length
- the number of bytes to transfer- Throws:
java.io.IOException
- if the specified stream threw an exception during I/O
-
readerIndex
public int readerIndex()
Description copied from interface:ChannelBuffer
Returns thereaderIndex
of this buffer.- Specified by:
readerIndex
in interfaceChannelBuffer
-
readerIndex
public void readerIndex(int readerIndex)
Description copied from interface:ChannelBuffer
Sets thereaderIndex
of this buffer.- Specified by:
readerIndex
in interfaceChannelBuffer
-
readInt
public int readInt()
Description copied from interface:ChannelBuffer
Gets a 32-bit integer at the currentreaderIndex
and increases thereaderIndex
by4
in this buffer.- Specified by:
readInt
in interfaceChannelBuffer
-
readUnsignedInt
public long readUnsignedInt()
Description copied from interface:ChannelBuffer
Gets an unsigned 32-bit integer at the currentreaderIndex
and increases thereaderIndex
by4
in this buffer.- Specified by:
readUnsignedInt
in interfaceChannelBuffer
-
readLong
public long readLong()
Description copied from interface:ChannelBuffer
Gets a 64-bit integer at the currentreaderIndex
and increases thereaderIndex
by8
in this buffer.- Specified by:
readLong
in interfaceChannelBuffer
-
readMedium
public int readMedium()
Description copied from interface:ChannelBuffer
Gets a 24-bit medium integer at the currentreaderIndex
and increases thereaderIndex
by3
in this buffer.- Specified by:
readMedium
in interfaceChannelBuffer
-
readUnsignedMedium
public int readUnsignedMedium()
Description copied from interface:ChannelBuffer
Gets an unsigned 24-bit medium integer at the currentreaderIndex
and increases thereaderIndex
by3
in this buffer.- Specified by:
readUnsignedMedium
in interfaceChannelBuffer
-
readShort
public short readShort()
Description copied from interface:ChannelBuffer
Gets a 16-bit short integer at the currentreaderIndex
and increases thereaderIndex
by2
in this buffer.- Specified by:
readShort
in interfaceChannelBuffer
-
readUnsignedShort
public int readUnsignedShort()
Description copied from interface:ChannelBuffer
Gets an unsigned 16-bit short integer at the currentreaderIndex
and increases thereaderIndex
by2
in this buffer.- Specified by:
readUnsignedShort
in interfaceChannelBuffer
-
readChar
public char readChar()
Description copied from interface:ChannelBuffer
Gets a 2-byte UTF-16 character at the currentreaderIndex
and increases thereaderIndex
by2
in this buffer.- Specified by:
readChar
in interfaceChannelBuffer
-
readFloat
public float readFloat()
Description copied from interface:ChannelBuffer
Gets a 32-bit floating point number at the currentreaderIndex
and increases thereaderIndex
by4
in this buffer.- Specified by:
readFloat
in interfaceChannelBuffer
-
readDouble
public double readDouble()
Description copied from interface:ChannelBuffer
Gets a 64-bit floating point number at the currentreaderIndex
and increases thereaderIndex
by8
in this buffer.- Specified by:
readDouble
in interfaceChannelBuffer
-
resetReaderIndex
public void resetReaderIndex()
Description copied from interface:ChannelBuffer
Repositions the currentreaderIndex
to the markedreaderIndex
in this buffer.- Specified by:
resetReaderIndex
in interfaceChannelBuffer
-
resetWriterIndex
public void resetWriterIndex()
Description copied from interface:ChannelBuffer
Repositions the currentwriterIndex
to the markedwriterIndex
in this buffer.- Specified by:
resetWriterIndex
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
-
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
public void setBytes(int index, byte[] src)
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
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 absoluteindex
until the source buffer's position reaches its limit. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
setBytes
in interfaceChannelBuffer
-
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 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
public void setBytes(int index, ChannelBuffer src, int length)
Description copied from interface:ChannelBuffer
Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex
. This method is basically same withChannelBuffer.setBytes(int, ChannelBuffer, int, int)
, except that this method increases thereaderIndex
of the source buffer by the number of the transferred bytes whileChannelBuffer.setBytes(int, ChannelBuffer, int, int)
does not. This method does not modifyreaderIndex
orwriterIndex
of the source buffer (i.e.this
).- Specified by:
setBytes
in interfaceChannelBuffer
length
- the number of bytes to transfer
-
setBytes
public void setBytes(int index, ChannelBuffer src)
Description copied from interface:ChannelBuffer
Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex
until the source buffer becomes unreadable. This method is basically same withChannelBuffer.setBytes(int, ChannelBuffer, int, int)
, except that this method increases thereaderIndex
of the source buffer by the number of the transferred bytes whileChannelBuffer.setBytes(int, ChannelBuffer, int, int)
does not. This method does not modifyreaderIndex
orwriterIndex
of the source buffer (i.e.this
).- Specified by:
setBytes
in interfaceChannelBuffer
-
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 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:
java.io.IOException
- if the specified stream threw an exception during I/O
-
setZero
public void setZero(int index, int length)
Description copied from interface:ChannelBuffer
Fills this buffer with NUL (0x00) starting at the specified absoluteindex
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
setZero
in interfaceChannelBuffer
length
- the number of NULs to write to the buffer
-
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 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:
java.io.IOException
- if the specified channel threw an exception during I/O
-
setIndex
public void setIndex(int readerIndex, int writerIndex)
Description copied from interface:ChannelBuffer
Sets thereaderIndex
andwriterIndex
of this buffer in one shot. This method is useful when you have to worry about the invocation order ofChannelBuffer.readerIndex(int)
andChannelBuffer.writerIndex(int)
methods. For example, the following code will fail:// Create a buffer whose readerIndex, writerIndex and capacity are // 0, 0 and 8 respectively.
The following code will also fail:ChannelBuffer
buf =ChannelBuffers
.buffer(8); // IndexOutOfBoundsException is thrown because the specified // readerIndex (2) cannot be greater than the current writerIndex (0). buf.readerIndex(2); buf.writerIndex(4);// Create a buffer whose readerIndex, writerIndex and capacity are // 0, 8 and 8 respectively.
By contrast, this method guarantees that it never throws anChannelBuffer
buf =ChannelBuffers
.wrappedBuffer(new byte[8]); // readerIndex becomes 8. buf.readLong(); // IndexOutOfBoundsException is thrown because the specified // writerIndex (4) cannot be less than the current readerIndex (8). buf.writerIndex(4); buf.readerIndex(2);IndexOutOfBoundsException
as long as the specified indexes meet basic constraints, regardless what the current index values of the buffer are:// No matter what the current state of the buffer is, the following // call always succeeds as long as the capacity of the buffer is not // less than 4. buf.setIndex(2, 4);
- Specified by:
setIndex
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
-
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
-
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
-
setChar
public void setChar(int index, int value)
Description copied from interface:ChannelBuffer
Sets the specified 2-byte UTF-16 character 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:
setChar
in interfaceChannelBuffer
-
setFloat
public void setFloat(int index, float value)
Description copied from interface:ChannelBuffer
Sets the specified 32-bit floating-point number at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
setFloat
in interfaceChannelBuffer
-
setDouble
public void setDouble(int index, double value)
Description copied from interface:ChannelBuffer
Sets the specified 64-bit floating-point number at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
setDouble
in interfaceChannelBuffer
-
skipBytes
public void skipBytes(int length)
Description copied from interface:ChannelBuffer
Increases the currentreaderIndex
by the specifiedlength
in this buffer.- Specified by:
skipBytes
in interfaceChannelBuffer
-
slice
public ChannelBuffer slice()
Description copied from interface:ChannelBuffer
Returns a slice of this buffer's readable bytes. 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(buf.readerIndex(), buf.readableBytes())
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
slice
in interfaceChannelBuffer
-
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 modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
slice
in interfaceChannelBuffer
-
toByteBuffer
public java.nio.ByteBuffer toByteBuffer()
Description copied from interface:ChannelBuffer
Converts this buffer's readable bytes 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 is identical tobuf.toByteBuffer(buf.readerIndex(), buf.readableBytes())
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
toByteBuffer
in interfaceChannelBuffer
-
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. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
toByteBuffer
in interfaceChannelBuffer
-
toByteBuffers
public java.nio.ByteBuffer[] toByteBuffers()
Description copied from interface:ChannelBuffer
Converts this buffer's readable bytes into an array of NIO buffers. The returned buffers might or might not share the content with this buffer, while they have separate indexes and marks. This method is identical tobuf.toByteBuffers(buf.readerIndex(), buf.readableBytes())
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
toByteBuffers
in interfaceChannelBuffer
-
toByteBuffers
public java.nio.ByteBuffer[] toByteBuffers(int index, int length)
Description copied from interface:ChannelBuffer
Converts this buffer's sub-region into an array of NIO buffers. The returned buffers 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:
toByteBuffers
in interfaceChannelBuffer
-
toString
public java.lang.String toString(int index, int length, java.nio.charset.Charset charset)
Description copied from interface:ChannelBuffer
Decodes this buffer's sub-region into a string with the specified character set. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
toString
in interfaceChannelBuffer
-
toString
public java.lang.String toString(java.nio.charset.Charset charsetName)
Description copied from interface:ChannelBuffer
Decodes this buffer's readable bytes into a string with the specified character set name. This method is identical tobuf.toString(buf.readerIndex(), buf.readableBytes(), charsetName)
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
toString
in interfaceChannelBuffer
-
toString
public java.lang.String toString()
Description copied from interface:ChannelBuffer
Returns the string representation of this buffer. This method does not necessarily return the whole content of the buffer but returns the values of the key properties such asChannelBuffer.readerIndex()
,ChannelBuffer.writerIndex()
andChannelBuffer.capacity()
.- Specified by:
toString
in interfaceChannelBuffer
- Overrides:
toString
in classjava.lang.Object
-
writable
public boolean writable()
Description copied from interface:ChannelBuffer
Returnstrue
if and only if(this.capacity - this.writerIndex)
is greater than0
.- Specified by:
writable
in interfaceChannelBuffer
-
writableBytes
public int writableBytes()
Description copied from interface:ChannelBuffer
Returns the number of writable bytes which is equal to(this.capacity - this.writerIndex)
.- Specified by:
writableBytes
in interfaceChannelBuffer
-
writeByte
public void writeByte(int value)
Description copied from interface:ChannelBuffer
Sets the specified byte at the currentwriterIndex
and increases thewriterIndex
by1
in this buffer. The 24 high-order bits of the specified value are ignored.- Specified by:
writeByte
in interfaceChannelBuffer
-
writeBytes
public void writeBytes(byte[] src, int srcIndex, int length)
Description copied from interface:ChannelBuffer
Transfers the specified source array's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=length
).- Specified by:
writeBytes
in interfaceChannelBuffer
srcIndex
- the first index of the sourcelength
- the number of bytes to transfer
-
writeBytes
public void writeBytes(byte[] src)
Description copied from interface:ChannelBuffer
Transfers the specified source array's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=src.length
).- Specified by:
writeBytes
in interfaceChannelBuffer
-
writeBytes
public void writeBytes(java.nio.ByteBuffer src)
Description copied from interface:ChannelBuffer
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
until the source buffer's position reaches its limit, and increases thewriterIndex
by the number of the transferred bytes.- Specified by:
writeBytes
in interfaceChannelBuffer
-
writeBytes
public void writeBytes(ChannelBuffer src, int srcIndex, int length)
Description copied from interface:ChannelBuffer
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=length
).- Specified by:
writeBytes
in interfaceChannelBuffer
srcIndex
- the first index of the sourcelength
- the number of bytes to transfer
-
writeBytes
public void writeBytes(ChannelBuffer src, int length)
Description copied from interface:ChannelBuffer
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=length
). This method is basically same withChannelBuffer.writeBytes(ChannelBuffer, int, int)
, except that this method increases thereaderIndex
of the source buffer by the number of the transferred bytes (=length
) whileChannelBuffer.writeBytes(ChannelBuffer, int, int)
does not.- Specified by:
writeBytes
in interfaceChannelBuffer
length
- the number of bytes to transfer
-
writeBytes
public void writeBytes(ChannelBuffer src)
Description copied from interface:ChannelBuffer
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
until the source buffer becomes unreadable, and increases thewriterIndex
by the number of the transferred bytes. This method is basically same withChannelBuffer.writeBytes(ChannelBuffer, int, int)
, except that this method increases thereaderIndex
of the source buffer by the number of the transferred bytes whileChannelBuffer.writeBytes(ChannelBuffer, int, int)
does not.- Specified by:
writeBytes
in interfaceChannelBuffer
-
writeBytes
public int writeBytes(java.io.InputStream in, int length) throws java.io.IOException
Description copied from interface:ChannelBuffer
Transfers the content of the specified stream to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes.- Specified by:
writeBytes
in interfaceChannelBuffer
length
- the number of bytes to transfer- Returns:
- the actual number of bytes read in from the specified stream
- Throws:
java.io.IOException
- if the specified stream threw an exception during I/O
-
writeBytes
public int writeBytes(java.nio.channels.ScatteringByteChannel in, int length) throws java.io.IOException
Description copied from interface:ChannelBuffer
Transfers the content of the specified channel to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes.- Specified by:
writeBytes
in interfaceChannelBuffer
length
- the maximum number of bytes to transfer- Returns:
- the actual number of bytes read in from the specified channel
- Throws:
java.io.IOException
- if the specified channel threw an exception during I/O
-
writeInt
public void writeInt(int value)
Description copied from interface:ChannelBuffer
Sets the specified 32-bit integer at the currentwriterIndex
and increases thewriterIndex
by4
in this buffer.- Specified by:
writeInt
in interfaceChannelBuffer
-
writeLong
public void writeLong(long value)
Description copied from interface:ChannelBuffer
Sets the specified 64-bit long integer at the currentwriterIndex
and increases thewriterIndex
by8
in this buffer.- Specified by:
writeLong
in interfaceChannelBuffer
-
writeMedium
public void writeMedium(int value)
Description copied from interface:ChannelBuffer
Sets the specified 24-bit medium integer at the currentwriterIndex
and increases thewriterIndex
by3
in this buffer.- Specified by:
writeMedium
in interfaceChannelBuffer
-
writeZero
public void writeZero(int length)
Description copied from interface:ChannelBuffer
Fills this buffer with NUL (0x00) starting at the currentwriterIndex
and increases thewriterIndex
by the specifiedlength
.- Specified by:
writeZero
in interfaceChannelBuffer
- Parameters:
length
- the number of NULs to write to the buffer
-
writerIndex
public int writerIndex()
Description copied from interface:ChannelBuffer
Returns thewriterIndex
of this buffer.- Specified by:
writerIndex
in interfaceChannelBuffer
-
writerIndex
public void writerIndex(int writerIndex)
Description copied from interface:ChannelBuffer
Sets thewriterIndex
of this buffer.- Specified by:
writerIndex
in interfaceChannelBuffer
-
writeShort
public void writeShort(int value)
Description copied from interface:ChannelBuffer
Sets the specified 16-bit short integer at the currentwriterIndex
and increases thewriterIndex
by2
in this buffer. The 16 high-order bits of the specified value are ignored.- Specified by:
writeShort
in interfaceChannelBuffer
-
writeChar
public void writeChar(int value)
Description copied from interface:ChannelBuffer
Sets the specified 2-byte UTF-16 character at the currentwriterIndex
and increases thewriterIndex
by2
in this buffer. The 16 high-order bits of the specified value are ignored.- Specified by:
writeChar
in interfaceChannelBuffer
-
writeFloat
public void writeFloat(float value)
Description copied from interface:ChannelBuffer
Sets the specified 32-bit floating point number at the currentwriterIndex
and increases thewriterIndex
by4
in this buffer.- Specified by:
writeFloat
in interfaceChannelBuffer
-
writeDouble
public void writeDouble(double value)
Description copied from interface:ChannelBuffer
Sets the specified 64-bit floating point number at the currentwriterIndex
and increases thewriterIndex
by8
in this buffer.- Specified by:
writeDouble
in interfaceChannelBuffer
-
checkIndex
private void checkIndex(int index, int length)
-
checkReadableBytes
private void checkReadableBytes(int readableBytes)
-
-