public final class EmptyByteBuf extends ByteBuf
ByteBuf whose capacity and maximum capacity are all 0.| Constructor and Description |
|---|
EmptyByteBuf(ByteBufAllocator alloc) |
| Modifier and Type | Method and Description |
|---|---|
ByteBufAllocator |
alloc()
Returns the
ByteBufAllocator which created this buffer. |
byte[] |
array()
Returns the backing byte array of this buffer.
|
int |
arrayOffset()
Returns the offset of the first byte within the backing byte array of
this buffer.
|
int |
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.
|
ByteBuf |
capacity(int newCapacity)
Adjusts the capacity of this buffer.
|
ByteBuf |
clear()
Sets the
readerIndex and writerIndex of this buffer to
0. |
int |
compareTo(ByteBuf buffer)
Compares the content of the specified buffer to the content of this
buffer.
|
ByteBuf |
copy()
Returns a copy of this buffer's readable bytes.
|
ByteBuf |
copy(int index,
int length)
Returns a copy of this buffer's sub-region.
|
ByteBuf |
discardReadBytes()
Discards the bytes between the 0th index and
readerIndex. |
ByteBuf |
discardSomeReadBytes()
Similar to
ByteBuf.discardReadBytes() except that this method might discard
some, all, or none of read bytes depending on its internal implementation to reduce
overall memory bandwidth consumption at the cost of potentially additional memory
consumption. |
ByteBuf |
duplicate()
Returns a buffer which shares the whole region of this buffer.
|
ByteBuf |
ensureWritable(int minWritableBytes)
Makes sure the number of the writable bytes
is equal to or greater than the specified value.
|
int |
ensureWritable(int minWritableBytes,
boolean force)
Tries to make 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.
|
int |
forEachByte(ByteBufProcessor processor)
Iterates over the readable bytes of this buffer with the specified
processor in ascending order. |
int |
forEachByte(int index,
int length,
ByteBufProcessor processor)
Iterates over the specified area of this buffer with the specified
processor in ascending order. |
int |
forEachByteDesc(ByteBufProcessor processor)
Iterates over the readable bytes of this buffer with the specified
processor in descending order. |
int |
forEachByteDesc(int index,
int length,
ByteBufProcessor 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. |
ByteBuf |
getBytes(int index,
byte[] dst)
Transfers this buffer's data to the specified destination starting at
the specified absolute
index. |
ByteBuf |
getBytes(int index,
byte[] dst,
int dstIndex,
int length)
Transfers this buffer's data to the specified destination starting at
the specified absolute
index. |
ByteBuf |
getBytes(int index,
ByteBuf dst)
Transfers this buffer's data to the specified destination starting at
the specified absolute
index until the destination becomes
non-writable. |
ByteBuf |
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. |
ByteBuf |
getBytes(int index,
ByteBuf dst,
int length)
Transfers this buffer's data to the specified destination starting at
the specified absolute
index. |
ByteBuf |
getBytes(int index,
ByteBuf dst,
int dstIndex,
int length)
Transfers this buffer's data to the specified destination starting at
the specified absolute
index. |
int |
getBytes(int index,
java.nio.channels.GatheringByteChannel out,
int length)
Transfers this buffer's data to the specified channel starting at the
specified absolute
index. |
ByteBuf |
getBytes(int index,
java.io.OutputStream out,
int length)
Transfers this buffer's data to the specified stream starting at the
specified absolute
index. |
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. |
long |
getLong(int index)
Gets a 64-bit long integer at the specified absolute
index in
this buffer. |
int |
getMedium(int index)
Gets a 24-bit medium integer at the specified absolute
index in
this buffer. |
short |
getShort(int index)
Gets a 16-bit short integer at the specified absolute
index in
this buffer. |
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. |
int |
getUnsignedMedium(int index)
Gets an unsigned 24-bit medium integer at the specified absolute
index in this buffer. |
int |
getUnsignedShort(int index)
Gets an unsigned 16-bit short integer at the specified absolute
index in this buffer. |
boolean |
hasArray()
Returns
true 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.
|
boolean |
hasMemoryAddress()
Returns
true if and only if this buffer has a reference to the low-level memory address that points
to the backing data. |
int |
indexOf(int fromIndex,
int toIndex,
byte value)
Locates the first occurrence of the specified
value in this
buffer. |
java.nio.ByteBuffer |
internalNioBuffer(int index,
int length)
Internal use only: Exposes the internal NIO buffer.
|
boolean |
isDirect()
Returns
true if and only if this buffer is backed by an
NIO direct buffer. |
boolean |
isReadable()
Returns
true
if and only if (this.writerIndex - this.readerIndex) is greater
than 0. |
boolean |
isReadable(int size)
Returns
true if and only if this buffer contains equal to or more than the specified number of elements. |
boolean |
isWritable()
Returns
true
if and only if (this.capacity - this.writerIndex) is greater
than 0. |
boolean |
isWritable(int size)
Returns
true if and only if this buffer has enough room to allow writing the specified number of
elements. |
ByteBuf |
markReaderIndex()
Marks the current
readerIndex in this buffer. |
ByteBuf |
markWriterIndex()
Marks the current
writerIndex in this buffer. |
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). |
long |
memoryAddress()
Returns the low-level memory address that point to the first byte of ths backing data.
|
java.nio.ByteBuffer |
nioBuffer()
Exposes this buffer's readable bytes as an NIO
ByteBuffer. |
java.nio.ByteBuffer |
nioBuffer(int index,
int length)
Exposes this buffer's sub-region as an NIO
ByteBuffer. |
int |
nioBufferCount()
Returns the maximum number of NIO
ByteBuffers that consist this buffer. |
java.nio.ByteBuffer[] |
nioBuffers()
Exposes this buffer's readable bytes as an NIO
ByteBuffer's. |
java.nio.ByteBuffer[] |
nioBuffers(int index,
int length)
Exposes this buffer's bytes as an NIO
ByteBuffer's for the specified index and length
The returned buffer either share or contains the copied content of this buffer, while changing
the position and limit of the returned NIO buffer does not affect the indexes and marks of this buffer. |
java.nio.ByteOrder |
order()
Returns the endianness
of this buffer.
|
ByteBuf |
order(java.nio.ByteOrder endianness)
Returns a buffer with the specified
endianness which shares the whole region,
indexes, and marks of 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. |
ByteBuf |
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). |
ByteBuf |
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). |
ByteBuf |
readBytes(ByteBuf 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. |
ByteBuf |
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. |
ByteBuf |
readBytes(ByteBuf 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). |
ByteBuf |
readBytes(ByteBuf 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). |
int |
readBytes(java.nio.channels.GatheringByteChannel out,
int length)
Transfers this buffer's data to the specified stream starting at the
current
readerIndex. |
ByteBuf |
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). |
ByteBuf |
readBytes(java.io.OutputStream out,
int length)
Transfers this buffer's data to the specified stream starting at the
current
readerIndex. |
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. |
ByteBuf |
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. |
long |
readLong()
Gets a 64-bit integer at the current
readerIndex
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. |
short |
readShort()
Gets a 16-bit short integer at the current
readerIndex
and increases the readerIndex by 2 in this buffer. |
ByteBuf |
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. |
int |
readUnsignedMedium()
Gets an unsigned 24-bit medium integer at the current
readerIndex
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 |
refCnt()
Returns the reference count of this object.
|
boolean |
release()
Decreases the reference count by
1 and deallocates this object if the reference count reaches at
0. |
boolean |
release(int decrement)
Decreases the reference count by the specified
decrement and deallocates this object if the reference
count reaches at 0. |
ByteBuf |
resetReaderIndex()
Repositions the current
readerIndex to the marked
readerIndex in this buffer. |
ByteBuf |
resetWriterIndex()
Repositions the current
writerIndex to the marked
writerIndex in this buffer. |
ByteBuf |
retain()
Increases the reference count by
1. |
ByteBuf |
retain(int increment)
Increases the reference count by the specified
increment. |
ByteBuf |
setBoolean(int index,
boolean value)
Sets the specified boolean at the specified absolute
index in this
buffer. |
ByteBuf |
setByte(int index,
int value)
Sets the specified byte at the specified absolute
index in this
buffer. |
ByteBuf |
setBytes(int index,
byte[] src)
Transfers the specified source array's data to this buffer starting at
the specified absolute
index. |
ByteBuf |
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. |
ByteBuf |
setBytes(int index,
ByteBuf src)
Transfers the specified source buffer's data to this buffer starting at
the specified absolute
index until the source buffer becomes
unreadable. |
ByteBuf |
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. |
ByteBuf |
setBytes(int index,
ByteBuf src,
int length)
Transfers the specified source buffer's data to this buffer starting at
the specified absolute
index. |
ByteBuf |
setBytes(int index,
ByteBuf src,
int srcIndex,
int length)
Transfers the specified source buffer's data to this buffer starting at
the specified absolute
index. |
int |
setBytes(int index,
java.io.InputStream in,
int length)
Transfers the content of the specified source stream to this buffer
starting at the specified absolute
index. |
int |
setBytes(int index,
java.nio.channels.ScatteringByteChannel in,
int length)
Transfers the content of the specified source channel to this buffer
starting at the specified absolute
index. |
ByteBuf |
setChar(int index,
int value)
Sets the specified 2-byte UTF-16 character at the specified absolute
index in this buffer. |
ByteBuf |
setDouble(int index,
double value)
Sets the specified 64-bit floating-point number at the specified
absolute
index in this buffer. |
ByteBuf |
setFloat(int index,
float value)
Sets the specified 32-bit floating-point number at the specified
absolute
index in this buffer. |
ByteBuf |
setIndex(int readerIndex,
int writerIndex)
Sets the
readerIndex and writerIndex of this buffer
in one shot. |
ByteBuf |
setInt(int index,
int value)
Sets the specified 32-bit integer at the specified absolute
index in this buffer. |
ByteBuf |
setLong(int index,
long value)
Sets the specified 64-bit long integer at the specified absolute
index in this buffer. |
ByteBuf |
setMedium(int index,
int value)
Sets the specified 24-bit medium integer at the specified absolute
index in this buffer. |
ByteBuf |
setShort(int index,
int value)
Sets the specified 16-bit short integer at the specified absolute
index in this buffer. |
ByteBuf |
setZero(int index,
int length)
Fills this buffer with NUL (0x00) starting at the specified
absolute
index. |
ByteBuf |
skipBytes(int length)
Increases the current
readerIndex by the specified
length in this buffer. |
ByteBuf |
slice()
Returns a slice of this buffer's readable bytes.
|
ByteBuf |
slice(int index,
int length)
Returns a slice of this buffer's sub-region.
|
java.lang.String |
toString()
Returns the string representation 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.
|
ByteBuf |
unwrap()
Return the underlying buffer instance if this buffer is a wrapper of another buffer.
|
int |
writableBytes()
Returns the number of writable bytes which is equal to
(this.capacity - this.writerIndex). |
ByteBuf |
writeBoolean(boolean value)
Sets the specified boolean at the current
writerIndex
and increases the writerIndex by 1 in this buffer. |
ByteBuf |
writeByte(int value)
Sets the specified byte at the current
writerIndex
and increases the writerIndex by 1 in this buffer. |
ByteBuf |
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). |
ByteBuf |
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). |
ByteBuf |
writeBytes(ByteBuf 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. |
ByteBuf |
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. |
ByteBuf |
writeBytes(ByteBuf 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). |
ByteBuf |
writeBytes(ByteBuf 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). |
int |
writeBytes(java.io.InputStream in,
int length)
Transfers the content of the specified stream to this buffer
starting at the current
writerIndex and increases the
writerIndex 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 current
writerIndex and increases the
writerIndex by the number of the transferred bytes. |
ByteBuf |
writeChar(int value)
Sets the specified 2-byte UTF-16 character at the current
writerIndex and increases the writerIndex by 2
in this buffer. |
ByteBuf |
writeDouble(double value)
Sets the specified 64-bit floating point number at the current
writerIndex and increases the writerIndex by 8
in this buffer. |
ByteBuf |
writeFloat(float value)
Sets the specified 32-bit floating point number at the current
writerIndex and increases the writerIndex by 4
in this buffer. |
ByteBuf |
writeInt(int value)
Sets the specified 32-bit integer at the current
writerIndex
and increases the writerIndex by 4 in this buffer. |
ByteBuf |
writeLong(long value)
Sets the specified 64-bit long integer at the current
writerIndex and increases the writerIndex by 8
in this buffer. |
ByteBuf |
writeMedium(int value)
Sets the specified 24-bit medium integer at the current
writerIndex and increases the writerIndex by 3
in this buffer. |
int |
writerIndex()
Returns the
writerIndex of this buffer. |
ByteBuf |
writerIndex(int writerIndex)
Sets the
writerIndex of this buffer. |
ByteBuf |
writeShort(int value)
Sets the specified 16-bit short integer at the current
writerIndex and increases the writerIndex by 2
in this buffer. |
ByteBuf |
writeZero(int length)
Fills this buffer with NUL (0x00) starting at the current
writerIndex and increases the writerIndex by the
specified length. |
public EmptyByteBuf(ByteBufAllocator alloc)
public int capacity()
ByteBufpublic ByteBuf capacity(int newCapacity)
ByteBufnewCapacity 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 ByteBufAllocator alloc()
ByteBufByteBufAllocator which created this buffer.public java.nio.ByteOrder order()
ByteBufpublic ByteBuf unwrap()
ByteBufpublic boolean isDirect()
ByteBuftrue if and only if this buffer is backed by an
NIO direct buffer.public int maxCapacity()
ByteBufByteBuf.capacity(int) or
ByteBuf.ensureWritable(int), those methods will raise an
IllegalArgumentException.maxCapacity in class ByteBufpublic ByteBuf order(java.nio.ByteOrder endianness)
ByteBufendianness which shares the whole region,
indexes, and marks of this buffer. Modifying the content, the indexes, or the marks of the
returned buffer or this buffer affects each other's content, indexes, and marks. If the
specified endianness is identical to this buffer's byte order, this method can
return this. This method does not modify readerIndex or writerIndex
of this buffer.public int readerIndex()
ByteBufreaderIndex of this buffer.readerIndex in class ByteBufpublic ByteBuf readerIndex(int readerIndex)
ByteBufreaderIndex of this buffer.readerIndex in class ByteBufpublic int writerIndex()
ByteBufwriterIndex of this buffer.writerIndex in class ByteBufpublic ByteBuf writerIndex(int writerIndex)
ByteBufwriterIndex of this buffer.writerIndex in class ByteBufpublic ByteBuf setIndex(int readerIndex, int writerIndex)
ByteBufreaderIndex and writerIndex of this buffer
in one shot. This method is useful when you have to worry about the
invocation order of ByteBuf.readerIndex(int) and ByteBuf.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:ByteBufbuf =Unpooled.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 anByteBufbuf =Unpooled.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);
public int readableBytes()
ByteBuf(this.writerIndex - this.readerIndex).readableBytes in class ByteBufpublic int writableBytes()
ByteBuf(this.capacity - this.writerIndex).writableBytes in class ByteBufpublic int maxWritableBytes()
ByteBuf(this.maxCapacity - this.writerIndex).maxWritableBytes in class ByteBufpublic boolean isReadable()
ByteBuftrue
if and only if (this.writerIndex - this.readerIndex) is greater
than 0.isReadable in class ByteBufpublic boolean isWritable()
ByteBuftrue
if and only if (this.capacity - this.writerIndex) is greater
than 0.isWritable in class ByteBufpublic ByteBuf clear()
ByteBufreaderIndex and writerIndex of this buffer to
0.
This method is identical to setIndex(0, 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 ByteBuf markReaderIndex()
ByteBufreaderIndex in this buffer. You can
reposition the current readerIndex to the marked
readerIndex by calling ByteBuf.resetReaderIndex().
The initial value of the marked readerIndex is 0.markReaderIndex in class ByteBufpublic ByteBuf resetReaderIndex()
ByteBufreaderIndex to the marked
readerIndex in this buffer.resetReaderIndex in class ByteBufpublic ByteBuf markWriterIndex()
ByteBufwriterIndex in this buffer. You can
reposition the current writerIndex to the marked
writerIndex by calling ByteBuf.resetWriterIndex().
The initial value of the marked writerIndex is 0.markWriterIndex in class ByteBufpublic ByteBuf resetWriterIndex()
ByteBufwriterIndex to the marked
writerIndex in this buffer.resetWriterIndex in class ByteBufpublic ByteBuf discardReadBytes()
ByteBufreaderIndex.
It moves the bytes between readerIndex and writerIndex
to the 0th index, and sets readerIndex and writerIndex
to 0 and oldWriterIndex - oldReaderIndex respectively.
Please refer to the class documentation for more detailed explanation.
discardReadBytes in class ByteBufpublic ByteBuf discardSomeReadBytes()
ByteBufByteBuf.discardReadBytes() except that this method might discard
some, all, or none of read bytes depending on its internal implementation to reduce
overall memory bandwidth consumption at the cost of potentially additional memory
consumption.discardSomeReadBytes in class ByteBufpublic ByteBuf ensureWritable(int minWritableBytes)
ByteBufIllegalArgumentException.ensureWritable in class ByteBufminWritableBytes - the expected minimum number of writable bytespublic int ensureWritable(int minWritableBytes,
boolean force)
ByteBufByteBuf.ensureWritable(int),
this method does not raise an exception but returns a code.ensureWritable in class ByteBufminWritableBytes - the expected minimum number of writable bytesforce - When ByteBuf.writerIndex() + minWritableBytes > ByteBuf.maxCapacity():
true - the capacity of the buffer is expanded to ByteBuf.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 boolean getBoolean(int index)
ByteBufreaderIndex or writerIndex
of this buffer.getBoolean in class ByteBufpublic byte getByte(int index)
ByteBufindex in this buffer.
This method does not modify readerIndex or writerIndex of
this buffer.public short getUnsignedByte(int index)
ByteBufindex in this
buffer. This method does not modify readerIndex or
writerIndex of this buffer.getUnsignedByte in class ByteBufpublic short getShort(int index)
ByteBufindex in
this buffer. This method does not modify readerIndex or
writerIndex of this buffer.public int getUnsignedShort(int index)
ByteBufindex in this buffer. This method does not modify
readerIndex or writerIndex of this buffer.getUnsignedShort in class ByteBufpublic int getMedium(int index)
ByteBufindex in
this buffer. This method does not modify readerIndex or
writerIndex of this buffer.public int getUnsignedMedium(int index)
ByteBufindex in this buffer. This method does not modify
readerIndex or writerIndex of this buffer.getUnsignedMedium in class ByteBufpublic int getInt(int index)
ByteBufindex in
this buffer. This method does not modify readerIndex or
writerIndex of this buffer.public long getUnsignedInt(int index)
ByteBufindex
in this buffer. This method does not modify readerIndex or
writerIndex of this buffer.getUnsignedInt in class ByteBufpublic long getLong(int index)
ByteBufindex in
this buffer. This method does not modify readerIndex or
writerIndex of this buffer.public char getChar(int index)
ByteBufindex in this buffer. This method does not modify
readerIndex or writerIndex of this buffer.public float getFloat(int index)
ByteBufindex in this buffer. This method does not modify
readerIndex or writerIndex of this buffer.public double getDouble(int index)
ByteBufindex in this buffer. This method does not modify
readerIndex or writerIndex of this buffer.public ByteBuf getBytes(int index, ByteBuf dst)
ByteBufindex until the destination becomes
non-writable. This method is basically same with
ByteBuf.getBytes(int, ByteBuf, int, int), except that this
method increases the writerIndex of the destination by the
number of the transferred bytes while
ByteBuf.getBytes(int, ByteBuf, int, int) does not.
This method does not modify readerIndex or writerIndex of
the source buffer (i.e. this).public ByteBuf getBytes(int index, ByteBuf dst, int length)
ByteBufindex. This method is basically same
with ByteBuf.getBytes(int, ByteBuf, int, int), except that this
method increases the writerIndex of the destination by the
number of the transferred bytes while
ByteBuf.getBytes(int, ByteBuf, int, int) does not.
This method does not modify readerIndex or writerIndex of
the source buffer (i.e. this).public ByteBuf getBytes(int index, ByteBuf dst, int dstIndex, int length)
ByteBufindex.
This method does not modify readerIndex or writerIndex
of both the source (i.e. this) and the destination.public ByteBuf getBytes(int index, byte[] dst)
ByteBufindex.
This method does not modify readerIndex or writerIndex of
this bufferpublic ByteBuf getBytes(int index, byte[] dst, int dstIndex, int length)
ByteBufindex.
This method does not modify readerIndex or writerIndex
of this buffer.public ByteBuf getBytes(int index, java.nio.ByteBuffer dst)
ByteBufindex 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 ByteBuf getBytes(int index, java.io.OutputStream out, int length)
ByteBufindex.
This method does not modify readerIndex or writerIndex of
this buffer.public int getBytes(int index,
java.nio.channels.GatheringByteChannel out,
int length)
ByteBufindex.
This method does not modify readerIndex or writerIndex of
this buffer.public ByteBuf setBoolean(int index, boolean value)
ByteBufindex in this
buffer.
This method does not modify readerIndex or writerIndex of
this buffer.setBoolean in class ByteBufpublic ByteBuf setByte(int index, int value)
ByteBufindex 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 ByteBuf setShort(int index, int value)
ByteBufindex 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 ByteBuf setMedium(int index, int value)
ByteBufindex 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 ByteBuf setInt(int index, int value)
ByteBufindex in this buffer.
This method does not modify readerIndex or writerIndex of
this buffer.public ByteBuf setLong(int index, long value)
ByteBufindex in this buffer.
This method does not modify readerIndex or writerIndex of
this buffer.public ByteBuf setChar(int index, int value)
ByteBufindex 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 ByteBuf setFloat(int index, float value)
ByteBufindex in this buffer.
This method does not modify readerIndex or writerIndex of
this buffer.public ByteBuf setDouble(int index, double value)
ByteBufindex in this buffer.
This method does not modify readerIndex or writerIndex of
this buffer.public ByteBuf setBytes(int index, ByteBuf src)
ByteBufindex until the source buffer becomes
unreadable. This method is basically same with
ByteBuf.setBytes(int, ByteBuf, int, int), except that this
method increases the readerIndex of the source buffer by
the number of the transferred bytes while
ByteBuf.setBytes(int, ByteBuf, int, int) does not.
This method does not modify readerIndex or writerIndex of
the source buffer (i.e. this).public ByteBuf setBytes(int index, ByteBuf src, int length)
ByteBufindex. This method is basically same
with ByteBuf.setBytes(int, ByteBuf, int, int), except that this
method increases the readerIndex of the source buffer by
the number of the transferred bytes while
ByteBuf.setBytes(int, ByteBuf, int, int) does not.
This method does not modify readerIndex or writerIndex of
the source buffer (i.e. this).public ByteBuf setBytes(int index, ByteBuf src, int srcIndex, int length)
ByteBufindex.
This method does not modify readerIndex or writerIndex
of both the source (i.e. this) and the destination.public ByteBuf setBytes(int index, byte[] src)
ByteBufindex.
This method does not modify readerIndex or writerIndex of
this buffer.public ByteBuf setBytes(int index, byte[] src, int srcIndex, int length)
ByteBufindex.
This method does not modify readerIndex or writerIndex of
this buffer.public ByteBuf setBytes(int index, java.nio.ByteBuffer src)
ByteBufindex 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 in,
int length)
ByteBufindex.
This method does not modify readerIndex or writerIndex of
this buffer.public int setBytes(int index,
java.nio.channels.ScatteringByteChannel in,
int length)
ByteBufindex.
This method does not modify readerIndex or writerIndex of
this buffer.public ByteBuf setZero(int index, int length)
ByteBufindex.
This method does not modify readerIndex or writerIndex of
this buffer.public boolean readBoolean()
ByteBufreaderIndex and increases
the readerIndex by 1 in this buffer.readBoolean in class ByteBufpublic byte readByte()
ByteBufreaderIndex and increases
the readerIndex by 1 in this buffer.public short readUnsignedByte()
ByteBufreaderIndex and increases
the readerIndex by 1 in this buffer.readUnsignedByte in class ByteBufpublic short readShort()
ByteBufreaderIndex
and increases the readerIndex by 2 in this buffer.public int readUnsignedShort()
ByteBufreaderIndex
and increases the readerIndex by 2 in this buffer.readUnsignedShort in class ByteBufpublic int readMedium()
ByteBufreaderIndex
and increases the readerIndex by 3 in this buffer.readMedium in class ByteBufpublic int readUnsignedMedium()
ByteBufreaderIndex
and increases the readerIndex by 3 in this buffer.readUnsignedMedium in class ByteBufpublic int readInt()
ByteBufreaderIndex
and increases the readerIndex by 4 in this buffer.public long readUnsignedInt()
ByteBufreaderIndex
and increases the readerIndex by 4 in this buffer.readUnsignedInt in class ByteBufpublic long readLong()
ByteBufreaderIndex
and increases the readerIndex by 8 in this buffer.public char readChar()
ByteBufreaderIndex
and increases the readerIndex by 2 in this buffer.public float readFloat()
ByteBufreaderIndex
and increases the readerIndex by 4 in this buffer.public double readDouble()
ByteBufreaderIndex
and increases the readerIndex by 8 in this buffer.readDouble in class ByteBufpublic ByteBuf readBytes(int length)
ByteBufreaderIndex 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 ByteBuf readSlice(int length)
ByteBufreaderIndex and increases the readerIndex by the size
of the new slice (= length).
Also be aware that this method will NOT call ByteBuf.retain() and so the
reference count will NOT be increased.
public ByteBuf readBytes(ByteBuf dst)
ByteBufreaderIndex until the destination becomes
non-writable, and increases the readerIndex by the number of the
transferred bytes. This method is basically same with
ByteBuf.readBytes(ByteBuf, int, int), except that this method
increases the writerIndex of the destination by the number of
the transferred bytes while ByteBuf.readBytes(ByteBuf, int, int)
does not.public ByteBuf readBytes(ByteBuf dst, int length)
ByteBufreaderIndex and increases the readerIndex
by the number of the transferred bytes (= length). This method
is basically same with ByteBuf.readBytes(ByteBuf, int, int),
except that this method increases the writerIndex of the
destination by the number of the transferred bytes (= length)
while ByteBuf.readBytes(ByteBuf, int, int) does not.public ByteBuf readBytes(ByteBuf dst, int dstIndex, int length)
ByteBufreaderIndex and increases the readerIndex
by the number of the transferred bytes (= length).public ByteBuf readBytes(byte[] dst)
ByteBufreaderIndex and increases the readerIndex
by the number of the transferred bytes (= dst.length).public ByteBuf readBytes(byte[] dst, int dstIndex, int length)
ByteBufreaderIndex and increases the readerIndex
by the number of the transferred bytes (= length).public ByteBuf readBytes(java.nio.ByteBuffer dst)
ByteBufreaderIndex until the destination's position
reaches its limit, and increases the readerIndex by the
number of the transferred bytes.public ByteBuf readBytes(java.io.OutputStream out, int length)
ByteBufreaderIndex.public int readBytes(java.nio.channels.GatheringByteChannel out,
int length)
ByteBufreaderIndex.public ByteBuf skipBytes(int length)
ByteBufreaderIndex by the specified
length in this buffer.public ByteBuf writeBoolean(boolean value)
ByteBufwriterIndex
and increases the writerIndex by 1 in this buffer.writeBoolean in class ByteBufpublic ByteBuf writeByte(int value)
ByteBufwriterIndex
and increases the writerIndex by 1 in this buffer.
The 24 high-order bits of the specified value are ignored.public ByteBuf writeShort(int value)
ByteBufwriterIndex and increases the writerIndex by 2
in this buffer. The 16 high-order bits of the specified value are ignored.writeShort in class ByteBufpublic ByteBuf writeMedium(int value)
ByteBufwriterIndex and increases the writerIndex by 3
in this buffer.writeMedium in class ByteBufpublic ByteBuf writeInt(int value)
ByteBufwriterIndex
and increases the writerIndex by 4 in this buffer.public ByteBuf writeLong(long value)
ByteBufwriterIndex and increases the writerIndex by 8
in this buffer.public ByteBuf writeChar(int value)
ByteBufwriterIndex and increases the writerIndex by 2
in this buffer. The 16 high-order bits of the specified value are ignored.public ByteBuf writeFloat(float value)
ByteBufwriterIndex and increases the writerIndex by 4
in this buffer.writeFloat in class ByteBufpublic ByteBuf writeDouble(double value)
ByteBufwriterIndex and increases the writerIndex by 8
in this buffer.writeDouble in class ByteBufpublic ByteBuf writeBytes(ByteBuf src)
ByteBufwriterIndex until the source buffer becomes
unreadable, and increases the writerIndex by the number of
the transferred bytes. This method is basically same with
ByteBuf.writeBytes(ByteBuf, int, int), except that this method
increases the readerIndex of the source buffer by the number of
the transferred bytes while ByteBuf.writeBytes(ByteBuf, int, int)
does not.writeBytes in class ByteBufpublic ByteBuf writeBytes(ByteBuf src, int length)
ByteBufwriterIndex and increases the writerIndex
by the number of the transferred bytes (= length). This method
is basically same with ByteBuf.writeBytes(ByteBuf, int, int),
except that this method increases the readerIndex of the source
buffer by the number of the transferred bytes (= length) while
ByteBuf.writeBytes(ByteBuf, int, int) does not.writeBytes in class ByteBuflength - the number of bytes to transferpublic ByteBuf writeBytes(ByteBuf src, int srcIndex, int length)
ByteBufwriterIndex and increases the writerIndex
by the number of the transferred bytes (= length).writeBytes in class ByteBufsrcIndex - the first index of the sourcelength - the number of bytes to transferpublic ByteBuf writeBytes(byte[] src)
ByteBufwriterIndex and increases the writerIndex
by the number of the transferred bytes (= src.length).writeBytes in class ByteBufpublic ByteBuf writeBytes(byte[] src, int srcIndex, int length)
ByteBufwriterIndex and increases the writerIndex
by the number of the transferred bytes (= length).writeBytes in class ByteBufsrcIndex - the first index of the sourcelength - the number of bytes to transferpublic ByteBuf writeBytes(java.nio.ByteBuffer src)
ByteBufwriterIndex until the source buffer's position
reaches its limit, and increases the writerIndex by the
number of the transferred bytes.writeBytes in class ByteBufpublic int writeBytes(java.io.InputStream in,
int length)
ByteBufwriterIndex and increases the
writerIndex by the number of the transferred bytes.writeBytes in class ByteBuflength - the number of bytes to transferpublic int writeBytes(java.nio.channels.ScatteringByteChannel in,
int length)
ByteBufwriterIndex and increases the
writerIndex by the number of the transferred bytes.writeBytes in class ByteBuflength - the maximum number of bytes to transferpublic ByteBuf writeZero(int length)
ByteBufwriterIndex and increases the writerIndex by the
specified length.public int indexOf(int fromIndex,
int toIndex,
byte value)
ByteBufvalue 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)
ByteBufvalue 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 class ByteBufreaderIndex
and the first occurrence if found. -1 otherwise.public int bytesBefore(int length,
byte value)
ByteBufvalue 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 class ByteBufreaderIndex
and the first occurrence if found. -1 otherwise.public int bytesBefore(int index,
int length,
byte value)
ByteBufvalue 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 class ByteBufindex
and the first occurrence if found. -1 otherwise.public int forEachByte(ByteBufProcessor processor)
ByteBufprocessor in ascending order.forEachByte in class ByteBuf-1 if the processor iterated to or beyond the end of the readable bytes.
The last-visited index If the ByteBufProcessor.process(byte) returned false.public int forEachByte(int index,
int length,
ByteBufProcessor processor)
ByteBufprocessor in ascending order.
(i.e. index, (index + 1), .. (index + length - 1))forEachByte in class ByteBuf-1 if the processor iterated to or beyond the end of the specified area.
The last-visited index If the ByteBufProcessor.process(byte) returned false.public int forEachByteDesc(ByteBufProcessor processor)
ByteBufprocessor in descending order.forEachByteDesc in class ByteBuf-1 if the processor iterated to or beyond the beginning of the readable bytes.
The last-visited index If the ByteBufProcessor.process(byte) returned false.public int forEachByteDesc(int index,
int length,
ByteBufProcessor processor)
ByteBufprocessor in descending order.
(i.e. (index + length - 1), (index + length - 2), ... index)forEachByteDesc in class ByteBuf-1 if the processor iterated to or beyond the beginning of the specified area.
The last-visited index If the ByteBufProcessor.process(byte) returned false.public ByteBuf copy()
ByteBufbuf.copy(buf.readerIndex(), buf.readableBytes()).
This method does not modify readerIndex or writerIndex of
this buffer.public ByteBuf copy(int index, int length)
ByteBufreaderIndex or writerIndex of
this buffer.public ByteBuf slice()
ByteBufbuf.slice(buf.readerIndex(), buf.readableBytes()).
This method does not modify readerIndex or writerIndex of
this buffer.
Also be aware that this method will NOT call ByteBuf.retain() and so the
reference count will NOT be increased.
public ByteBuf slice(int index, int length)
ByteBufreaderIndex or writerIndex of
this buffer.
Also be aware that this method will NOT call ByteBuf.retain() and so the
reference count will NOT be increased.
public ByteBuf duplicate()
ByteBufreaderIndex or writerIndex of
this buffer.
The reader and writer marks will not be duplicated. Also be aware that this method will
NOT call ByteBuf.retain() and so the reference count will NOT be increased.
duplicate in class ByteBufByteBuf.slice().
However this buffer will share the capacity of the underlying buffer, and therefore allows access to all of the
underlying content if necessary.public int nioBufferCount()
ByteBufByteBuffers that consist this buffer. Note that ByteBuf.nioBuffers()
or ByteBuf.nioBuffers(int, int) might return a less number of ByteBuffers.nioBufferCount in class ByteBuf-1 if this buffer has no underlying ByteBuffer.
the number of the underlying ByteBuffers if this buffer has at least one underlying
ByteBuffer. Note that this method does not return 0 to avoid confusion.ByteBuf.nioBuffer(),
ByteBuf.nioBuffer(int, int),
ByteBuf.nioBuffers(),
ByteBuf.nioBuffers(int, int)public java.nio.ByteBuffer nioBuffer()
ByteBufByteBuffer. The returned buffer
either share or contains the copied content of this buffer, while changing the position
and limit of the returned NIO buffer does not affect the indexes and marks 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.nioBuffer in class ByteBufByteBuf.nioBufferCount(),
ByteBuf.nioBuffers(),
ByteBuf.nioBuffers(int, int)public java.nio.ByteBuffer nioBuffer(int index,
int length)
ByteBufByteBuffer. The returned buffer
either share or contains the copied content of this buffer, while changing the position
and limit of the returned NIO buffer does not affect the indexes and marks 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.nioBuffer in class ByteBufByteBuf.nioBufferCount(),
ByteBuf.nioBuffers(),
ByteBuf.nioBuffers(int, int)public java.nio.ByteBuffer[] nioBuffers()
ByteBufByteBuffer's. The returned buffer
either share or contains the copied content of this buffer, while changing the position
and limit of the returned NIO buffer does not affect the indexes and marks 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.nioBuffers in class ByteBufByteBuf.nioBufferCount(),
ByteBuf.nioBuffer(),
ByteBuf.nioBuffer(int, int)public java.nio.ByteBuffer[] nioBuffers(int index,
int length)
ByteBufByteBuffer's for the specified index and length
The returned buffer either share or contains the copied content of this buffer, while changing
the position and limit of the returned NIO buffer does not affect the indexes and marks 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.nioBuffers in class ByteBufByteBuf.nioBufferCount(),
ByteBuf.nioBuffer(),
ByteBuf.nioBuffer(int, int)public java.nio.ByteBuffer internalNioBuffer(int index,
int length)
ByteBufinternalNioBuffer in class ByteBufpublic boolean hasArray()
ByteBuftrue if and only if this buffer has a backing byte array.
If this method returns true, you can safely call ByteBuf.array() and
ByteBuf.arrayOffset().public byte[] array()
ByteBufpublic int arrayOffset()
ByteBufarrayOffset in class ByteBufpublic boolean hasMemoryAddress()
ByteBuftrue if and only if this buffer has a reference to the low-level memory address that points
to the backing data.hasMemoryAddress in class ByteBufpublic long memoryAddress()
ByteBufmemoryAddress in class ByteBufpublic java.lang.String toString(java.nio.charset.Charset charset)
ByteBufbuf.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)
ByteBufreaderIndex or
writerIndex of this buffer.public int hashCode()
ByteBufpublic boolean equals(java.lang.Object obj)
ByteBufByteBuf.readerIndex() nor
ByteBuf.writerIndex(). This method also returns false for
null and an object which is not an instance of
ByteBuf type.public int compareTo(ByteBuf buffer)
ByteBufstrcmp,
memcmp and String.compareTo(String).public java.lang.String toString()
ByteBufByteBuf.readerIndex(),
ByteBuf.writerIndex() and ByteBuf.capacity().public boolean isReadable(int size)
ByteBuftrue if and only if this buffer contains equal to or more than the specified number of elements.isReadable in class ByteBufpublic boolean isWritable(int size)
ByteBuftrue if and only if this buffer has enough room to allow writing the specified number of
elements.isWritable in class ByteBufpublic int refCnt()
ReferenceCounted0, it means this object has been deallocated.public ByteBuf retain()
ReferenceCounted1.retain in interface ReferenceCountedretain in class ByteBufpublic ByteBuf retain(int increment)
ReferenceCountedincrement.retain in interface ReferenceCountedretain in class ByteBufpublic boolean release()
ReferenceCounted1 and deallocates this object if the reference count reaches at
0.true if and only if the reference count became 0 and this object has been deallocatedpublic boolean release(int decrement)
ReferenceCounteddecrement and deallocates this object if the reference
count reaches at 0.true if and only if the reference count became 0 and this object has been deallocatedCopyright © 2008–2018 The Netty Project. All rights reserved.