public abstract class AbstractByteBuf extends ByteBuf
Modifier | Constructor and Description |
---|---|
protected |
AbstractByteBuf(int maxCapacity) |
Modifier and Type | Method and Description |
---|---|
protected abstract byte |
_getByte(int index) |
protected abstract int |
_getInt(int index) |
protected abstract long |
_getLong(int index) |
protected abstract short |
_getShort(int index) |
protected abstract int |
_getUnsignedMedium(int index) |
protected abstract void |
_setByte(int index,
int value) |
protected abstract void |
_setInt(int index,
int value) |
protected abstract void |
_setLong(int index,
long value) |
protected abstract void |
_setMedium(int index,
int value) |
protected abstract void |
_setShort(int index,
int value) |
protected void |
adjustMarkers(int decrement) |
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. |
protected void |
checkDstIndex(int index,
int length,
int dstIndex,
int dstCapacity) |
protected void |
checkIndex(int index) |
protected void |
checkIndex(int index,
int fieldLength) |
protected void |
checkNewCapacity(int newCapacity) |
protected void |
checkReadableBytes(int minimumReadableBytes)
Throws an
IndexOutOfBoundsException if the current
readable bytes of this buffer is less
than the specified value. |
protected void |
checkSrcIndex(int index,
int length,
int srcIndex,
int srcCapacity) |
ByteBuf |
clear()
Sets the
readerIndex and writerIndex of this buffer to
0 . |
int |
compareTo(ByteBuf that)
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 |
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.
|
protected void |
ensureAccessible()
Should be called by every method that tries to access the buffers content to check
if the buffer was released before.
|
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 o)
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,
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,
ByteBuf dst,
int length)
Transfers this buffer's data to the specified destination 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. |
int |
hashCode()
Returns a hash code which was calculated from the content of this
buffer.
|
int |
indexOf(int fromIndex,
int toIndex,
byte value)
Locates the first occurrence of the specified
value in this
buffer. |
boolean |
isReadable()
Returns
true
if and only if (this.writerIndex - this.readerIndex) is greater
than 0 . |
boolean |
isReadable(int numBytes)
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 numBytes)
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.
|
protected void |
maxCapacity(int maxCapacity) |
int |
maxWritableBytes()
Returns the maximum possible number of writable bytes, which is equal to
(this.maxCapacity - this.writerIndex) . |
protected SwappedByteBuf |
newSwappedByteBuf()
Creates a new
SwappedByteBuf for this ByteBuf instance. |
java.nio.ByteBuffer |
nioBuffer()
Exposes this buffer's readable bytes as an NIO
ByteBuffer . |
java.nio.ByteBuffer[] |
nioBuffers()
Exposes this buffer's readable bytes as an NIO
ByteBuffer 's. |
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. |
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 |
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,
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,
ByteBuf src,
int length)
Transfers the specified source buffer's data 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.
|
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 . |
alloc, array, arrayOffset, capacity, capacity, copy, getBytes, getBytes, getBytes, getBytes, getBytes, hasArray, hasMemoryAddress, internalNioBuffer, isDirect, memoryAddress, nioBuffer, nioBufferCount, nioBuffers, order, retain, retain, setBytes, setBytes, setBytes, setBytes, setBytes, unwrap
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
refCnt, release, release
public int maxCapacity()
ByteBuf
ByteBuf.capacity(int)
or
ByteBuf.ensureWritable(int)
, those methods will raise an
IllegalArgumentException
.maxCapacity
in class ByteBuf
protected final void maxCapacity(int maxCapacity)
public int readerIndex()
ByteBuf
readerIndex
of this buffer.readerIndex
in class ByteBuf
public ByteBuf readerIndex(int readerIndex)
ByteBuf
readerIndex
of this buffer.readerIndex
in class ByteBuf
public int writerIndex()
ByteBuf
writerIndex
of this buffer.writerIndex
in class ByteBuf
public ByteBuf writerIndex(int writerIndex)
ByteBuf
writerIndex
of this buffer.writerIndex
in class ByteBuf
public ByteBuf setIndex(int readerIndex, int writerIndex)
ByteBuf
readerIndex
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:ByteBuf
buf =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 anByteBuf
buf =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 ByteBuf clear()
ByteBuf
readerIndex
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 boolean isReadable()
ByteBuf
true
if and only if (this.writerIndex - this.readerIndex)
is greater
than 0
.isReadable
in class ByteBuf
public boolean isReadable(int numBytes)
ByteBuf
true
if and only if this buffer contains equal to or more than the specified number of elements.isReadable
in class ByteBuf
public boolean isWritable()
ByteBuf
true
if and only if (this.capacity - this.writerIndex)
is greater
than 0
.isWritable
in class ByteBuf
public boolean isWritable(int numBytes)
ByteBuf
true
if and only if this buffer has enough room to allow writing the specified number of
elements.isWritable
in class ByteBuf
public int readableBytes()
ByteBuf
(this.writerIndex - this.readerIndex)
.readableBytes
in class ByteBuf
public int writableBytes()
ByteBuf
(this.capacity - this.writerIndex)
.writableBytes
in class ByteBuf
public int maxWritableBytes()
ByteBuf
(this.maxCapacity - this.writerIndex)
.maxWritableBytes
in class ByteBuf
public ByteBuf markReaderIndex()
ByteBuf
readerIndex
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 ByteBuf
public ByteBuf resetReaderIndex()
ByteBuf
readerIndex
to the marked
readerIndex
in this buffer.resetReaderIndex
in class ByteBuf
public ByteBuf markWriterIndex()
ByteBuf
writerIndex
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 ByteBuf
public ByteBuf resetWriterIndex()
ByteBuf
writerIndex
to the marked
writerIndex
in this buffer.resetWriterIndex
in class ByteBuf
public ByteBuf discardReadBytes()
ByteBuf
readerIndex
.
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 ByteBuf
public ByteBuf discardSomeReadBytes()
ByteBuf
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.discardSomeReadBytes
in class ByteBuf
protected final void adjustMarkers(int decrement)
public ByteBuf ensureWritable(int minWritableBytes)
ByteBuf
IllegalArgumentException
.ensureWritable
in class ByteBuf
minWritableBytes
- the expected minimum number of writable bytespublic int ensureWritable(int minWritableBytes, boolean force)
ByteBuf
ByteBuf.ensureWritable(int)
,
this method does not raise an exception but returns a code.ensureWritable
in class ByteBuf
minWritableBytes
- 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 ByteBuf order(java.nio.ByteOrder endianness)
ByteBuf
endianness
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.protected SwappedByteBuf newSwappedByteBuf()
SwappedByteBuf
for this ByteBuf
instance.public byte getByte(int index)
ByteBuf
index
in this buffer.
This method does not modify readerIndex
or writerIndex
of
this buffer.protected abstract byte _getByte(int index)
public boolean getBoolean(int index)
ByteBuf
readerIndex
or writerIndex
of this buffer.getBoolean
in class ByteBuf
public short getUnsignedByte(int index)
ByteBuf
index
in this
buffer. This method does not modify readerIndex
or
writerIndex
of this buffer.getUnsignedByte
in class ByteBuf
public short getShort(int index)
ByteBuf
index
in
this buffer. This method does not modify readerIndex
or
writerIndex
of this buffer.protected abstract short _getShort(int index)
public int getUnsignedShort(int index)
ByteBuf
index
in this buffer. This method does not modify
readerIndex
or writerIndex
of this buffer.getUnsignedShort
in class ByteBuf
public int getUnsignedMedium(int index)
ByteBuf
index
in this buffer. This method does not modify
readerIndex
or writerIndex
of this buffer.getUnsignedMedium
in class ByteBuf
protected abstract int _getUnsignedMedium(int index)
public int getMedium(int index)
ByteBuf
index
in
this buffer. This method does not modify readerIndex
or
writerIndex
of this buffer.public int getInt(int index)
ByteBuf
index
in
this buffer. This method does not modify readerIndex
or
writerIndex
of this buffer.protected abstract int _getInt(int index)
public long getUnsignedInt(int index)
ByteBuf
index
in this buffer. This method does not modify readerIndex
or
writerIndex
of this buffer.getUnsignedInt
in class ByteBuf
public long getLong(int index)
ByteBuf
index
in
this buffer. This method does not modify readerIndex
or
writerIndex
of this buffer.protected abstract long _getLong(int index)
public char getChar(int index)
ByteBuf
index
in this buffer. This method does not modify
readerIndex
or writerIndex
of this buffer.public float getFloat(int index)
ByteBuf
index
in this buffer. This method does not modify
readerIndex
or writerIndex
of this buffer.public double getDouble(int index)
ByteBuf
index
in this buffer. This method does not modify
readerIndex
or writerIndex
of this buffer.public ByteBuf getBytes(int index, byte[] dst)
ByteBuf
index
.
This method does not modify readerIndex
or writerIndex
of
this bufferpublic ByteBuf getBytes(int index, ByteBuf dst)
ByteBuf
index
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)
ByteBuf
index
. 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 setByte(int index, int value)
ByteBuf
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.protected abstract void _setByte(int index, int value)
public ByteBuf setBoolean(int index, boolean value)
ByteBuf
index
in this
buffer.
This method does not modify readerIndex
or writerIndex
of
this buffer.setBoolean
in class ByteBuf
public ByteBuf setShort(int index, int value)
ByteBuf
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.protected abstract void _setShort(int index, int value)
public ByteBuf setChar(int index, int value)
ByteBuf
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 ByteBuf setMedium(int index, int value)
ByteBuf
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.protected abstract void _setMedium(int index, int value)
public ByteBuf setInt(int index, int value)
ByteBuf
index
in this buffer.
This method does not modify readerIndex
or writerIndex
of
this buffer.protected abstract void _setInt(int index, int value)
public ByteBuf setFloat(int index, float value)
ByteBuf
index
in this buffer.
This method does not modify readerIndex
or writerIndex
of
this buffer.public ByteBuf setLong(int index, long value)
ByteBuf
index
in this buffer.
This method does not modify readerIndex
or writerIndex
of
this buffer.protected abstract void _setLong(int index, long value)
public ByteBuf setDouble(int index, double value)
ByteBuf
index
in this buffer.
This method does not modify readerIndex
or writerIndex
of
this buffer.public ByteBuf setBytes(int index, byte[] src)
ByteBuf
index
.
This method does not modify readerIndex
or writerIndex
of
this buffer.public ByteBuf setBytes(int index, ByteBuf src)
ByteBuf
index
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)
ByteBuf
index
. 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 setZero(int index, int length)
ByteBuf
index
.
This method does not modify readerIndex
or writerIndex
of
this buffer.public byte readByte()
ByteBuf
readerIndex
and increases
the readerIndex
by 1
in this buffer.public boolean readBoolean()
ByteBuf
readerIndex
and increases
the readerIndex
by 1
in this buffer.readBoolean
in class ByteBuf
public short readUnsignedByte()
ByteBuf
readerIndex
and increases
the readerIndex
by 1
in this buffer.readUnsignedByte
in class ByteBuf
public short readShort()
ByteBuf
readerIndex
and increases the readerIndex
by 2
in this buffer.public int readUnsignedShort()
ByteBuf
readerIndex
and increases the readerIndex
by 2
in this buffer.readUnsignedShort
in class ByteBuf
public int readMedium()
ByteBuf
readerIndex
and increases the readerIndex
by 3
in this buffer.readMedium
in class ByteBuf
public int readUnsignedMedium()
ByteBuf
readerIndex
and increases the readerIndex
by 3
in this buffer.readUnsignedMedium
in class ByteBuf
public int readInt()
ByteBuf
readerIndex
and increases the readerIndex
by 4
in this buffer.public long readUnsignedInt()
ByteBuf
readerIndex
and increases the readerIndex
by 4
in this buffer.readUnsignedInt
in class ByteBuf
public long readLong()
ByteBuf
readerIndex
and increases the readerIndex
by 8
in this buffer.public char readChar()
ByteBuf
readerIndex
and increases the readerIndex
by 2
in this buffer.public float readFloat()
ByteBuf
readerIndex
and increases the readerIndex
by 4
in this buffer.public double readDouble()
ByteBuf
readerIndex
and increases the readerIndex
by 8
in this buffer.readDouble
in class ByteBuf
public ByteBuf readBytes(int length)
ByteBuf
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 ByteBuf readSlice(int length)
ByteBuf
readerIndex
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(byte[] dst, int dstIndex, int length)
ByteBuf
readerIndex
and increases the readerIndex
by the number of the transferred bytes (= length
).public ByteBuf readBytes(byte[] dst)
ByteBuf
readerIndex
and increases the readerIndex
by the number of the transferred bytes (= dst.length
).public ByteBuf readBytes(ByteBuf dst)
ByteBuf
readerIndex
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)
ByteBuf
readerIndex
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)
ByteBuf
readerIndex
and increases the readerIndex
by the number of the transferred bytes (= length
).public ByteBuf readBytes(java.nio.ByteBuffer dst)
ByteBuf
readerIndex
until the destination's position
reaches its limit, and increases the readerIndex
by the
number of the transferred bytes.public int readBytes(java.nio.channels.GatheringByteChannel out, int length) throws java.io.IOException
ByteBuf
readerIndex
.public ByteBuf readBytes(java.io.OutputStream out, int length) throws java.io.IOException
ByteBuf
readerIndex
.public ByteBuf skipBytes(int length)
ByteBuf
readerIndex
by the specified
length
in this buffer.public ByteBuf writeBoolean(boolean value)
ByteBuf
writerIndex
and increases the writerIndex
by 1
in this buffer.writeBoolean
in class ByteBuf
public ByteBuf writeByte(int value)
ByteBuf
writerIndex
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)
ByteBuf
writerIndex
and increases the writerIndex
by 2
in this buffer. The 16 high-order bits of the specified value are ignored.writeShort
in class ByteBuf
public ByteBuf writeMedium(int value)
ByteBuf
writerIndex
and increases the writerIndex
by 3
in this buffer.writeMedium
in class ByteBuf
public ByteBuf writeInt(int value)
ByteBuf
writerIndex
and increases the writerIndex
by 4
in this buffer.public ByteBuf writeLong(long value)
ByteBuf
writerIndex
and increases the writerIndex
by 8
in this buffer.public ByteBuf writeChar(int value)
ByteBuf
writerIndex
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)
ByteBuf
writerIndex
and increases the writerIndex
by 4
in this buffer.writeFloat
in class ByteBuf
public ByteBuf writeDouble(double value)
ByteBuf
writerIndex
and increases the writerIndex
by 8
in this buffer.writeDouble
in class ByteBuf
public ByteBuf writeBytes(byte[] src, int srcIndex, int length)
ByteBuf
writerIndex
and increases the writerIndex
by the number of the transferred bytes (= length
).writeBytes
in class ByteBuf
srcIndex
- the first index of the sourcelength
- the number of bytes to transferpublic ByteBuf writeBytes(byte[] src)
ByteBuf
writerIndex
and increases the writerIndex
by the number of the transferred bytes (= src.length
).writeBytes
in class ByteBuf
public ByteBuf writeBytes(ByteBuf src)
ByteBuf
writerIndex
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 ByteBuf
public ByteBuf writeBytes(ByteBuf src, int length)
ByteBuf
writerIndex
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 ByteBuf
length
- the number of bytes to transferpublic ByteBuf writeBytes(ByteBuf src, int srcIndex, int length)
ByteBuf
writerIndex
and increases the writerIndex
by the number of the transferred bytes (= length
).writeBytes
in class ByteBuf
srcIndex
- the first index of the sourcelength
- the number of bytes to transferpublic ByteBuf writeBytes(java.nio.ByteBuffer src)
ByteBuf
writerIndex
until the source buffer's position
reaches its limit, and increases the writerIndex
by the
number of the transferred bytes.writeBytes
in class ByteBuf
public int writeBytes(java.io.InputStream in, int length) throws java.io.IOException
ByteBuf
writerIndex
and increases the
writerIndex
by the number of the transferred bytes.writeBytes
in class ByteBuf
length
- the number of bytes to transferjava.io.IOException
- if the specified stream threw an exception during I/Opublic int writeBytes(java.nio.channels.ScatteringByteChannel in, int length) throws java.io.IOException
ByteBuf
writerIndex
and increases the
writerIndex
by the number of the transferred bytes.writeBytes
in class ByteBuf
length
- the maximum number of bytes to transferjava.io.IOException
- if the specified channel threw an exception during I/Opublic ByteBuf writeZero(int length)
ByteBuf
writerIndex
and increases the writerIndex
by the
specified length
.public ByteBuf copy()
ByteBuf
buf.copy(buf.readerIndex(), buf.readableBytes())
.
This method does not modify readerIndex
or writerIndex
of
this buffer.public ByteBuf duplicate()
ByteBuf
readerIndex
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 ByteBuf
ByteBuf.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 ByteBuf slice()
ByteBuf
buf.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)
ByteBuf
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 java.nio.ByteBuffer nioBuffer()
ByteBuf
ByteBuffer
. 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 ByteBuf
ByteBuf.nioBufferCount()
,
ByteBuf.nioBuffers()
,
ByteBuf.nioBuffers(int, int)
public java.nio.ByteBuffer[] nioBuffers()
ByteBuf
ByteBuffer
'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 ByteBuf
ByteBuf.nioBufferCount()
,
ByteBuf.nioBuffer()
,
ByteBuf.nioBuffer(int, int)
public java.lang.String toString(java.nio.charset.Charset charset)
ByteBuf
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)
ByteBuf
readerIndex
or
writerIndex
of this buffer.public int indexOf(int fromIndex, int toIndex, byte value)
ByteBuf
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)
ByteBuf
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 class ByteBuf
readerIndex
and the first occurrence if found. -1
otherwise.public int bytesBefore(int length, byte value)
ByteBuf
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 class ByteBuf
readerIndex
and the first occurrence if found. -1
otherwise.public int bytesBefore(int index, int length, byte value)
ByteBuf
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 class ByteBuf
index
and the first occurrence if found. -1
otherwise.public int forEachByte(ByteBufProcessor processor)
ByteBuf
processor
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)
ByteBuf
processor
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)
ByteBuf
processor
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)
ByteBuf
processor
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 int hashCode()
ByteBuf
public boolean equals(java.lang.Object o)
ByteBuf
ByteBuf.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 that)
ByteBuf
strcmp
,
memcmp
and String.compareTo(String)
.public java.lang.String toString()
ByteBuf
ByteBuf.readerIndex()
,
ByteBuf.writerIndex()
and ByteBuf.capacity()
.protected final void checkIndex(int index)
protected final void checkIndex(int index, int fieldLength)
protected final void checkSrcIndex(int index, int length, int srcIndex, int srcCapacity)
protected final void checkDstIndex(int index, int length, int dstIndex, int dstCapacity)
protected final void checkReadableBytes(int minimumReadableBytes)
IndexOutOfBoundsException
if the current
readable bytes of this buffer is less
than the specified value.protected final void checkNewCapacity(int newCapacity)
protected final void ensureAccessible()
Copyright © 2008–2018 The Netty Project. All rights reserved.