Modifier and Type | Field and Description |
---|---|
static EmptyBuffer |
EMPTY_BUFFER
An instance of
EmptyBuffer that can be shared. |
Modifier and Type | Method and 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.
|
Buffer |
asReadOnly()
Create a read-only view for this buffer.
|
int |
bytesBefore(byte value)
Locates the first occurrence of the specified
value in this
buffer. |
int |
bytesBefore(int length,
byte value)
Locates the first occurrence of the specified
value in this
buffer. |
int |
bytesBefore(int index,
int length,
byte value)
Locates the first occurrence of the specified
value in this
buffer. |
int |
capacity()
Returns the number of bytes (octets) this buffer can contain.
|
Buffer |
capacity(int newCapacity)
Sets the capacity of this buffer.
|
Buffer |
clear()
Sets the
readerIndex and writerIndex of this buffer to
0 . |
Buffer |
copy()
Returns a copy of this buffer's readable bytes.
|
Buffer |
copy(int index,
int length)
Returns a copy of this buffer's sub-region.
|
Buffer |
duplicate()
Returns a buffer which shares the whole region of this buffer.
|
Buffer |
ensureWritable(int minWritableBytes)
Expands the buffer
Buffer.capacity() to make sure the number of
writable bytes is equal to or greater than the
specified value. |
int |
ensureWritable(int minWritableBytes,
boolean force)
Expands the buffer
Buffer.capacity() to make sure the number of
writable bytes is equal to or greater than the
specified value. |
int |
forEachByte(ByteProcessor processor)
Iterates over the readable bytes of this buffer with the specified
processor in ascending order. |
int |
forEachByte(int index,
int length,
ByteProcessor processor)
Iterates over the specified area of this buffer with the specified
processor in ascending order. |
int |
forEachByteDesc(ByteProcessor processor)
Iterates over the readable bytes of this buffer with the specified
processor in descending order. |
int |
forEachByteDesc(int index,
int length,
ByteProcessor processor)
Iterates over the specified area of this buffer with the specified
processor in descending order. |
boolean |
getBoolean(int index)
Gets a boolean at the specified absolute (@code index) in this buffer.
|
byte |
getByte(int index)
Gets a byte at the specified absolute
index in this buffer. |
Buffer |
getBytes(int index,
Buffer dst)
Transfers this buffer's data to the specified destination starting at
the specified absolute
index until the destination becomes
non-writable. |
Buffer |
getBytes(int index,
Buffer dst,
int length)
Transfers this buffer's data to the specified destination starting at
the specified absolute
index . |
Buffer |
getBytes(int index,
Buffer dst,
int dstIndex,
int length)
Transfers this buffer's data to the specified destination starting at
the specified absolute
index . |
Buffer |
getBytes(int index,
byte[] dst)
Transfers this buffer's data to the specified destination starting at
the specified absolute
index . |
Buffer |
getBytes(int index,
byte[] dst,
int dstIndex,
int length)
Transfers this buffer's data to the specified destination starting at
the specified absolute
index . |
Buffer |
getBytes(int index,
java.nio.ByteBuffer dst)
Transfers this buffer's data to the specified destination starting at
the specified absolute
index until the destination's position
reaches its limit. |
char |
getChar(int index)
Gets a 2-byte UTF-16 character at the specified absolute
index in this buffer. |
double |
getDouble(int index)
Gets a 64-bit floating point number at the specified absolute
index in this buffer. |
float |
getFloat(int index)
Gets a 32-bit floating point number at the specified absolute
index in this buffer. |
int |
getInt(int index)
Gets a 32-bit integer at the specified absolute
index in
this buffer. |
int |
getIntLE(int index)
Gets a 32-bit integer at the specified absolute
index in
this buffer with Little Endian Byte Order. |
long |
getLong(int index)
Gets a 64-bit long integer at the specified absolute
index in
this buffer. |
long |
getLongLE(int index)
Gets a 64-bit long integer at the specified absolute
index in
this buffer in Little Endian Byte Order. |
int |
getMedium(int index)
Gets a 24-bit medium integer at the specified absolute
index in
this buffer. |
int |
getMediumLE(int index)
Gets a 24-bit medium integer at the specified absolute
index in
this buffer in the Little Endian Byte Order. |
short |
getShort(int index)
Gets a 16-bit short integer at the specified absolute
index in
this buffer. |
short |
getShortLE(int index)
Gets a 16-bit short integer at the specified absolute
index in
this buffer in Little Endian Byte Order. |
short |
getUnsignedByte(int index)
Gets an unsigned byte at the specified absolute
index in this
buffer. |
long |
getUnsignedInt(int index)
Gets an unsigned 32-bit integer at the specified absolute
index
in this buffer. |
long |
getUnsignedIntLE(int index)
Gets an unsigned 32-bit integer at the specified absolute
index
in this buffer in Little Endian Byte Order. |
int |
getUnsignedMedium(int index)
Gets an unsigned 24-bit medium integer at the specified absolute
index in this buffer. |
int |
getUnsignedMediumLE(int index)
Gets an unsigned 24-bit medium integer at the specified absolute
index in this buffer in Little Endian Byte Order. |
int |
getUnsignedShort(int index)
Gets an unsigned 16-bit short integer at the specified absolute
index in this buffer. |
int |
getUnsignedShortLE(int index)
Gets an unsigned 16-bit short integer at the specified absolute
index in this buffer in Little Endian Byte Order. |
boolean |
hasArray()
Returns
true if and only if this buffer has a backing byte array. |
int |
indexOf(int fromIndex,
int toIndex,
byte value)
Locates the first occurrence of the specified
value in this
buffer. |
boolean |
isDirect()
Returns
true if the buffer is direct and so not allocated on the heap. |
boolean |
isReadOnly()
Determine if this buffer is read-only.
|
int |
maxCapacity()
Returns the maximum allowed capacity of this buffer.
|
int |
maxWritableBytes()
Returns the maximum possible number of writable bytes, which is equal to
(this.maxCapacity - this.writerIndex) . |
int |
nioBufferCount()
Returns the maximum number of NIO
ByteBuffer s that consist this buffer. |
int |
readableBytes()
Returns the number of readable bytes which is equal to
(this.writerIndex - this.readerIndex) . |
boolean |
readBoolean()
Gets a boolean at the current
readerIndex and increases
the readerIndex by 1 in this buffer. |
byte |
readByte()
Gets a byte at the current
readerIndex and increases
the readerIndex by 1 in this buffer. |
Buffer |
readBytes(Buffer dst)
Transfers this buffer's data to the specified destination starting at
the current
readerIndex until the destination becomes
non-writable, and increases the readerIndex by the number of the
transferred bytes. |
Buffer |
readBytes(Buffer dst,
int length)
Transfers this buffer's data to the specified destination starting at
the current
readerIndex and increases the readerIndex
by the number of the transferred bytes (= length ). |
Buffer |
readBytes(Buffer dst,
int dstIndex,
int length)
Transfers this buffer's data to the specified destination starting at
the current
readerIndex and increases the readerIndex
by the number of the transferred bytes (= length ). |
Buffer |
readBytes(byte[] dst)
Transfers this buffer's data to the specified destination starting at
the current
readerIndex and increases the readerIndex
by the number of the transferred bytes (= dst.length ). |
Buffer |
readBytes(byte[] dst,
int dstIndex,
int length)
Transfers this buffer's data to the specified destination starting at
the current
readerIndex and increases the readerIndex
by the number of the transferred bytes (= length ). |
Buffer |
readBytes(java.nio.ByteBuffer dst)
Transfers this buffer's data to the specified destination starting at
the current
readerIndex until the destination's position
reaches its limit, and increases the readerIndex by the
number of the transferred bytes. |
Buffer |
readBytes(int length)
Transfers this buffer's data to a newly created buffer starting at
the current
readerIndex and increases the readerIndex
by the number of the transferred bytes (= length ). |
char |
readChar()
Gets a 2-byte UTF-16 character at the current
readerIndex
and increases the readerIndex by 2 in this buffer. |
double |
readDouble()
Gets a 64-bit floating point number at the current
readerIndex
and increases the readerIndex by 8 in this buffer. |
int |
readerIndex()
Returns the
readerIndex of this buffer. |
Buffer |
readerIndex(int readerIndex)
Sets the
readerIndex of this buffer. |
float |
readFloat()
Gets a 32-bit floating point number at the current
readerIndex
and increases the readerIndex by 4 in this buffer. |
int |
readInt()
Gets a 32-bit integer at the current
readerIndex
and increases the readerIndex by 4 in this buffer. |
int |
readIntLE()
Gets a 32-bit integer at the current
readerIndex
in the Little Endian Byte Order and increases the readerIndex
by 4 in this buffer. |
long |
readLong()
Gets a 64-bit integer at the current
readerIndex
and increases the readerIndex by 8 in this buffer. |
long |
readLongLE()
Gets a 64-bit integer at the current
readerIndex
in the Little Endian Byte Order and increases the readerIndex
by 8 in this buffer. |
int |
readMedium()
Gets a 24-bit medium integer at the current
readerIndex
and increases the readerIndex by 3 in this buffer. |
int |
readMediumLE()
Gets a 24-bit medium integer at the current
readerIndex
in the Little Endian Byte Order and increases the
readerIndex by 3 in this buffer. |
short |
readShort()
Gets a 16-bit short integer at the current
readerIndex
and increases the readerIndex by 2 in this buffer. |
short |
readShortLE()
Gets a 16-bit short integer at the current
readerIndex
in the Little Endian Byte Order and increases the readerIndex
by 2 in this buffer. |
Buffer |
readSlice(int length)
Returns a new slice of this buffer's sub-region starting at the current
readerIndex and increases the readerIndex by the size
of the new slice (= length ). |
short |
readUnsignedByte()
Gets an unsigned byte at the current
readerIndex and increases
the readerIndex by 1 in this buffer. |
long |
readUnsignedInt()
Gets an unsigned 32-bit integer at the current
readerIndex
and increases the readerIndex by 4 in this buffer. |
long |
readUnsignedIntLE()
Gets an unsigned 32-bit integer at the current
readerIndex
in the Little Endian Byte Order and increases the readerIndex
by 4 in this buffer. |
int |
readUnsignedMedium()
Gets an unsigned 24-bit medium integer at the current
readerIndex
and increases the readerIndex by 3 in this buffer. |
int |
readUnsignedMediumLE()
Gets an unsigned 24-bit medium integer at the current
readerIndex
in the Little Endian Byte Order and increases the readerIndex
by 3 in this buffer. |
int |
readUnsignedShort()
Gets an unsigned 16-bit short integer at the current
readerIndex
and increases the readerIndex by 2 in this buffer. |
int |
readUnsignedShortLE()
Gets an unsigned 16-bit short integer at the current
readerIndex
in the Little Endian Byte Order and increases the readerIndex
by 2 in this buffer. |
Buffer |
setBoolean(int index,
boolean value)
Sets the specified boolean at the specified absolute
index in this
buffer. |
Buffer |
setByte(int index,
int value)
Sets the specified byte at the specified absolute
index in this
buffer. |
Buffer |
setBytes(int index,
Buffer src)
Transfers the specified source buffer's data to this buffer starting at
the specified absolute
index until the source buffer becomes
unreadable. |
Buffer |
setBytes(int index,
Buffer src,
int length)
Transfers the specified source buffer's data to this buffer starting at
the specified absolute
index . |
Buffer |
setBytes(int index,
Buffer src,
int srcIndex,
int length)
Transfers the specified source buffer's data to this buffer starting at
the specified absolute
index . |
Buffer |
setBytes(int index,
byte[] src)
Transfers the specified source array's data to this buffer starting at
the specified absolute
index . |
Buffer |
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 . |
Buffer |
setBytes(int index,
java.nio.ByteBuffer src)
Transfers the specified source buffer's data to this buffer starting at
the specified absolute
index until the source buffer's position
reaches its limit. |
int |
setBytes(int index,
java.io.InputStream src,
int length)
Transfers a fixed amount from the specified source InputStream's data to this buffer starting at
the specified absolute
index until length bytes have been read, the end of stream
is reached, or an exception is thrown. |
int |
setBytesUntilEndStream(int index,
java.io.InputStream src,
int chunkSize)
Transfers all the specified source InputStream's data to this buffer starting at
the specified absolute
index until the end of stream is reached or an exception is thrown. |
Buffer |
setChar(int index,
int value)
Sets the specified 2-byte UTF-16 character at the specified absolute
index in this buffer. |
Buffer |
setDouble(int index,
double value)
Sets the specified 64-bit floating-point number at the specified
absolute
index in this buffer. |
Buffer |
setFloat(int index,
float value)
Sets the specified 32-bit floating-point number at the specified
absolute
index in this buffer. |
Buffer |
setInt(int index,
int value)
Sets the specified 32-bit integer at the specified absolute
index in this buffer. |
Buffer |
setIntLE(int index,
int value)
Sets the specified 32-bit integer at the specified absolute
index in this buffer with Little Endian byte order
. |
Buffer |
setLong(int index,
long value)
Sets the specified 64-bit long integer at the specified absolute
index in this buffer. |
Buffer |
setLongLE(int index,
long value)
Sets the specified 64-bit long integer at the specified absolute
index in this buffer in Little Endian Byte Order. |
Buffer |
setMedium(int index,
int value)
Sets the specified 24-bit medium integer at the specified absolute
index in this buffer. |
Buffer |
setMediumLE(int index,
int value)
Sets the specified 24-bit medium integer at the specified absolute
index in this buffer in the Little Endian Byte Order. |
Buffer |
setShort(int index,
int value)
Sets the specified 16-bit short integer at the specified absolute
index in this buffer. |
Buffer |
setShortLE(int index,
int value)
Sets the specified 16-bit short integer at the specified absolute
index in this buffer with the Little Endian Byte Order. |
Buffer |
skipBytes(int length)
Increases the current
readerIndex by the specified
length in this buffer. |
Buffer |
slice()
Returns a slice of this buffer's readable bytes.
|
Buffer |
slice(int index,
int length)
Returns a slice of this buffer's sub-region.
|
java.nio.ByteBuffer |
toNioBuffer()
Exposes this buffer's readable bytes as an NIO
ByteBuffer . |
java.nio.ByteBuffer |
toNioBuffer(int index,
int length)
Exposes this buffer's sub-region as an NIO
ByteBuffer . |
java.nio.ByteBuffer[] |
toNioBuffers()
Exposes this buffer's readable bytes as an NIO
ByteBuffer 's. |
java.nio.ByteBuffer[] |
toNioBuffers(int index,
int length)
Exposes this buffer's bytes as an NIO
ByteBuffer 's for the specified index and length
The returned buffer shares the content with this buffer, while changing the position and limit
of the returned NIO buffer does not affect the indexes of this buffer. |
java.lang.String |
toString(java.nio.charset.Charset charset)
Decodes this buffer's readable bytes into a string with the specified
character set name.
|
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.
|
int |
writableBytes()
Returns the number of writable bytes which is equal to
(this.capacity - this.writerIndex) . |
Buffer |
writeAscii(java.lang.CharSequence seq)
Encode a
CharSequence in ASCII and write it
to this buffer starting at writerIndex and increases the writerIndex by the
number of the transferred bytes. |
Buffer |
writeBoolean(boolean value)
Sets the specified boolean at the current
writerIndex
and increases the writerIndex by 1 in this buffer. |
Buffer |
writeByte(int value)
Sets the specified byte at the current
writerIndex
and increases the writerIndex by 1 in this buffer. |
Buffer |
writeBytes(Buffer src)
Transfers the specified source buffer's data to this buffer starting at
the current
writerIndex until the source buffer becomes
unreadable, and increases the writerIndex by the number of
the transferred bytes. |
Buffer |
writeBytes(Buffer src,
int length)
Transfers the specified source buffer's data to this buffer starting at
the current
writerIndex and increases the writerIndex
by the number of the transferred bytes (= length ). |
Buffer |
writeBytes(Buffer src,
int srcIndex,
int length)
Transfers the specified source buffer's data to this buffer starting at
the current
writerIndex and increases the writerIndex
by the number of the transferred bytes (= length ). |
Buffer |
writeBytes(byte[] src)
Transfers the specified source array's data to this buffer starting at
the current
writerIndex and increases the writerIndex
by the number of the transferred bytes (= src.length ). |
Buffer |
writeBytes(byte[] src,
int srcIndex,
int length)
Transfers the specified source array's data to this buffer starting at
the current
writerIndex and increases the writerIndex
by the number of the transferred bytes (= length ). |
Buffer |
writeBytes(java.nio.ByteBuffer src)
Transfers the specified source buffer's data to this buffer starting at
the current
writerIndex until the source buffer's position
reaches its limit, and increases the writerIndex by the
number of the transferred bytes. |
int |
writeBytes(java.io.InputStream src,
int length)
Transfers ta fixed amount from the specified source
InputStream 's data to this buffer starting at
the current writerIndex until length bytes have been read, the end of stream
is reached, or an exception is thrown. |
int |
writeBytesUntilEndStream(java.io.InputStream src,
int chunkSize)
Transfers all the specified source
InputStream 's data to this buffer starting at
the current writerIndex until the end of stream is reached or an exception is thrown. |
Buffer |
writeChar(int value)
Sets the specified 2-byte UTF-16 character at the current
writerIndex and increases the writerIndex by 2
in this buffer. |
Buffer |
writeDouble(double value)
Sets the specified 64-bit floating point number at the current
writerIndex and increases the writerIndex by 8
in this buffer. |
Buffer |
writeFloat(float value)
Sets the specified 32-bit floating point number at the current
writerIndex and increases the writerIndex by 4
in this buffer. |
Buffer |
writeInt(int value)
Sets the specified 32-bit integer at the current
writerIndex
and increases the writerIndex by 4 in this buffer. |
Buffer |
writeIntLE(int value)
Sets the specified 32-bit integer at the current
writerIndex
in the Little Endian Byte Order and increases the writerIndex
by 4 in this buffer. |
Buffer |
writeLong(long value)
Sets the specified 64-bit long integer at the current
writerIndex and increases the writerIndex by 8
in this buffer. |
Buffer |
writeLongLE(long value)
Sets the specified 64-bit long integer at the current
writerIndex in the Little Endian Byte Order and
increases the writerIndex by 8
in this buffer. |
Buffer |
writeMedium(int value)
Sets the specified 24-bit medium integer at the current
writerIndex and increases the writerIndex by 3
in this buffer. |
Buffer |
writeMediumLE(int value)
Sets the specified 24-bit medium integer at the current
writerIndex in the Little Endian Byte Order and
increases the writerIndex by 3 in this
buffer. |
int |
writerIndex()
Returns the
writerIndex of this buffer. |
Buffer |
writerIndex(int writerIndex)
Sets the
writerIndex of this buffer. |
Buffer |
writeShort(int value)
Sets the specified 16-bit short integer at the current
writerIndex and increases the writerIndex by 2
in this buffer. |
Buffer |
writeShortLE(int value)
Sets the specified 16-bit short integer in the Little Endian Byte
Order at the current
writerIndex and increases the
writerIndex by 2 in this buffer. |
Buffer |
writeUtf8(java.lang.CharSequence seq)
Encode a
CharSequence in UTF-8 and write it
to this buffer starting at writerIndex and increases the writerIndex by the
number of the transferred bytes. |
Buffer |
writeUtf8(java.lang.CharSequence seq,
int ensureWritable)
Encode a
CharSequence in UTF-8 and write it
to this buffer starting at writerIndex and increases the writerIndex by the
number of the transferred bytes. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
asInputStream, asOutputStream, equals, hashCode, toString, tryEnsureWritable
public static final EmptyBuffer EMPTY_BUFFER
EmptyBuffer
that can be shared.public int capacity()
Buffer
public Buffer capacity(int newCapacity)
Buffer
newCapacity
is less than the current
capacity, the content of this buffer is truncated. If the newCapacity
is greater
than the current capacity, the buffer is appended with unspecified data whose length is
(newCapacity - currentCapacity)
.public int maxCapacity()
Buffer
Buffer.capacity()
.maxCapacity
in interface Buffer
public int readerIndex()
Buffer
readerIndex
of this buffer.readerIndex
in interface Buffer
readerIndex
of this buffer.public Buffer readerIndex(int readerIndex)
Buffer
readerIndex
of this buffer.readerIndex
in interface Buffer
readerIndex
- the new readerIndex of this buffer.public int writerIndex()
Buffer
writerIndex
of this buffer.writerIndex
in interface Buffer
writerIndex
of this buffer.public Buffer writerIndex(int writerIndex)
Buffer
writerIndex
of this buffer.writerIndex
in interface Buffer
writerIndex
- the new writerIndex of this buffer.public int readableBytes()
Buffer
(this.writerIndex - this.readerIndex)
.readableBytes
in interface Buffer
public int writableBytes()
Buffer
(this.capacity - this.writerIndex)
.writableBytes
in interface Buffer
public int maxWritableBytes()
Buffer
(this.maxCapacity - this.writerIndex)
.maxWritableBytes
in interface Buffer
public Buffer ensureWritable(int minWritableBytes)
Buffer
Buffer.capacity()
to make sure the number of
writable bytes is equal to or greater than the
specified value. If there are enough writable bytes in this buffer, this method
returns with no side effect.ensureWritable
in interface Buffer
minWritableBytes
- the expected minimum number of writable bytespublic int ensureWritable(int minWritableBytes, boolean force)
Buffer
Buffer.capacity()
to make sure the number of
writable bytes is equal to or greater than the
specified value. Unlike Buffer.ensureWritable(int)
, this method returns a status code.ensureWritable
in interface Buffer
minWritableBytes
- the expected minimum number of writable bytesforce
- When Buffer.writerIndex()
+ minWritableBytes
> Buffer.maxCapacity()
:
true
- the capacity of the buffer is expanded to Buffer.maxCapacity()
false
- the capacity of the buffer is unchanged0
if the buffer has enough writable bytes, and its capacity is unchanged.
1
if the buffer does not have enough bytes, and its capacity is unchanged.
2
if the buffer has enough writable bytes, and its capacity has been increased.
3
if the buffer does not have enough bytes, but its capacity has been
increased to its maximum.public Buffer clear()
Buffer
readerIndex
and writerIndex
of this buffer to
0
.
Please note that the behavior of this method is different
from that of NIO buffer, which sets the limit
to
the capacity
of the buffer.
public boolean getBoolean(int index)
Buffer
readerIndex
or writerIndex
of this buffer.getBoolean
in interface Buffer
index
- absolute (@code index) in this buffer.public byte getByte(int index)
Buffer
index
in this buffer.
This method does not modify readerIndex
or writerIndex
of
this buffer.public short getUnsignedByte(int index)
Buffer
index
in this
buffer. This method does not modify readerIndex
or
writerIndex
of this buffer.getUnsignedByte
in interface Buffer
index
- absolute (@code index) in this buffer.public short getShort(int index)
Buffer
index
in
this buffer. This method does not modify readerIndex
or
writerIndex
of this buffer.public short getShortLE(int index)
Buffer
index
in
this buffer in Little Endian Byte Order. This method does not modify
readerIndex
or writerIndex
of this buffer.getShortLE
in interface Buffer
index
- absolute (@code index) in this buffer.public int getUnsignedShort(int index)
Buffer
index
in this buffer. This method does not modify
readerIndex
or writerIndex
of this buffer.getUnsignedShort
in interface Buffer
index
- absolute (@code index) in this buffer.public int getUnsignedShortLE(int index)
Buffer
index
in this buffer in Little Endian Byte Order.
This method does not modify readerIndex
or
writerIndex
of this buffer.getUnsignedShortLE
in interface Buffer
index
- absolute (@code index) in this buffer.public int getMedium(int index)
Buffer
index
in
this buffer. This method does not modify readerIndex
or
writerIndex
of this buffer.public int getMediumLE(int index)
Buffer
index
in
this buffer in the Little Endian Byte Order. This method does not
modify readerIndex
or writerIndex
of this buffer.getMediumLE
in interface Buffer
index
- absolute (@code index) in this buffer.public int getUnsignedMedium(int index)
Buffer
index
in this buffer. This method does not modify
readerIndex
or writerIndex
of this buffer.getUnsignedMedium
in interface Buffer
index
- absolute (@code index) in this buffer.public int getUnsignedMediumLE(int index)
Buffer
index
in this buffer in Little Endian Byte Order.
This method does not modify readerIndex
or
writerIndex
of this buffer.getUnsignedMediumLE
in interface Buffer
index
- absolute (@code index) in this buffer.public int getInt(int index)
Buffer
index
in
this buffer. This method does not modify readerIndex
or
writerIndex
of this buffer.public int getIntLE(int index)
Buffer
index
in
this buffer with Little Endian Byte Order. This method does not
modify readerIndex
or writerIndex
of this buffer.public long getUnsignedInt(int index)
Buffer
index
in this buffer. This method does not modify readerIndex
or
writerIndex
of this buffer.getUnsignedInt
in interface Buffer
index
- absolute (@code index) in this buffer.public long getUnsignedIntLE(int index)
Buffer
index
in this buffer in Little Endian Byte Order. This method does not
modify readerIndex
or writerIndex
of this buffer.getUnsignedIntLE
in interface Buffer
index
- absolute (@code index) in this buffer.public long getLong(int index)
Buffer
index
in
this buffer. This method does not modify readerIndex
or
writerIndex
of this buffer.public long getLongLE(int index)
Buffer
index
in
this buffer in Little Endian Byte Order. This method does not
modify readerIndex
or writerIndex
of this buffer.public char getChar(int index)
Buffer
index
in this buffer. This method does not modify
readerIndex
or writerIndex
of this buffer.public float getFloat(int index)
Buffer
index
in this buffer. This method does not modify
readerIndex
or writerIndex
of this buffer.public double getDouble(int index)
Buffer
index
in this buffer. This method does not modify
readerIndex
or writerIndex
of this buffer.public Buffer getBytes(int index, Buffer dst)
Buffer
index
until the destination becomes
non-writable. This method is basically same with
Buffer.getBytes(int, Buffer, int, int)
, except that this
method increases the writerIndex
of the destination by the
number of the transferred bytes while
Buffer.getBytes(int, Buffer, int, int)
does not.
This method does not modify readerIndex
or writerIndex
of
the source buffer (i.e. this
).public Buffer getBytes(int index, Buffer dst, int length)
Buffer
index
. This method is basically same
with Buffer.getBytes(int, Buffer, int, int)
, except that this
method increases the writerIndex
of the destination by the
number of the transferred bytes while
Buffer.getBytes(int, Buffer, int, int)
does not.
This method does not modify readerIndex
or writerIndex
of
the source buffer (i.e. this
).public Buffer getBytes(int index, Buffer dst, int dstIndex, int length)
Buffer
index
.
This method does not modify readerIndex
or writerIndex
of both the source (i.e. this
) and the destination.public Buffer getBytes(int index, byte[] dst)
Buffer
index
.
This method does not modify readerIndex
or writerIndex
of
this bufferpublic Buffer getBytes(int index, byte[] dst, int dstIndex, int length)
Buffer
index
.
This method does not modify readerIndex
or writerIndex
of this buffer.public Buffer getBytes(int index, java.nio.ByteBuffer dst)
Buffer
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.public Buffer setBoolean(int index, boolean value)
Buffer
index
in this
buffer.
This method does not modify readerIndex
or writerIndex
of
this buffer.setBoolean
in interface Buffer
index
- absolute (@code index) in this buffer.value
- the value.public Buffer setByte(int index, int value)
Buffer
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.public Buffer setShort(int index, int value)
Buffer
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.public Buffer setShortLE(int index, int value)
Buffer
index
in this buffer with the Little Endian Byte Order.
The 16 high-order bits of the specified value are ignored.
This method does not modify readerIndex
or writerIndex
of
this buffer.setShortLE
in interface Buffer
index
- absolute (@code index) in this buffer.value
- the value.public Buffer setMedium(int index, int value)
Buffer
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.public Buffer setMediumLE(int index, int value)
Buffer
index
in this buffer in the Little Endian Byte Order.
Please note that the most significant byte is ignored in the
specified value.
This method does not modify readerIndex
or writerIndex
of
this buffer.setMediumLE
in interface Buffer
index
- absolute (@code index) in this buffer.value
- the value.public Buffer setInt(int index, int value)
Buffer
index
in this buffer.
This method does not modify readerIndex
or writerIndex
of
this buffer.public Buffer setIntLE(int index, int value)
Buffer
index
in this buffer with Little Endian byte order
.
This method does not modify readerIndex
or writerIndex
of
this buffer.public Buffer setLong(int index, long value)
Buffer
index
in this buffer.
This method does not modify readerIndex
or writerIndex
of
this buffer.public Buffer setLongLE(int index, long value)
Buffer
index
in this buffer in Little Endian Byte Order.
This method does not modify readerIndex
or writerIndex
of
this buffer.public Buffer setChar(int index, int value)
Buffer
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.public Buffer setFloat(int index, float value)
Buffer
index
in this buffer.
This method does not modify readerIndex
or writerIndex
of
this buffer.public Buffer setDouble(int index, double value)
Buffer
index
in this buffer.
This method does not modify readerIndex
or writerIndex
of
this buffer.public Buffer setBytes(int index, Buffer src)
Buffer
index
until the source buffer becomes
unreadable. This method is basically same with
Buffer.setBytes(int, Buffer, int, int)
, except that this
method increases the readerIndex
of the source buffer by
the number of the transferred bytes while
Buffer.setBytes(int, Buffer, int, int)
does not.
This method does not modify readerIndex
or writerIndex
of
the source buffer (i.e. this
).public Buffer setBytes(int index, Buffer src, int length)
Buffer
index
. This method is basically same
with Buffer.setBytes(int, Buffer, int, int)
, except that this
method increases the readerIndex
of the source buffer by
the number of the transferred bytes while
Buffer.setBytes(int, Buffer, int, int)
does not.
This method does not modify readerIndex
or writerIndex
of
the source buffer (i.e. this
).public Buffer setBytes(int index, Buffer src, int srcIndex, int length)
Buffer
index
.
This method does not modify readerIndex
or writerIndex
of both the source (i.e. this
) and the destination.public Buffer setBytes(int index, byte[] src)
Buffer
index
.
This method does not modify readerIndex
or writerIndex
of
this buffer.public Buffer setBytes(int index, byte[] src, int srcIndex, int length)
Buffer
index
.
This method does not modify readerIndex
or writerIndex
of
this buffer.public Buffer setBytes(int index, java.nio.ByteBuffer src)
Buffer
index
until the source buffer's position
reaches its limit.
This method does not modify readerIndex
or writerIndex
of
this buffer.public int setBytes(int index, java.io.InputStream src, int length) throws java.io.IOException
Buffer
index
until length
bytes have been read, the end of stream
is reached, or an exception is thrown.
This method does not modify readerIndex
or writerIndex
of this buffer.
setBytes
in interface Buffer
index
- absolute (@code index) in this buffer.src
- the source InputStream.length
- the maximum number of bytes to transfer. The buffer may be resized to accommodate this amount of
data.src
.
-1
if the specified channel is closed.java.io.IOException
- if the InputStream throws an exception while being read from.public int setBytesUntilEndStream(int index, java.io.InputStream src, int chunkSize)
Buffer
index
until the end of stream is reached or an exception is thrown.
This method does not modify readerIndex
or writerIndex
of this buffer.
This method may modify the underlying storage size of this array to accomidate for reading data.
setBytesUntilEndStream
in interface Buffer
index
- absolute (@code index) in this buffer.src
- the source InputStream.chunkSize
- chunkSize the amount of data that will be read from src
on each read attempt.src
.
-1
if no bytes were read because the specified InputStream was closed when this method was called.public boolean readBoolean()
Buffer
readerIndex
and increases
the readerIndex
by 1
in this buffer.readBoolean
in interface Buffer
public byte readByte()
Buffer
readerIndex
and increases
the readerIndex
by 1
in this buffer.public short readUnsignedByte()
Buffer
readerIndex
and increases
the readerIndex
by 1
in this buffer.readUnsignedByte
in interface Buffer
public short readShort()
Buffer
readerIndex
and increases the readerIndex
by 2
in this buffer.public short readShortLE()
Buffer
readerIndex
in the Little Endian Byte Order and increases the readerIndex
by 2
in this buffer.readShortLE
in interface Buffer
public int readUnsignedShort()
Buffer
readerIndex
and increases the readerIndex
by 2
in this buffer.readUnsignedShort
in interface Buffer
public int readUnsignedShortLE()
Buffer
readerIndex
in the Little Endian Byte Order and increases the readerIndex
by 2
in this buffer.readUnsignedShortLE
in interface Buffer
public int readMedium()
Buffer
readerIndex
and increases the readerIndex
by 3
in this buffer.readMedium
in interface Buffer
public int readMediumLE()
Buffer
readerIndex
in the Little Endian Byte Order and increases the
readerIndex
by 3
in this buffer.readMediumLE
in interface Buffer
public int readUnsignedMedium()
Buffer
readerIndex
and increases the readerIndex
by 3
in this buffer.readUnsignedMedium
in interface Buffer
public int readUnsignedMediumLE()
Buffer
readerIndex
in the Little Endian Byte Order and increases the readerIndex
by 3
in this buffer.readUnsignedMediumLE
in interface Buffer
public int readInt()
Buffer
readerIndex
and increases the readerIndex
by 4
in this buffer.public int readIntLE()
Buffer
readerIndex
in the Little Endian Byte Order and increases the readerIndex
by 4
in this buffer.public long readUnsignedInt()
Buffer
readerIndex
and increases the readerIndex
by 4
in this buffer.readUnsignedInt
in interface Buffer
public long readUnsignedIntLE()
Buffer
readerIndex
in the Little Endian Byte Order and increases the readerIndex
by 4
in this buffer.readUnsignedIntLE
in interface Buffer
public long readLong()
Buffer
readerIndex
and increases the readerIndex
by 8
in this buffer.public long readLongLE()
Buffer
readerIndex
in the Little Endian Byte Order and increases the readerIndex
by 8
in this buffer.readLongLE
in interface Buffer
public char readChar()
Buffer
readerIndex
and increases the readerIndex
by 2
in this buffer.public float readFloat()
Buffer
readerIndex
and increases the readerIndex
by 4
in this buffer.public double readDouble()
Buffer
readerIndex
and increases the readerIndex
by 8
in this buffer.readDouble
in interface Buffer
public Buffer readSlice(int length)
Buffer
readerIndex
and increases the readerIndex
by the size
of the new slice (= length
).public Buffer readBytes(int length)
Buffer
readerIndex
and increases the readerIndex
by the number of the transferred bytes (= length
).
The returned buffer's readerIndex
and writerIndex
are
0
and length
respectively.public Buffer readBytes(Buffer dst)
Buffer
readerIndex
until the destination becomes
non-writable, and increases the readerIndex
by the number of the
transferred bytes. This method is basically same with
Buffer.readBytes(Buffer, int, int)
, except that this method
increases the writerIndex
of the destination by the number of
the transferred bytes while Buffer.readBytes(Buffer, int, int)
does not.public Buffer readBytes(Buffer dst, int length)
Buffer
readerIndex
and increases the readerIndex
by the number of the transferred bytes (= length
). This method
is basically same with Buffer.readBytes(Buffer, int, int)
,
except that this method increases the writerIndex
of the
destination by the number of the transferred bytes (= length
)
while Buffer.readBytes(Buffer, int, int)
does not.public Buffer readBytes(Buffer dst, int dstIndex, int length)
Buffer
readerIndex
and increases the readerIndex
by the number of the transferred bytes (= length
).public Buffer readBytes(byte[] dst)
Buffer
readerIndex
and increases the readerIndex
by the number of the transferred bytes (= dst.length
).public Buffer readBytes(byte[] dst, int dstIndex, int length)
Buffer
readerIndex
and increases the readerIndex
by the number of the transferred bytes (= length
).public Buffer readBytes(java.nio.ByteBuffer dst)
Buffer
readerIndex
until the destination's position
reaches its limit, and increases the readerIndex
by the
number of the transferred bytes.public Buffer skipBytes(int length)
Buffer
readerIndex
by the specified
length
in this buffer.public Buffer writeBoolean(boolean value)
Buffer
writerIndex
and increases the writerIndex
by 1
in this buffer.
If this.writableBytes
is less than 1
, Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.writeBoolean
in interface Buffer
value
- the value to write.public Buffer writeByte(int value)
Buffer
writerIndex
and increases the writerIndex
by 1
in this buffer.
The 24 high-order bits of the specified value are ignored.
If this.writableBytes
is less than 1
, Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.public Buffer writeShort(int value)
Buffer
writerIndex
and increases the writerIndex
by 2
in this buffer. The 16 high-order bits of the specified value are ignored.
If this.writableBytes
is less than 2
, Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.writeShort
in interface Buffer
value
- the value to write.public Buffer writeShortLE(int value)
Buffer
writerIndex
and increases the
writerIndex
by 2
in this buffer.
The 16 high-order bits of the specified value are ignored.
If this.writableBytes
is less than 2
, Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.writeShortLE
in interface Buffer
value
- the value to write.public Buffer writeMedium(int value)
Buffer
writerIndex
and increases the writerIndex
by 3
in this buffer.
If this.writableBytes
is less than 3
, Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.writeMedium
in interface Buffer
value
- the value to write.public Buffer writeMediumLE(int value)
Buffer
writerIndex
in the Little Endian Byte Order and
increases the writerIndex
by 3
in this
buffer.
If this.writableBytes
is less than 3
, Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.writeMediumLE
in interface Buffer
value
- the value to write.public Buffer writeInt(int value)
Buffer
writerIndex
and increases the writerIndex
by 4
in this buffer.
If this.writableBytes
is less than 4
, Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.public Buffer writeIntLE(int value)
Buffer
writerIndex
in the Little Endian Byte Order and increases the writerIndex
by 4
in this buffer.
If this.writableBytes
is less than 4
, Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.writeIntLE
in interface Buffer
value
- the value to write.public Buffer writeLong(long value)
Buffer
writerIndex
and increases the writerIndex
by 8
in this buffer.
If this.writableBytes
is less than 8
, Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.public Buffer writeLongLE(long value)
Buffer
writerIndex
in the Little Endian Byte Order and
increases the writerIndex
by 8
in this buffer.
If this.writableBytes
is less than 8
, Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.writeLongLE
in interface Buffer
value
- the value to write.public Buffer writeChar(int value)
Buffer
writerIndex
and increases the writerIndex
by 2
in this buffer. The 16 high-order bits of the specified value are ignored.
If this.writableBytes
is less than 2
, Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.public Buffer writeFloat(float value)
Buffer
writerIndex
and increases the writerIndex
by 4
in this buffer.
If this.writableBytes
is less than 4
, Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.writeFloat
in interface Buffer
value
- the value to write.public Buffer writeDouble(double value)
Buffer
writerIndex
and increases the writerIndex
by 8
in this buffer.
If this.writableBytes
is less than 8
, Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.writeDouble
in interface Buffer
value
- the value to write.public Buffer writeBytes(Buffer src)
Buffer
writerIndex
until the source buffer becomes
unreadable, and increases the writerIndex
by the number of
the transferred bytes. This method is basically same with
Buffer.writeBytes(Buffer, int, int)
, except that this method
increases the readerIndex
of the source buffer by the number of
the transferred bytes while Buffer.writeBytes(Buffer, int, int)
does not.
If this.writableBytes
is less than src.readableBytes
,
Buffer.ensureWritable(int)
will be called in an attempt to expand
capacity to accommodate.writeBytes
in interface Buffer
src
- the buffer to write.public Buffer writeBytes(Buffer src, int length)
Buffer
writerIndex
and increases the writerIndex
by the number of the transferred bytes (= length
). This method
is basically same with Buffer.writeBytes(Buffer, int, int)
,
except that this method increases the readerIndex
of the source
buffer by the number of the transferred bytes (= length
) while
Buffer.writeBytes(Buffer, int, int)
does not.
If this.writableBytes
is less than length
, Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.writeBytes
in interface Buffer
src
- the buffer to write.length
- the number of bytes to transferpublic Buffer writeBytes(Buffer src, int srcIndex, int length)
Buffer
writerIndex
and increases the writerIndex
by the number of the transferred bytes (= length
).
If this.writableBytes
is less than length
, Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.writeBytes
in interface Buffer
src
- the buffer to write.srcIndex
- the first index of the sourcelength
- the number of bytes to transferpublic Buffer writeBytes(byte[] src)
Buffer
writerIndex
and increases the writerIndex
by the number of the transferred bytes (= src.length
).
If this.writableBytes
is less than src.length
, Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.writeBytes
in interface Buffer
src
- the array to write.public Buffer writeBytes(byte[] src, int srcIndex, int length)
Buffer
writerIndex
and increases the writerIndex
by the number of the transferred bytes (= length
).
If this.writableBytes
is less than length
, Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.writeBytes
in interface Buffer
src
- the array to write.srcIndex
- the first index of the sourcelength
- the number of bytes to transferpublic Buffer writeBytes(java.nio.ByteBuffer src)
Buffer
writerIndex
until the source buffer's position
reaches its limit, and increases the writerIndex
by the
number of the transferred bytes.
If this.writableBytes
is less than src.remaining()
,
Buffer.ensureWritable(int)
will be called in an attempt to expand
capacity to accommodate.writeBytes
in interface Buffer
src
- the source buffer to write.public int writeBytes(java.io.InputStream src, int length)
Buffer
InputStream
's data to this buffer starting at
the current writerIndex
until length
bytes have been read, the end of stream
is reached, or an exception is thrown.
If this.writableBytes
is less than length
, Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.
This method will increase the writerIndex
by the number of the transferred bytes if the write operation
was successful.
writeBytes
in interface Buffer
src
- the source InputStream
to write.length
- the maximum number of bytes to transfer. The buffer may be resized to accommodate this amount of
data.src
.
-1
if the specified channel is closed.public int writeBytesUntilEndStream(java.io.InputStream src, int chunkSize)
Buffer
InputStream
's data to this buffer starting at
the current writerIndex
until the end of stream is reached or an exception is thrown.
If this.writableBytes
is less than the number of bytes in the InputStream
,
Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.
Note that because InputStream
does not provide a reliable way to get the remaining bytes,
this method may over allocate by a factor of chunkSize
.
This method will increase the writerIndex
by the number of the transferred bytes if the write operation
was successful.
writeBytesUntilEndStream
in interface Buffer
src
- the source InputStream
to write.chunkSize
- the amount of data that will be read from src
on each read attempt.src
.
-1
if no bytes were read because the specified InputStream
was closed when this method
was called.public Buffer writeAscii(java.lang.CharSequence seq)
Buffer
CharSequence
in ASCII and write it
to this buffer starting at writerIndex
and increases the writerIndex
by the
number of the transferred bytes.
If this.writableBytes
is not large enough to write the whole sequence,
Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.writeAscii
in interface Buffer
seq
- the source of the data.public Buffer writeUtf8(java.lang.CharSequence seq)
Buffer
CharSequence
in UTF-8 and write it
to this buffer starting at writerIndex
and increases the writerIndex
by the
number of the transferred bytes.
If this.writableBytes
is not large enough to write the whole sequence,
Buffer.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.public Buffer writeUtf8(java.lang.CharSequence seq, int ensureWritable)
Buffer
CharSequence
in UTF-8 and write it
to this buffer starting at writerIndex
and increases the writerIndex
by the
number of the transferred bytes.public int indexOf(int fromIndex, int toIndex, byte value)
Buffer
value
in this
buffer. The search takes place from the specified fromIndex
(inclusive) to the specified toIndex
(exclusive).
If fromIndex
is greater than toIndex
, the search is
performed in a reversed order.
This method does not modify readerIndex
or writerIndex
of
this buffer.
public int bytesBefore(byte value)
Buffer
value
in this
buffer. The search takes place from the current readerIndex
(inclusive) to the current writerIndex
(exclusive).
This method does not modify readerIndex
or writerIndex
of
this buffer.
bytesBefore
in interface Buffer
value
- the value to search.readerIndex
and the first occurrence if found. -1
otherwise.public int bytesBefore(int length, byte value)
Buffer
value
in this
buffer. The search starts from the current readerIndex
(inclusive) and lasts for the specified length
.
This method does not modify readerIndex
or writerIndex
of
this buffer.
bytesBefore
in interface Buffer
length
- the length.value
- the value to search.readerIndex
and the first occurrence if found. -1
otherwise.public int bytesBefore(int index, int length, byte value)
Buffer
value
in this
buffer. The search starts from the specified index
(inclusive)
and lasts for the specified length
.
This method does not modify readerIndex
or writerIndex
of
this buffer.
bytesBefore
in interface Buffer
index
- the index.length
- the length.value
- the value to search.index
and the first occurrence if found. -1
otherwise.public Buffer copy()
Buffer
buf.copy(buf.readerIndex(), buf.readableBytes())
.
This method does not modify readerIndex
or writerIndex
of
this buffer.public Buffer copy(int index, int length)
Buffer
readerIndex
or writerIndex
of
this buffer.public Buffer slice()
Buffer
buf.slice(buf.readerIndex(), buf.readableBytes())
.
This method does not modify readerIndex
or writerIndex
of
this buffer.public Buffer slice(int index, int length)
Buffer
readerIndex
or writerIndex
of
this buffer.public Buffer duplicate()
Buffer
buf.slice(0, buf.capacity())
.
This method does not modify readerIndex
or writerIndex
of
this buffer.public int nioBufferCount()
Buffer
ByteBuffer
s that consist this buffer. Note that
Buffer.toNioBuffers()
or Buffer.toNioBuffers(int, int)
might return a less number of ByteBuffer
s.nioBufferCount
in interface Buffer
-1
if this buffer has no underlying ByteBuffer
.
the number of the underlying ByteBuffer
s if this buffer has at least one underlying
ByteBuffer
. Note that this method does not return 0
to avoid confusion.Buffer.toNioBuffer()
,
Buffer.toNioBuffer(int, int)
,
Buffer.toNioBuffers()
,
Buffer.toNioBuffers(int, int)
public java.nio.ByteBuffer toNioBuffer()
Buffer
ByteBuffer
. The returned buffer
shares the content with this buffer, while changing the position and limit of the returned
NIO buffer does not affect the indexes of this buffer. This method is identical
to buf.nioBuffer(buf.readerIndex(), buf.readableBytes())
. This method does not
modify readerIndex
or writerIndex
of this buffer. Please note that the
returned NIO buffer will not see the changes of this buffer if this buffer is a dynamic
buffer and it adjusted its capacity.toNioBuffer
in interface Buffer
Buffer.nioBufferCount()
,
Buffer.toNioBuffers()
,
Buffer.toNioBuffers(int, int)
public java.nio.ByteBuffer toNioBuffer(int index, int length)
Buffer
ByteBuffer
. The returned buffer
shares the content with this buffer, while changing the position and limit of the returned
NIO buffer does not affect the indexes of this buffer. This method does not
modify readerIndex
or writerIndex
of this buffer. Please note that the
returned NIO buffer will not see the changes of this buffer if this buffer is a dynamic
buffer and it adjusted its capacity.toNioBuffer
in interface Buffer
index
- the start index.length
- the length.Buffer.nioBufferCount()
,
Buffer.toNioBuffers()
,
Buffer.toNioBuffers(int, int)
public java.nio.ByteBuffer[] toNioBuffers()
Buffer
ByteBuffer
's. The returned buffer
shares the content with this buffer, while changing the position and limit of the returned
NIO buffer does not affect the indexes of this buffer. This method does not
modify readerIndex
or writerIndex
of this buffer. Please note that the
returned NIO buffer will not see the changes of this buffer if this buffer is a dynamic
buffer and it adjusted its capacity.toNioBuffers
in interface Buffer
Buffer.nioBufferCount()
,
Buffer.toNioBuffer()
,
Buffer.toNioBuffer(int, int)
public java.nio.ByteBuffer[] toNioBuffers(int index, int length)
Buffer
ByteBuffer
's for the specified index and length
The returned buffer shares the content with this buffer, while changing the position and limit
of the returned NIO buffer does not affect the indexes of this buffer. This method does
not modify readerIndex
or writerIndex
of this buffer. Please note that the
returned NIO buffer will not see the changes of this buffer if this buffer is a dynamic
buffer and it adjusted its capacity.toNioBuffers
in interface Buffer
index
- the start index.length
- the length.Buffer.nioBufferCount()
,
Buffer.toNioBuffer()
,
Buffer.toNioBuffer(int, int)
public boolean isReadOnly()
Buffer
isReadOnly
in interface Buffer
true
if and only if this buffer is read-only.public Buffer asReadOnly()
Buffer
The returned read-only view shares indexes and content with the original Buffer
. All methods that try
to change the content will throw ReadOnlyBufferException
. Modifications for indexes are allowed and will
be propagated to the original Buffer
. To prevent changes of indexes for the original Buffer
use
Buffer.duplicate()
before converting to a read-only view.
asReadOnly
in interface Buffer
public boolean isDirect()
Buffer
true
if the buffer is direct and so not allocated on the heap.public boolean hasArray()
Buffer
true
if and only if this buffer has a backing byte array.
If this method returns true, you can safely call Buffer.array()
and
Buffer.arrayOffset()
.public byte[] array()
Buffer
public int arrayOffset()
Buffer
arrayOffset
in interface Buffer
public java.lang.String toString(java.nio.charset.Charset charset)
Buffer
buf.toString(buf.readerIndex(), buf.readableBytes(), charsetName)
.
This method does not modify readerIndex
or writerIndex
of
this buffer.public java.lang.String toString(int index, int length, java.nio.charset.Charset charset)
Buffer
readerIndex
or
writerIndex
of this buffer.public int forEachByte(ByteProcessor processor)
Buffer
processor
in ascending order.forEachByte
in interface Buffer
processor
- the ByteProcessor
to use.-1
if the processor iterated to or beyond the end of the readable bytes.
The last-visited index If the ByteProcessor.process(byte)
returned false
.public int forEachByte(int index, int length, ByteProcessor processor)
Buffer
processor
in ascending order.
(i.e. index
, (index + 1)
, .. (index + length - 1)
)forEachByte
in interface Buffer
index
- The index to start iterating from.length
- The amount of bytes to iterate over.processor
- the ByteProcessor
to use.-1
if the processor iterated to or beyond the end of the specified area.
The last-visited index If the ByteProcessor.process(byte)
returned false
.public int forEachByteDesc(ByteProcessor processor)
Buffer
processor
in descending order.forEachByteDesc
in interface Buffer
processor
- the ByteProcessor
to use.-1
if the processor iterated to or beyond the beginning of the readable bytes.
The last-visited index If the ByteProcessor.process(byte)
returned false
.public int forEachByteDesc(int index, int length, ByteProcessor processor)
Buffer
processor
in descending order.
(i.e. (index + length - 1)
, (index + length - 2)
, ... index
)forEachByteDesc
in interface Buffer
index
- The index to start iterating from.length
- The amount of bytes to iterate over.processor
- the ByteProcessor
to use.-1
if the processor iterated to or beyond the beginning of the specified area.
The last-visited index If the ByteProcessor.process(byte)
returned false
.