Class AbstractByteBuf
- java.lang.Object
-
- io.netty.buffer.ByteBuf
-
- io.netty.buffer.AbstractByteBuf
-
- All Implemented Interfaces:
ByteBufConvertible
,ReferenceCounted
,java.lang.Comparable<ByteBuf>
- Direct Known Subclasses:
AbstractDerivedByteBuf
,AbstractReferenceCountedByteBuf
public abstract class AbstractByteBuf extends ByteBuf
A skeletal implementation of a buffer.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractByteBuf(int maxCapacity)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract byte
_getByte(int index)
protected abstract int
_getInt(int index)
protected abstract int
_getIntLE(int index)
protected abstract long
_getLong(int index)
protected abstract long
_getLongLE(int index)
protected abstract short
_getShort(int index)
protected abstract short
_getShortLE(int index)
protected abstract int
_getUnsignedMedium(int index)
protected abstract int
_getUnsignedMediumLE(int index)
protected abstract void
_setByte(int index, int value)
protected abstract void
_setInt(int index, int value)
protected abstract void
_setIntLE(int index, int value)
protected abstract void
_setLong(int index, long value)
protected abstract void
_setLongLE(int index, long value)
protected abstract void
_setMedium(int index, int value)
protected abstract void
_setMediumLE(int index, int value)
protected abstract void
_setShort(int index, int value)
protected abstract void
_setShortLE(int index, int value)
protected void
adjustMarkers(int decrement)
ByteBuf
asReadOnly()
Returns a read-only version of this buffer.int
bytesBefore(byte value)
Locates the first occurrence of the specifiedvalue
in this buffer.int
bytesBefore(int length, byte value)
Locates the first occurrence of the specifiedvalue
in this buffer.int
bytesBefore(int index, int length, byte value)
Locates the first occurrence of the specifiedvalue
in this buffer.protected void
checkDstIndex(int length, int dstIndex, int dstCapacity)
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 anIndexOutOfBoundsException
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 thereaderIndex
andwriterIndex
of this buffer to0
.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 andreaderIndex
.ByteBuf
discardSomeReadBytes()
Similar toByteBuf.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)
Expands the bufferByteBuf.capacity()
to make sure the number of writable bytes is equal to or greater than the specified value.int
ensureWritable(int minWritableBytes, boolean force)
Expands the bufferByteBuf.capacity()
to make sure the number of 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(int index, int length, ByteProcessor processor)
Iterates over the specified area of this buffer with the specifiedprocessor
in ascending order.int
forEachByte(ByteProcessor processor)
Iterates over the readable bytes of this buffer with the specifiedprocessor
in ascending order.int
forEachByteDesc(int index, int length, ByteProcessor processor)
Iterates over the specified area of this buffer with the specifiedprocessor
in descending order.int
forEachByteDesc(ByteProcessor processor)
Iterates over the readable bytes of this buffer with the specifiedprocessor
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 absoluteindex
in this buffer.ByteBuf
getBytes(int index, byte[] dst)
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
.ByteBuf
getBytes(int index, ByteBuf dst)
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
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 absoluteindex
.char
getChar(int index)
Gets a 2-byte UTF-16 character at the specified absoluteindex
in this buffer.java.lang.CharSequence
getCharSequence(int index, int length, java.nio.charset.Charset charset)
Gets aCharSequence
with the given length at the given index.double
getDouble(int index)
Gets a 64-bit floating point number at the specified absoluteindex
in this buffer.float
getFloat(int index)
Gets a 32-bit floating point number at the specified absoluteindex
in this buffer.int
getInt(int index)
Gets a 32-bit integer at the specified absoluteindex
in this buffer.int
getIntLE(int index)
Gets a 32-bit integer at the specified absoluteindex
in this buffer with Little Endian Byte Order.long
getLong(int index)
Gets a 64-bit long integer at the specified absoluteindex
in this buffer.long
getLongLE(int index)
Gets a 64-bit long integer at the specified absoluteindex
in this buffer in Little Endian Byte Order.int
getMedium(int index)
Gets a 24-bit medium integer at the specified absoluteindex
in this buffer.int
getMediumLE(int index)
Gets a 24-bit medium integer at the specified absoluteindex
in this buffer in the Little Endian Byte Order.short
getShort(int index)
Gets a 16-bit short integer at the specified absoluteindex
in this buffer.short
getShortLE(int index)
Gets a 16-bit short integer at the specified absoluteindex
in this buffer in Little Endian Byte Order.short
getUnsignedByte(int index)
Gets an unsigned byte at the specified absoluteindex
in this buffer.long
getUnsignedInt(int index)
Gets an unsigned 32-bit integer at the specified absoluteindex
in this buffer.long
getUnsignedIntLE(int index)
Gets an unsigned 32-bit integer at the specified absoluteindex
in this buffer in Little Endian Byte Order.int
getUnsignedMedium(int index)
Gets an unsigned 24-bit medium integer at the specified absoluteindex
in this buffer.int
getUnsignedMediumLE(int index)
Gets an unsigned 24-bit medium integer at the specified absoluteindex
in this buffer in Little Endian Byte Order.int
getUnsignedShort(int index)
Gets an unsigned 16-bit short integer at the specified absoluteindex
in this buffer.int
getUnsignedShortLE(int index)
Gets an unsigned 16-bit short integer at the specified absoluteindex
in this buffer in Little Endian Byte Order.int
hashCode()
Returns a hash code which was calculated from the content of this buffer.int
indexOf(int fromIndex, int toIndex, byte value)
Locates the first occurrence of the specifiedvalue
in this buffer.boolean
isReadable()
Returnstrue
if and only if(this.writerIndex - this.readerIndex)
is greater than0
.boolean
isReadable(int numBytes)
Returnstrue
if and only if this buffer contains equal to or more than the specified number of elements.boolean
isReadOnly()
Returnstrue
if and only if this buffer is read-only.boolean
isWritable()
Returnstrue
if and only if(this.capacity - this.writerIndex)
is greater than0
.boolean
isWritable(int numBytes)
Returnstrue
if and only if this buffer has enough room to allow writing the specified number of elements.ByteBuf
markReaderIndex()
Marks the currentreaderIndex
in this buffer.ByteBuf
markWriterIndex()
Marks the currentwriterIndex
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 newSwappedByteBuf
for thisByteBuf
instance.java.nio.ByteBuffer
nioBuffer()
Exposes this buffer's readable bytes as an NIOByteBuffer
.java.nio.ByteBuffer[]
nioBuffers()
Exposes this buffer's readable bytes as an NIOByteBuffer
's.ByteBuf
order(java.nio.ByteOrder endianness)
Returns a buffer with the specifiedendianness
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 currentreaderIndex
and increases thereaderIndex
by1
in this buffer.byte
readByte()
Gets a byte at the currentreaderIndex
and increases thereaderIndex
by1
in this buffer.ByteBuf
readBytes(byte[] dst)
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=dst.length
).ByteBuf
readBytes(byte[] dst, int dstIndex, int length)
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
).ByteBuf
readBytes(int length)
Transfers this buffer's data to a newly created buffer starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
).ByteBuf
readBytes(ByteBuf dst)
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
until the destination becomes non-writable, and increases thereaderIndex
by the number of the transferred bytes.ByteBuf
readBytes(ByteBuf dst, int length)
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
).ByteBuf
readBytes(ByteBuf dst, int dstIndex, int length)
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
).ByteBuf
readBytes(java.io.OutputStream out, int length)
Transfers this buffer's data to the specified stream starting at the currentreaderIndex
.ByteBuf
readBytes(java.nio.ByteBuffer dst)
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
until the destination's position reaches its limit, and increases thereaderIndex
by the number of the transferred bytes.int
readBytes(java.nio.channels.FileChannel out, long position, int length)
Transfers this buffer's data starting at the currentreaderIndex
to the specified channel starting at the given file position.int
readBytes(java.nio.channels.GatheringByteChannel out, int length)
Transfers this buffer's data to the specified stream starting at the currentreaderIndex
.char
readChar()
Gets a 2-byte UTF-16 character at the currentreaderIndex
and increases thereaderIndex
by2
in this buffer.java.lang.CharSequence
readCharSequence(int length, java.nio.charset.Charset charset)
Gets aCharSequence
with the given length at the currentreaderIndex
and increases thereaderIndex
by the given length.double
readDouble()
Gets a 64-bit floating point number at the currentreaderIndex
and increases thereaderIndex
by8
in this buffer.int
readerIndex()
Returns thereaderIndex
of this buffer.ByteBuf
readerIndex(int readerIndex)
Sets thereaderIndex
of this buffer.float
readFloat()
Gets a 32-bit floating point number at the currentreaderIndex
and increases thereaderIndex
by4
in this buffer.int
readInt()
Gets a 32-bit integer at the currentreaderIndex
and increases thereaderIndex
by4
in this buffer.int
readIntLE()
Gets a 32-bit integer at the currentreaderIndex
in the Little Endian Byte Order and increases thereaderIndex
by4
in this buffer.long
readLong()
Gets a 64-bit integer at the currentreaderIndex
and increases thereaderIndex
by8
in this buffer.long
readLongLE()
Gets a 64-bit integer at the currentreaderIndex
in the Little Endian Byte Order and increases thereaderIndex
by8
in this buffer.int
readMedium()
Gets a 24-bit medium integer at the currentreaderIndex
and increases thereaderIndex
by3
in this buffer.int
readMediumLE()
Gets a 24-bit medium integer at the currentreaderIndex
in the Little Endian Byte Order and increases thereaderIndex
by3
in this buffer.ByteBuf
readRetainedSlice(int length)
Returns a new retained slice of this buffer's sub-region starting at the currentreaderIndex
and increases thereaderIndex
by the size of the new slice (=length
).short
readShort()
Gets a 16-bit short integer at the currentreaderIndex
and increases thereaderIndex
by2
in this buffer.short
readShortLE()
Gets a 16-bit short integer at the currentreaderIndex
in the Little Endian Byte Order and increases thereaderIndex
by2
in this buffer.ByteBuf
readSlice(int length)
Returns a new slice of this buffer's sub-region starting at the currentreaderIndex
and increases thereaderIndex
by the size of the new slice (=length
).short
readUnsignedByte()
Gets an unsigned byte at the currentreaderIndex
and increases thereaderIndex
by1
in this buffer.long
readUnsignedInt()
Gets an unsigned 32-bit integer at the currentreaderIndex
and increases thereaderIndex
by4
in this buffer.long
readUnsignedIntLE()
Gets an unsigned 32-bit integer at the currentreaderIndex
in the Little Endian Byte Order and increases thereaderIndex
by4
in this buffer.int
readUnsignedMedium()
Gets an unsigned 24-bit medium integer at the currentreaderIndex
and increases thereaderIndex
by3
in this buffer.int
readUnsignedMediumLE()
Gets an unsigned 24-bit medium integer at the currentreaderIndex
in the Little Endian Byte Order and increases thereaderIndex
by3
in this buffer.int
readUnsignedShort()
Gets an unsigned 16-bit short integer at the currentreaderIndex
and increases thereaderIndex
by2
in this buffer.int
readUnsignedShortLE()
Gets an unsigned 16-bit short integer at the currentreaderIndex
in the Little Endian Byte Order and increases thereaderIndex
by2
in this buffer.ByteBuf
resetReaderIndex()
Repositions the currentreaderIndex
to the markedreaderIndex
in this buffer.ByteBuf
resetWriterIndex()
Repositions the currentwriterIndex
to the markedwriterIndex
in this buffer.ByteBuf
retainedDuplicate()
Returns a retained buffer which shares the whole region of this buffer.ByteBuf
retainedSlice()
Returns a retained slice of this buffer's readable bytes.ByteBuf
retainedSlice(int index, int length)
Returns a retained slice of this buffer's sub-region.ByteBuf
setBoolean(int index, boolean value)
Sets the specified boolean at the specified absoluteindex
in this buffer.ByteBuf
setByte(int index, int value)
Sets the specified byte at the specified absoluteindex
in this buffer.ByteBuf
setBytes(int index, byte[] src)
Transfers the specified source array's data to this buffer starting at the specified absoluteindex
.ByteBuf
setBytes(int index, ByteBuf src)
Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex
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 absoluteindex
.ByteBuf
setChar(int index, int value)
Sets the specified 2-byte UTF-16 character at the specified absoluteindex
in this buffer.int
setCharSequence(int index, java.lang.CharSequence sequence, java.nio.charset.Charset charset)
Writes the specifiedCharSequence
at the givenindex
.ByteBuf
setDouble(int index, double value)
Sets the specified 64-bit floating-point number at the specified absoluteindex
in this buffer.ByteBuf
setFloat(int index, float value)
Sets the specified 32-bit floating-point number at the specified absoluteindex
in this buffer.ByteBuf
setIndex(int readerIndex, int writerIndex)
Sets thereaderIndex
andwriterIndex
of this buffer in one shot.ByteBuf
setInt(int index, int value)
Sets the specified 32-bit integer at the specified absoluteindex
in this buffer.ByteBuf
setIntLE(int index, int value)
Sets the specified 32-bit integer at the specified absoluteindex
in this buffer with Little Endian byte order .ByteBuf
setLong(int index, long value)
Sets the specified 64-bit long integer at the specified absoluteindex
in this buffer.ByteBuf
setLongLE(int index, long value)
Sets the specified 64-bit long integer at the specified absoluteindex
in this buffer in Little Endian Byte Order.ByteBuf
setMedium(int index, int value)
Sets the specified 24-bit medium integer at the specified absoluteindex
in this buffer.ByteBuf
setMediumLE(int index, int value)
Sets the specified 24-bit medium integer at the specified absoluteindex
in this buffer in the Little Endian Byte Order.ByteBuf
setShort(int index, int value)
Sets the specified 16-bit short integer at the specified absoluteindex
in this buffer.ByteBuf
setShortLE(int index, int value)
Sets the specified 16-bit short integer at the specified absoluteindex
in this buffer with the Little Endian Byte Order.ByteBuf
setZero(int index, int length)
Fills this buffer with NUL (0x00) starting at the specified absoluteindex
.ByteBuf
skipBytes(int length)
Increases the currentreaderIndex
by the specifiedlength
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(int index, int length, java.nio.charset.Charset charset)
Decodes this buffer's sub-region into a string with the specified character set.java.lang.String
toString(java.nio.charset.Charset charset)
Decodes this buffer's readable bytes into a string with the specified character set name.protected void
trimIndicesToCapacity(int newCapacity)
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 currentwriterIndex
and increases thewriterIndex
by1
in this buffer.ByteBuf
writeByte(int value)
Sets the specified byte at the currentwriterIndex
and increases thewriterIndex
by1
in this buffer.ByteBuf
writeBytes(byte[] src)
Transfers the specified source array's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=src.length
).ByteBuf
writeBytes(byte[] src, int srcIndex, int length)
Transfers the specified source array's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=length
).ByteBuf
writeBytes(ByteBuf src)
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
until the source buffer becomes unreadable, and increases thewriterIndex
by the number of the transferred bytes.ByteBuf
writeBytes(ByteBuf src, int length)
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=length
).ByteBuf
writeBytes(ByteBuf src, int srcIndex, int length)
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=length
).int
writeBytes(java.io.InputStream in, int length)
Transfers the content of the specified stream to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes.ByteBuf
writeBytes(java.nio.ByteBuffer src)
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
until the source buffer's position reaches its limit, and increases thewriterIndex
by the number of the transferred bytes.int
writeBytes(java.nio.channels.FileChannel in, long position, int length)
Transfers the content of the specified channel starting at the given file position to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes.int
writeBytes(java.nio.channels.ScatteringByteChannel in, int length)
Transfers the content of the specified channel to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes.ByteBuf
writeChar(int value)
Sets the specified 2-byte UTF-16 character at the currentwriterIndex
and increases thewriterIndex
by2
in this buffer.int
writeCharSequence(java.lang.CharSequence sequence, java.nio.charset.Charset charset)
Writes the specifiedCharSequence
at the currentwriterIndex
and increases thewriterIndex
by the written bytes.ByteBuf
writeDouble(double value)
Sets the specified 64-bit floating point number at the currentwriterIndex
and increases thewriterIndex
by8
in this buffer.ByteBuf
writeFloat(float value)
Sets the specified 32-bit floating point number at the currentwriterIndex
and increases thewriterIndex
by4
in this buffer.ByteBuf
writeInt(int value)
Sets the specified 32-bit integer at the currentwriterIndex
and increases thewriterIndex
by4
in this buffer.ByteBuf
writeIntLE(int value)
Sets the specified 32-bit integer at the currentwriterIndex
in the Little Endian Byte Order and increases thewriterIndex
by4
in this buffer.ByteBuf
writeLong(long value)
Sets the specified 64-bit long integer at the currentwriterIndex
and increases thewriterIndex
by8
in this buffer.ByteBuf
writeLongLE(long value)
Sets the specified 64-bit long integer at the currentwriterIndex
in the Little Endian Byte Order and increases thewriterIndex
by8
in this buffer.ByteBuf
writeMedium(int value)
Sets the specified 24-bit medium integer at the currentwriterIndex
and increases thewriterIndex
by3
in this buffer.ByteBuf
writeMediumLE(int value)
Sets the specified 24-bit medium integer at the currentwriterIndex
in the Little Endian Byte Order and increases thewriterIndex
by3
in this buffer.int
writerIndex()
Returns thewriterIndex
of this buffer.ByteBuf
writerIndex(int writerIndex)
Sets thewriterIndex
of this buffer.ByteBuf
writeShort(int value)
Sets the specified 16-bit short integer at the currentwriterIndex
and increases thewriterIndex
by2
in this buffer.ByteBuf
writeShortLE(int value)
Sets the specified 16-bit short integer in the Little Endian Byte Order at the currentwriterIndex
and increases thewriterIndex
by2
in this buffer.ByteBuf
writeZero(int length)
Fills this buffer with NUL (0x00) starting at the currentwriterIndex
and increases thewriterIndex
by the specifiedlength
.-
Methods inherited from class io.netty.buffer.ByteBuf
alloc, array, arrayOffset, asByteBuf, capacity, capacity, copy, getBytes, getBytes, getBytes, getBytes, getBytes, getBytes, getDoubleLE, getFloatLE, hasArray, hasMemoryAddress, internalNioBuffer, isContiguous, isDirect, maxFastWritableBytes, memoryAddress, nioBuffer, nioBufferCount, nioBuffers, order, readDoubleLE, readFloatLE, retain, retain, setBytes, setBytes, setBytes, setBytes, setBytes, setBytes, setDoubleLE, setFloatLE, touch, touch, unwrap, writeDoubleLE, writeFloatLE
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface io.netty.util.ReferenceCounted
refCnt, release, release
-
-
-
-
Method Detail
-
isReadOnly
public boolean isReadOnly()
Description copied from class:ByteBuf
Returnstrue
if and only if this buffer is read-only.- Specified by:
isReadOnly
in classByteBuf
-
asReadOnly
public ByteBuf asReadOnly()
Description copied from class:ByteBuf
Returns a read-only version of this buffer.- Specified by:
asReadOnly
in classByteBuf
-
maxCapacity
public int maxCapacity()
Description copied from class:ByteBuf
Returns the maximum allowed capacity of this buffer. This value provides an upper bound onByteBuf.capacity()
.- Specified by:
maxCapacity
in classByteBuf
-
maxCapacity
protected final void maxCapacity(int maxCapacity)
-
readerIndex
public int readerIndex()
Description copied from class:ByteBuf
Returns thereaderIndex
of this buffer.- Specified by:
readerIndex
in classByteBuf
-
readerIndex
public ByteBuf readerIndex(int readerIndex)
Description copied from class:ByteBuf
Sets thereaderIndex
of this buffer.- Specified by:
readerIndex
in classByteBuf
-
writerIndex
public int writerIndex()
Description copied from class:ByteBuf
Returns thewriterIndex
of this buffer.- Specified by:
writerIndex
in classByteBuf
-
writerIndex
public ByteBuf writerIndex(int writerIndex)
Description copied from class:ByteBuf
Sets thewriterIndex
of this buffer.- Specified by:
writerIndex
in classByteBuf
-
setIndex
public ByteBuf setIndex(int readerIndex, int writerIndex)
Description copied from class:ByteBuf
Sets thereaderIndex
andwriterIndex
of this buffer in one shot. This method is useful when you have to worry about the invocation order ofByteBuf.readerIndex(int)
andByteBuf.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);
-
clear
public ByteBuf clear()
Description copied from class:ByteBuf
Sets thereaderIndex
andwriterIndex
of this buffer to0
. This method is identical tosetIndex(0, 0)
.Please note that the behavior of this method is different from that of NIO buffer, which sets the
limit
to thecapacity
of the buffer.
-
isReadable
public boolean isReadable()
Description copied from class:ByteBuf
Returnstrue
if and only if(this.writerIndex - this.readerIndex)
is greater than0
.- Specified by:
isReadable
in classByteBuf
-
isReadable
public boolean isReadable(int numBytes)
Description copied from class:ByteBuf
Returnstrue
if and only if this buffer contains equal to or more than the specified number of elements.- Specified by:
isReadable
in classByteBuf
-
isWritable
public boolean isWritable()
Description copied from class:ByteBuf
Returnstrue
if and only if(this.capacity - this.writerIndex)
is greater than0
.- Specified by:
isWritable
in classByteBuf
-
isWritable
public boolean isWritable(int numBytes)
Description copied from class:ByteBuf
Returnstrue
if and only if this buffer has enough room to allow writing the specified number of elements.- Specified by:
isWritable
in classByteBuf
-
readableBytes
public int readableBytes()
Description copied from class:ByteBuf
Returns the number of readable bytes which is equal to(this.writerIndex - this.readerIndex)
.- Specified by:
readableBytes
in classByteBuf
-
writableBytes
public int writableBytes()
Description copied from class:ByteBuf
Returns the number of writable bytes which is equal to(this.capacity - this.writerIndex)
.- Specified by:
writableBytes
in classByteBuf
-
maxWritableBytes
public int maxWritableBytes()
Description copied from class:ByteBuf
Returns the maximum possible number of writable bytes, which is equal to(this.maxCapacity - this.writerIndex)
.- Specified by:
maxWritableBytes
in classByteBuf
-
markReaderIndex
public ByteBuf markReaderIndex()
Description copied from class:ByteBuf
Marks the currentreaderIndex
in this buffer. You can reposition the currentreaderIndex
to the markedreaderIndex
by callingByteBuf.resetReaderIndex()
. The initial value of the markedreaderIndex
is0
.- Specified by:
markReaderIndex
in classByteBuf
-
resetReaderIndex
public ByteBuf resetReaderIndex()
Description copied from class:ByteBuf
Repositions the currentreaderIndex
to the markedreaderIndex
in this buffer.- Specified by:
resetReaderIndex
in classByteBuf
-
markWriterIndex
public ByteBuf markWriterIndex()
Description copied from class:ByteBuf
Marks the currentwriterIndex
in this buffer. You can reposition the currentwriterIndex
to the markedwriterIndex
by callingByteBuf.resetWriterIndex()
. The initial value of the markedwriterIndex
is0
.- Specified by:
markWriterIndex
in classByteBuf
-
resetWriterIndex
public ByteBuf resetWriterIndex()
Description copied from class:ByteBuf
Repositions the currentwriterIndex
to the markedwriterIndex
in this buffer.- Specified by:
resetWriterIndex
in classByteBuf
-
discardReadBytes
public ByteBuf discardReadBytes()
Description copied from class:ByteBuf
Discards the bytes between the 0th index andreaderIndex
. It moves the bytes betweenreaderIndex
andwriterIndex
to the 0th index, and setsreaderIndex
andwriterIndex
to0
andoldWriterIndex - oldReaderIndex
respectively.Please refer to the class documentation for more detailed explanation.
- Specified by:
discardReadBytes
in classByteBuf
-
discardSomeReadBytes
public ByteBuf discardSomeReadBytes()
Description copied from class:ByteBuf
Similar toByteBuf.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.- Specified by:
discardSomeReadBytes
in classByteBuf
-
adjustMarkers
protected final void adjustMarkers(int decrement)
-
trimIndicesToCapacity
protected final void trimIndicesToCapacity(int newCapacity)
-
ensureWritable
public ByteBuf ensureWritable(int minWritableBytes)
Description copied from class:ByteBuf
Expands the bufferByteBuf.capacity()
to make sure the number of writable bytes is equal to or greater than the specified value. If there are enough writable bytes in this buffer, this method returns with no side effect.- Specified by:
ensureWritable
in classByteBuf
- Parameters:
minWritableBytes
- the expected minimum number of writable bytes- See Also:
ByteBuf.capacity(int)
-
ensureWritable
public int ensureWritable(int minWritableBytes, boolean force)
Description copied from class:ByteBuf
Expands the bufferByteBuf.capacity()
to make sure the number of writable bytes is equal to or greater than the specified value. UnlikeByteBuf.ensureWritable(int)
, this method returns a status code.- Specified by:
ensureWritable
in classByteBuf
- Parameters:
minWritableBytes
- the expected minimum number of writable bytesforce
- WhenByteBuf.writerIndex()
+minWritableBytes
>ByteBuf.maxCapacity()
:true
- the capacity of the buffer is expanded toByteBuf.maxCapacity()
false
- the capacity of the buffer is unchanged
- Returns:
0
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.
-
order
public ByteBuf order(java.nio.ByteOrder endianness)
Description copied from class:ByteBuf
Returns a buffer with the specifiedendianness
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 specifiedendianness
is identical to this buffer's byte order, this method can returnthis
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
newSwappedByteBuf
protected SwappedByteBuf newSwappedByteBuf()
Creates a newSwappedByteBuf
for thisByteBuf
instance.
-
getByte
public byte getByte(int index)
Description copied from class:ByteBuf
Gets a byte at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
_getByte
protected abstract byte _getByte(int index)
-
getBoolean
public boolean getBoolean(int index)
Description copied from class:ByteBuf
Gets a boolean at the specified absolute (@code index) in this buffer. This method does not modify thereaderIndex
orwriterIndex
of this buffer.- Specified by:
getBoolean
in classByteBuf
-
getUnsignedByte
public short getUnsignedByte(int index)
Description copied from class:ByteBuf
Gets an unsigned byte at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getUnsignedByte
in classByteBuf
-
getShort
public short getShort(int index)
Description copied from class:ByteBuf
Gets a 16-bit short integer at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
_getShort
protected abstract short _getShort(int index)
-
getShortLE
public short getShortLE(int index)
Description copied from class:ByteBuf
Gets a 16-bit short integer at the specified absoluteindex
in this buffer in Little Endian Byte Order. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getShortLE
in classByteBuf
-
_getShortLE
protected abstract short _getShortLE(int index)
-
getUnsignedShort
public int getUnsignedShort(int index)
Description copied from class:ByteBuf
Gets an unsigned 16-bit short integer at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getUnsignedShort
in classByteBuf
-
getUnsignedShortLE
public int getUnsignedShortLE(int index)
Description copied from class:ByteBuf
Gets an unsigned 16-bit short integer at the specified absoluteindex
in this buffer in Little Endian Byte Order. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getUnsignedShortLE
in classByteBuf
-
getUnsignedMedium
public int getUnsignedMedium(int index)
Description copied from class:ByteBuf
Gets an unsigned 24-bit medium integer at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getUnsignedMedium
in classByteBuf
-
_getUnsignedMedium
protected abstract int _getUnsignedMedium(int index)
-
getUnsignedMediumLE
public int getUnsignedMediumLE(int index)
Description copied from class:ByteBuf
Gets an unsigned 24-bit medium integer at the specified absoluteindex
in this buffer in Little Endian Byte Order. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getUnsignedMediumLE
in classByteBuf
-
_getUnsignedMediumLE
protected abstract int _getUnsignedMediumLE(int index)
-
getMedium
public int getMedium(int index)
Description copied from class:ByteBuf
Gets a 24-bit medium integer at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
getMediumLE
public int getMediumLE(int index)
Description copied from class:ByteBuf
Gets a 24-bit medium integer at the specified absoluteindex
in this buffer in the Little Endian Byte Order. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getMediumLE
in classByteBuf
-
getInt
public int getInt(int index)
Description copied from class:ByteBuf
Gets a 32-bit integer at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
_getInt
protected abstract int _getInt(int index)
-
getIntLE
public int getIntLE(int index)
Description copied from class:ByteBuf
Gets a 32-bit integer at the specified absoluteindex
in this buffer with Little Endian Byte Order. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
_getIntLE
protected abstract int _getIntLE(int index)
-
getUnsignedInt
public long getUnsignedInt(int index)
Description copied from class:ByteBuf
Gets an unsigned 32-bit integer at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getUnsignedInt
in classByteBuf
-
getUnsignedIntLE
public long getUnsignedIntLE(int index)
Description copied from class:ByteBuf
Gets an unsigned 32-bit integer at the specified absoluteindex
in this buffer in Little Endian Byte Order. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
getUnsignedIntLE
in classByteBuf
-
getLong
public long getLong(int index)
Description copied from class:ByteBuf
Gets a 64-bit long integer at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
_getLong
protected abstract long _getLong(int index)
-
getLongLE
public long getLongLE(int index)
Description copied from class:ByteBuf
Gets a 64-bit long integer at the specified absoluteindex
in this buffer in Little Endian Byte Order. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
_getLongLE
protected abstract long _getLongLE(int index)
-
getChar
public char getChar(int index)
Description copied from class:ByteBuf
Gets a 2-byte UTF-16 character at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
getFloat
public float getFloat(int index)
Description copied from class:ByteBuf
Gets a 32-bit floating point number at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
getDouble
public double getDouble(int index)
Description copied from class:ByteBuf
Gets a 64-bit floating point number at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
getBytes
public ByteBuf getBytes(int index, byte[] dst)
Description copied from class:ByteBuf
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
. This method does not modifyreaderIndex
orwriterIndex
of this buffer
-
getBytes
public ByteBuf getBytes(int index, ByteBuf dst)
Description copied from class:ByteBuf
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
until the destination becomes non-writable. This method is basically same withByteBuf.getBytes(int, ByteBuf, int, int)
, except that this method increases thewriterIndex
of the destination by the number of the transferred bytes whileByteBuf.getBytes(int, ByteBuf, int, int)
does not. This method does not modifyreaderIndex
orwriterIndex
of the source buffer (i.e.this
).
-
getBytes
public ByteBuf getBytes(int index, ByteBuf dst, int length)
Description copied from class:ByteBuf
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
. This method is basically same withByteBuf.getBytes(int, ByteBuf, int, int)
, except that this method increases thewriterIndex
of the destination by the number of the transferred bytes whileByteBuf.getBytes(int, ByteBuf, int, int)
does not. This method does not modifyreaderIndex
orwriterIndex
of the source buffer (i.e.this
).
-
getCharSequence
public java.lang.CharSequence getCharSequence(int index, int length, java.nio.charset.Charset charset)
Description copied from class:ByteBuf
Gets aCharSequence
with the given length at the given index.- Specified by:
getCharSequence
in classByteBuf
length
- the length to readcharset
- that should be used- Returns:
- the sequence
-
readCharSequence
public java.lang.CharSequence readCharSequence(int length, java.nio.charset.Charset charset)
Description copied from class:ByteBuf
Gets aCharSequence
with the given length at the currentreaderIndex
and increases thereaderIndex
by the given length.- Specified by:
readCharSequence
in classByteBuf
- Parameters:
length
- the length to readcharset
- that should be used- Returns:
- the sequence
-
setByte
public ByteBuf setByte(int index, int value)
Description copied from class:ByteBuf
Sets the specified byte at the specified absoluteindex
in this buffer. The 24 high-order bits of the specified value are ignored. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
_setByte
protected abstract void _setByte(int index, int value)
-
setBoolean
public ByteBuf setBoolean(int index, boolean value)
Description copied from class:ByteBuf
Sets the specified boolean at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
setBoolean
in classByteBuf
-
setShort
public ByteBuf setShort(int index, int value)
Description copied from class:ByteBuf
Sets the specified 16-bit short integer at the specified absoluteindex
in this buffer. The 16 high-order bits of the specified value are ignored. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
_setShort
protected abstract void _setShort(int index, int value)
-
setShortLE
public ByteBuf setShortLE(int index, int value)
Description copied from class:ByteBuf
Sets the specified 16-bit short integer at the specified absoluteindex
in this buffer with the Little Endian Byte Order. The 16 high-order bits of the specified value are ignored. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
setShortLE
in classByteBuf
-
_setShortLE
protected abstract void _setShortLE(int index, int value)
-
setChar
public ByteBuf setChar(int index, int value)
Description copied from class:ByteBuf
Sets the specified 2-byte UTF-16 character at the specified absoluteindex
in this buffer. The 16 high-order bits of the specified value are ignored. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
setMedium
public ByteBuf setMedium(int index, int value)
Description copied from class:ByteBuf
Sets the specified 24-bit medium integer at the specified absoluteindex
in this buffer. Please note that the most significant byte is ignored in the specified value. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
_setMedium
protected abstract void _setMedium(int index, int value)
-
setMediumLE
public ByteBuf setMediumLE(int index, int value)
Description copied from class:ByteBuf
Sets the specified 24-bit medium integer at the specified absoluteindex
in this buffer in the Little Endian Byte Order. Please note that the most significant byte is ignored in the specified value. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- Specified by:
setMediumLE
in classByteBuf
-
_setMediumLE
protected abstract void _setMediumLE(int index, int value)
-
setInt
public ByteBuf setInt(int index, int value)
Description copied from class:ByteBuf
Sets the specified 32-bit integer at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
_setInt
protected abstract void _setInt(int index, int value)
-
setIntLE
public ByteBuf setIntLE(int index, int value)
Description copied from class:ByteBuf
Sets the specified 32-bit integer at the specified absoluteindex
in this buffer with Little Endian byte order . This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
_setIntLE
protected abstract void _setIntLE(int index, int value)
-
setFloat
public ByteBuf setFloat(int index, float value)
Description copied from class:ByteBuf
Sets the specified 32-bit floating-point number at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
setLong
public ByteBuf setLong(int index, long value)
Description copied from class:ByteBuf
Sets the specified 64-bit long integer at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
_setLong
protected abstract void _setLong(int index, long value)
-
setLongLE
public ByteBuf setLongLE(int index, long value)
Description copied from class:ByteBuf
Sets the specified 64-bit long integer at the specified absoluteindex
in this buffer in Little Endian Byte Order. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
_setLongLE
protected abstract void _setLongLE(int index, long value)
-
setDouble
public ByteBuf setDouble(int index, double value)
Description copied from class:ByteBuf
Sets the specified 64-bit floating-point number at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
setBytes
public ByteBuf setBytes(int index, byte[] src)
Description copied from class:ByteBuf
Transfers the specified source array's data to this buffer starting at the specified absoluteindex
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
setBytes
public ByteBuf setBytes(int index, ByteBuf src)
Description copied from class:ByteBuf
Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex
until the source buffer becomes unreadable. This method is basically same withByteBuf.setBytes(int, ByteBuf, int, int)
, except that this method increases thereaderIndex
of the source buffer by the number of the transferred bytes whileByteBuf.setBytes(int, ByteBuf, int, int)
does not. This method does not modifyreaderIndex
orwriterIndex
of this buffer (i.e.this
).
-
setBytes
public ByteBuf setBytes(int index, ByteBuf src, int length)
Description copied from class:ByteBuf
Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex
. This method is basically same withByteBuf.setBytes(int, ByteBuf, int, int)
, except that this method increases thereaderIndex
of the source buffer by the number of the transferred bytes whileByteBuf.setBytes(int, ByteBuf, int, int)
does not. This method does not modifyreaderIndex
orwriterIndex
of this buffer (i.e.this
).
-
setZero
public ByteBuf setZero(int index, int length)
Description copied from class:ByteBuf
Fills this buffer with NUL (0x00) starting at the specified absoluteindex
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
setCharSequence
public int setCharSequence(int index, java.lang.CharSequence sequence, java.nio.charset.Charset charset)
Description copied from class:ByteBuf
Writes the specifiedCharSequence
at the givenindex
. ThewriterIndex
is not modified by this method.- Specified by:
setCharSequence
in classByteBuf
- Parameters:
index
- on which the sequence should be writtensequence
- to writecharset
- that should be used.- Returns:
- the written number of bytes.
-
readByte
public byte readByte()
Description copied from class:ByteBuf
Gets a byte at the currentreaderIndex
and increases thereaderIndex
by1
in this buffer.
-
readBoolean
public boolean readBoolean()
Description copied from class:ByteBuf
Gets a boolean at the currentreaderIndex
and increases thereaderIndex
by1
in this buffer.- Specified by:
readBoolean
in classByteBuf
-
readUnsignedByte
public short readUnsignedByte()
Description copied from class:ByteBuf
Gets an unsigned byte at the currentreaderIndex
and increases thereaderIndex
by1
in this buffer.- Specified by:
readUnsignedByte
in classByteBuf
-
readShort
public short readShort()
Description copied from class:ByteBuf
Gets a 16-bit short integer at the currentreaderIndex
and increases thereaderIndex
by2
in this buffer.
-
readShortLE
public short readShortLE()
Description copied from class:ByteBuf
Gets a 16-bit short integer at the currentreaderIndex
in the Little Endian Byte Order and increases thereaderIndex
by2
in this buffer.- Specified by:
readShortLE
in classByteBuf
-
readUnsignedShort
public int readUnsignedShort()
Description copied from class:ByteBuf
Gets an unsigned 16-bit short integer at the currentreaderIndex
and increases thereaderIndex
by2
in this buffer.- Specified by:
readUnsignedShort
in classByteBuf
-
readUnsignedShortLE
public int readUnsignedShortLE()
Description copied from class:ByteBuf
Gets an unsigned 16-bit short integer at the currentreaderIndex
in the Little Endian Byte Order and increases thereaderIndex
by2
in this buffer.- Specified by:
readUnsignedShortLE
in classByteBuf
-
readMedium
public int readMedium()
Description copied from class:ByteBuf
Gets a 24-bit medium integer at the currentreaderIndex
and increases thereaderIndex
by3
in this buffer.- Specified by:
readMedium
in classByteBuf
-
readMediumLE
public int readMediumLE()
Description copied from class:ByteBuf
Gets a 24-bit medium integer at the currentreaderIndex
in the Little Endian Byte Order and increases thereaderIndex
by3
in this buffer.- Specified by:
readMediumLE
in classByteBuf
-
readUnsignedMedium
public int readUnsignedMedium()
Description copied from class:ByteBuf
Gets an unsigned 24-bit medium integer at the currentreaderIndex
and increases thereaderIndex
by3
in this buffer.- Specified by:
readUnsignedMedium
in classByteBuf
-
readUnsignedMediumLE
public int readUnsignedMediumLE()
Description copied from class:ByteBuf
Gets an unsigned 24-bit medium integer at the currentreaderIndex
in the Little Endian Byte Order and increases thereaderIndex
by3
in this buffer.- Specified by:
readUnsignedMediumLE
in classByteBuf
-
readInt
public int readInt()
Description copied from class:ByteBuf
Gets a 32-bit integer at the currentreaderIndex
and increases thereaderIndex
by4
in this buffer.
-
readIntLE
public int readIntLE()
Description copied from class:ByteBuf
Gets a 32-bit integer at the currentreaderIndex
in the Little Endian Byte Order and increases thereaderIndex
by4
in this buffer.
-
readUnsignedInt
public long readUnsignedInt()
Description copied from class:ByteBuf
Gets an unsigned 32-bit integer at the currentreaderIndex
and increases thereaderIndex
by4
in this buffer.- Specified by:
readUnsignedInt
in classByteBuf
-
readUnsignedIntLE
public long readUnsignedIntLE()
Description copied from class:ByteBuf
Gets an unsigned 32-bit integer at the currentreaderIndex
in the Little Endian Byte Order and increases thereaderIndex
by4
in this buffer.- Specified by:
readUnsignedIntLE
in classByteBuf
-
readLong
public long readLong()
Description copied from class:ByteBuf
Gets a 64-bit integer at the currentreaderIndex
and increases thereaderIndex
by8
in this buffer.
-
readLongLE
public long readLongLE()
Description copied from class:ByteBuf
Gets a 64-bit integer at the currentreaderIndex
in the Little Endian Byte Order and increases thereaderIndex
by8
in this buffer.- Specified by:
readLongLE
in classByteBuf
-
readChar
public char readChar()
Description copied from class:ByteBuf
Gets a 2-byte UTF-16 character at the currentreaderIndex
and increases thereaderIndex
by2
in this buffer.
-
readFloat
public float readFloat()
Description copied from class:ByteBuf
Gets a 32-bit floating point number at the currentreaderIndex
and increases thereaderIndex
by4
in this buffer.
-
readDouble
public double readDouble()
Description copied from class:ByteBuf
Gets a 64-bit floating point number at the currentreaderIndex
and increases thereaderIndex
by8
in this buffer.- Specified by:
readDouble
in classByteBuf
-
readBytes
public ByteBuf readBytes(int length)
Description copied from class:ByteBuf
Transfers this buffer's data to a newly created buffer starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
). The returned buffer'sreaderIndex
andwriterIndex
are0
andlength
respectively.
-
readSlice
public ByteBuf readSlice(int length)
Description copied from class:ByteBuf
Returns a new slice of this buffer's sub-region starting at the currentreaderIndex
and increases thereaderIndex
by the size of the new slice (=length
).Also be aware that this method will NOT call
ByteBuf.retain()
and so the reference count will NOT be increased.
-
readRetainedSlice
public ByteBuf readRetainedSlice(int length)
Description copied from class:ByteBuf
Returns a new retained slice of this buffer's sub-region starting at the currentreaderIndex
and increases thereaderIndex
by the size of the new slice (=length
).Note that this method returns a retained buffer unlike
ByteBuf.readSlice(int)
. This method behaves similarly toreadSlice(...).retain()
except that this method may return a buffer implementation that produces less garbage.- Specified by:
readRetainedSlice
in classByteBuf
- Parameters:
length
- the size of the new slice- Returns:
- the newly created slice
-
readBytes
public ByteBuf readBytes(byte[] dst, int dstIndex, int length)
Description copied from class:ByteBuf
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
).
-
readBytes
public ByteBuf readBytes(byte[] dst)
Description copied from class:ByteBuf
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=dst.length
).
-
readBytes
public ByteBuf readBytes(ByteBuf dst)
Description copied from class:ByteBuf
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
until the destination becomes non-writable, and increases thereaderIndex
by the number of the transferred bytes. This method is basically same withByteBuf.readBytes(ByteBuf, int, int)
, except that this method increases thewriterIndex
of the destination by the number of the transferred bytes whileByteBuf.readBytes(ByteBuf, int, int)
does not.
-
readBytes
public ByteBuf readBytes(ByteBuf dst, int length)
Description copied from class:ByteBuf
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
). This method is basically same withByteBuf.readBytes(ByteBuf, int, int)
, except that this method increases thewriterIndex
of the destination by the number of the transferred bytes (=length
) whileByteBuf.readBytes(ByteBuf, int, int)
does not.
-
readBytes
public ByteBuf readBytes(ByteBuf dst, int dstIndex, int length)
Description copied from class:ByteBuf
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
).
-
readBytes
public ByteBuf readBytes(java.nio.ByteBuffer dst)
Description copied from class:ByteBuf
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
until the destination's position reaches its limit, and increases thereaderIndex
by the number of the transferred bytes.
-
readBytes
public int readBytes(java.nio.channels.GatheringByteChannel out, int length) throws java.io.IOException
Description copied from class:ByteBuf
Transfers this buffer's data to the specified stream starting at the currentreaderIndex
.
-
readBytes
public int readBytes(java.nio.channels.FileChannel out, long position, int length) throws java.io.IOException
Description copied from class:ByteBuf
Transfers this buffer's data starting at the currentreaderIndex
to the specified channel starting at the given file position. This method does not modify the channel's position.- Specified by:
readBytes
in classByteBuf
position
- the file position at which the transfer is to beginlength
- the maximum number of bytes to transfer- Returns:
- the actual number of bytes written out to the specified channel
- Throws:
java.io.IOException
- if the specified channel threw an exception during I/O
-
readBytes
public ByteBuf readBytes(java.io.OutputStream out, int length) throws java.io.IOException
Description copied from class:ByteBuf
Transfers this buffer's data to the specified stream starting at the currentreaderIndex
.
-
skipBytes
public ByteBuf skipBytes(int length)
Description copied from class:ByteBuf
Increases the currentreaderIndex
by the specifiedlength
in this buffer.
-
writeBoolean
public ByteBuf writeBoolean(boolean value)
Description copied from class:ByteBuf
Sets the specified boolean at the currentwriterIndex
and increases thewriterIndex
by1
in this buffer. Ifthis.writableBytes
is less than1
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.- Specified by:
writeBoolean
in classByteBuf
-
writeByte
public ByteBuf writeByte(int value)
Description copied from class:ByteBuf
Sets the specified byte at the currentwriterIndex
and increases thewriterIndex
by1
in this buffer. The 24 high-order bits of the specified value are ignored. Ifthis.writableBytes
is less than1
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.
-
writeShort
public ByteBuf writeShort(int value)
Description copied from class:ByteBuf
Sets the specified 16-bit short integer at the currentwriterIndex
and increases thewriterIndex
by2
in this buffer. The 16 high-order bits of the specified value are ignored. Ifthis.writableBytes
is less than2
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.- Specified by:
writeShort
in classByteBuf
-
writeShortLE
public ByteBuf writeShortLE(int value)
Description copied from class:ByteBuf
Sets the specified 16-bit short integer in the Little Endian Byte Order at the currentwriterIndex
and increases thewriterIndex
by2
in this buffer. The 16 high-order bits of the specified value are ignored. Ifthis.writableBytes
is less than2
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.- Specified by:
writeShortLE
in classByteBuf
-
writeMedium
public ByteBuf writeMedium(int value)
Description copied from class:ByteBuf
Sets the specified 24-bit medium integer at the currentwriterIndex
and increases thewriterIndex
by3
in this buffer. Ifthis.writableBytes
is less than3
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.- Specified by:
writeMedium
in classByteBuf
-
writeMediumLE
public ByteBuf writeMediumLE(int value)
Description copied from class:ByteBuf
Sets the specified 24-bit medium integer at the currentwriterIndex
in the Little Endian Byte Order and increases thewriterIndex
by3
in this buffer. Ifthis.writableBytes
is less than3
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.- Specified by:
writeMediumLE
in classByteBuf
-
writeInt
public ByteBuf writeInt(int value)
Description copied from class:ByteBuf
Sets the specified 32-bit integer at the currentwriterIndex
and increases thewriterIndex
by4
in this buffer. Ifthis.writableBytes
is less than4
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.
-
writeIntLE
public ByteBuf writeIntLE(int value)
Description copied from class:ByteBuf
Sets the specified 32-bit integer at the currentwriterIndex
in the Little Endian Byte Order and increases thewriterIndex
by4
in this buffer. Ifthis.writableBytes
is less than4
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.- Specified by:
writeIntLE
in classByteBuf
-
writeLong
public ByteBuf writeLong(long value)
Description copied from class:ByteBuf
Sets the specified 64-bit long integer at the currentwriterIndex
and increases thewriterIndex
by8
in this buffer. Ifthis.writableBytes
is less than8
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.
-
writeLongLE
public ByteBuf writeLongLE(long value)
Description copied from class:ByteBuf
Sets the specified 64-bit long integer at the currentwriterIndex
in the Little Endian Byte Order and increases thewriterIndex
by8
in this buffer. Ifthis.writableBytes
is less than8
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.- Specified by:
writeLongLE
in classByteBuf
-
writeChar
public ByteBuf writeChar(int value)
Description copied from class:ByteBuf
Sets the specified 2-byte UTF-16 character at the currentwriterIndex
and increases thewriterIndex
by2
in this buffer. The 16 high-order bits of the specified value are ignored. Ifthis.writableBytes
is less than2
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.
-
writeFloat
public ByteBuf writeFloat(float value)
Description copied from class:ByteBuf
Sets the specified 32-bit floating point number at the currentwriterIndex
and increases thewriterIndex
by4
in this buffer. Ifthis.writableBytes
is less than4
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.- Specified by:
writeFloat
in classByteBuf
-
writeDouble
public ByteBuf writeDouble(double value)
Description copied from class:ByteBuf
Sets the specified 64-bit floating point number at the currentwriterIndex
and increases thewriterIndex
by8
in this buffer. Ifthis.writableBytes
is less than8
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.- Specified by:
writeDouble
in classByteBuf
-
writeBytes
public ByteBuf writeBytes(byte[] src, int srcIndex, int length)
Description copied from class:ByteBuf
Transfers the specified source array's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=length
). Ifthis.writableBytes
is less thanlength
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.- Specified by:
writeBytes
in classByteBuf
srcIndex
- the first index of the sourcelength
- the number of bytes to transfer
-
writeBytes
public ByteBuf writeBytes(byte[] src)
Description copied from class:ByteBuf
Transfers the specified source array's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=src.length
). Ifthis.writableBytes
is less thansrc.length
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.- Specified by:
writeBytes
in classByteBuf
-
writeBytes
public ByteBuf writeBytes(ByteBuf src)
Description copied from class:ByteBuf
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
until the source buffer becomes unreadable, and increases thewriterIndex
by the number of the transferred bytes. This method is basically same withByteBuf.writeBytes(ByteBuf, int, int)
, except that this method increases thereaderIndex
of the source buffer by the number of the transferred bytes whileByteBuf.writeBytes(ByteBuf, int, int)
does not. Ifthis.writableBytes
is less thansrc.readableBytes
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.- Specified by:
writeBytes
in classByteBuf
-
writeBytes
public ByteBuf writeBytes(ByteBuf src, int length)
Description copied from class:ByteBuf
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=length
). This method is basically same withByteBuf.writeBytes(ByteBuf, int, int)
, except that this method increases thereaderIndex
of the source buffer by the number of the transferred bytes (=length
) whileByteBuf.writeBytes(ByteBuf, int, int)
does not. Ifthis.writableBytes
is less thanlength
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.- Specified by:
writeBytes
in classByteBuf
length
- the number of bytes to transfer
-
writeBytes
public ByteBuf writeBytes(ByteBuf src, int srcIndex, int length)
Description copied from class:ByteBuf
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=length
). Ifthis.writableBytes
is less thanlength
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.- Specified by:
writeBytes
in classByteBuf
srcIndex
- the first index of the sourcelength
- the number of bytes to transfer
-
writeBytes
public ByteBuf writeBytes(java.nio.ByteBuffer src)
Description copied from class:ByteBuf
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
until the source buffer's position reaches its limit, and increases thewriterIndex
by the number of the transferred bytes. Ifthis.writableBytes
is less thansrc.remaining()
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.- Specified by:
writeBytes
in classByteBuf
-
writeBytes
public int writeBytes(java.io.InputStream in, int length) throws java.io.IOException
Description copied from class:ByteBuf
Transfers the content of the specified stream to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes. Ifthis.writableBytes
is less thanlength
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.- Specified by:
writeBytes
in classByteBuf
length
- the number of bytes to transfer- Returns:
- the actual number of bytes read in from the specified channel.
-1
if the specifiedInputStream
reached EOF. - Throws:
java.io.IOException
- if the specified stream threw an exception during I/O
-
writeBytes
public int writeBytes(java.nio.channels.ScatteringByteChannel in, int length) throws java.io.IOException
Description copied from class:ByteBuf
Transfers the content of the specified channel to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes. Ifthis.writableBytes
is less thanlength
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.- Specified by:
writeBytes
in classByteBuf
length
- the maximum number of bytes to transfer- Returns:
- the actual number of bytes read in from the specified channel.
-1
if the specified channel is closed or it reached EOF. - Throws:
java.io.IOException
- if the specified channel threw an exception during I/O
-
writeBytes
public int writeBytes(java.nio.channels.FileChannel in, long position, int length) throws java.io.IOException
Description copied from class:ByteBuf
Transfers the content of the specified channel starting at the given file position to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes. This method does not modify the channel's position. Ifthis.writableBytes
is less thanlength
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.- Specified by:
writeBytes
in classByteBuf
position
- the file position at which the transfer is to beginlength
- the maximum number of bytes to transfer- Returns:
- the actual number of bytes read in from the specified channel.
-1
if the specified channel is closed or it reached EOF. - Throws:
java.io.IOException
- if the specified channel threw an exception during I/O
-
writeZero
public ByteBuf writeZero(int length)
Description copied from class:ByteBuf
Fills this buffer with NUL (0x00) starting at the currentwriterIndex
and increases thewriterIndex
by the specifiedlength
. Ifthis.writableBytes
is less thanlength
,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.
-
writeCharSequence
public int writeCharSequence(java.lang.CharSequence sequence, java.nio.charset.Charset charset)
Description copied from class:ByteBuf
Writes the specifiedCharSequence
at the currentwriterIndex
and increases thewriterIndex
by the written bytes. in this buffer. Ifthis.writableBytes
is not large enough to write the whole sequence,ByteBuf.ensureWritable(int)
will be called in an attempt to expand capacity to accommodate.- Specified by:
writeCharSequence
in classByteBuf
- Parameters:
sequence
- to writecharset
- that should be used- Returns:
- the written number of bytes
-
copy
public ByteBuf copy()
Description copied from class:ByteBuf
Returns a copy of this buffer's readable bytes. Modifying the content of the returned buffer or this buffer does not affect each other at all. This method is identical tobuf.copy(buf.readerIndex(), buf.readableBytes())
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
duplicate
public ByteBuf duplicate()
Description copied from class:ByteBuf
Returns a buffer which shares the whole region of this buffer. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks. This method does not modifyreaderIndex
orwriterIndex
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.- Specified by:
duplicate
in classByteBuf
- Returns:
- A buffer whose readable content is equivalent to the buffer returned by
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.
-
retainedDuplicate
public ByteBuf retainedDuplicate()
Description copied from class:ByteBuf
Returns a retained buffer which shares the whole region of this buffer. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks. This method is identical tobuf.slice(0, buf.capacity())
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.Note that this method returns a retained buffer unlike
ByteBuf.slice(int, int)
. This method behaves similarly toduplicate().retain()
except that this method may return a buffer implementation that produces less garbage.- Specified by:
retainedDuplicate
in classByteBuf
-
slice
public ByteBuf slice()
Description copied from class:ByteBuf
Returns a slice of this buffer's readable bytes. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks. This method is identical tobuf.slice(buf.readerIndex(), buf.readableBytes())
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.Also be aware that this method will NOT call
ByteBuf.retain()
and so the reference count will NOT be increased.
-
retainedSlice
public ByteBuf retainedSlice()
Description copied from class:ByteBuf
Returns a retained slice of this buffer's readable bytes. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks. This method is identical tobuf.slice(buf.readerIndex(), buf.readableBytes())
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.Note that this method returns a retained buffer unlike
ByteBuf.slice()
. This method behaves similarly toslice().retain()
except that this method may return a buffer implementation that produces less garbage.- Specified by:
retainedSlice
in classByteBuf
-
slice
public ByteBuf slice(int index, int length)
Description copied from class:ByteBuf
Returns a slice of this buffer's sub-region. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks. This method does not modifyreaderIndex
orwriterIndex
of this buffer.Also be aware that this method will NOT call
ByteBuf.retain()
and so the reference count will NOT be increased.
-
retainedSlice
public ByteBuf retainedSlice(int index, int length)
Description copied from class:ByteBuf
Returns a retained slice of this buffer's sub-region. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks. This method does not modifyreaderIndex
orwriterIndex
of this buffer.Note that this method returns a retained buffer unlike
ByteBuf.slice(int, int)
. This method behaves similarly toslice(...).retain()
except that this method may return a buffer implementation that produces less garbage.- Specified by:
retainedSlice
in classByteBuf
-
nioBuffer
public java.nio.ByteBuffer nioBuffer()
Description copied from class:ByteBuf
Exposes this buffer's readable bytes as an NIOByteBuffer
. 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 tobuf.nioBuffer(buf.readerIndex(), buf.readableBytes())
. This method does not modifyreaderIndex
orwriterIndex
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.- Specified by:
nioBuffer
in classByteBuf
- See Also:
ByteBuf.nioBufferCount()
,ByteBuf.nioBuffers()
,ByteBuf.nioBuffers(int, int)
-
nioBuffers
public java.nio.ByteBuffer[] nioBuffers()
Description copied from class:ByteBuf
Exposes this buffer's readable bytes as an NIOByteBuffer
'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 modifyreaderIndex
orwriterIndex
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.- Specified by:
nioBuffers
in classByteBuf
- See Also:
ByteBuf.nioBufferCount()
,ByteBuf.nioBuffer()
,ByteBuf.nioBuffer(int, int)
-
toString
public java.lang.String toString(java.nio.charset.Charset charset)
Description copied from class:ByteBuf
Decodes this buffer's readable bytes into a string with the specified character set name. This method is identical tobuf.toString(buf.readerIndex(), buf.readableBytes(), charsetName)
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
toString
public java.lang.String toString(int index, int length, java.nio.charset.Charset charset)
Description copied from class:ByteBuf
Decodes this buffer's sub-region into a string with the specified character set. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
indexOf
public int indexOf(int fromIndex, int toIndex, byte value)
Description copied from class:ByteBuf
Locates the first occurrence of the specifiedvalue
in this buffer. The search takes place from the specifiedfromIndex
(inclusive) to the specifiedtoIndex
(exclusive).If
fromIndex
is greater thantoIndex
, the search is performed in a reversed order fromfromIndex
(exclusive) down totoIndex
(inclusive).Note that the lower index is always included and higher always excluded.
This method does not modify
readerIndex
orwriterIndex
of this buffer.
-
bytesBefore
public int bytesBefore(byte value)
Description copied from class:ByteBuf
Locates the first occurrence of the specifiedvalue
in this buffer. The search takes place from the currentreaderIndex
(inclusive) to the currentwriterIndex
(exclusive).This method does not modify
readerIndex
orwriterIndex
of this buffer.- Specified by:
bytesBefore
in classByteBuf
- Returns:
- the number of bytes between the current
readerIndex
and the first occurrence if found.-1
otherwise.
-
bytesBefore
public int bytesBefore(int length, byte value)
Description copied from class:ByteBuf
Locates the first occurrence of the specifiedvalue
in this buffer. The search starts from the currentreaderIndex
(inclusive) and lasts for the specifiedlength
.This method does not modify
readerIndex
orwriterIndex
of this buffer.- Specified by:
bytesBefore
in classByteBuf
- Returns:
- the number of bytes between the current
readerIndex
and the first occurrence if found.-1
otherwise.
-
bytesBefore
public int bytesBefore(int index, int length, byte value)
Description copied from class:ByteBuf
Locates the first occurrence of the specifiedvalue
in this buffer. The search starts from the specifiedindex
(inclusive) and lasts for the specifiedlength
.This method does not modify
readerIndex
orwriterIndex
of this buffer.- Specified by:
bytesBefore
in classByteBuf
- Returns:
- the number of bytes between the specified
index
and the first occurrence if found.-1
otherwise.
-
forEachByte
public int forEachByte(ByteProcessor processor)
Description copied from class:ByteBuf
Iterates over the readable bytes of this buffer with the specifiedprocessor
in ascending order.- Specified by:
forEachByte
in classByteBuf
- Returns:
-1
if the processor iterated to or beyond the end of the readable bytes. The last-visited index If theByteProcessor.process(byte)
returnedfalse
.
-
forEachByte
public int forEachByte(int index, int length, ByteProcessor processor)
Description copied from class:ByteBuf
Iterates over the specified area of this buffer with the specifiedprocessor
in ascending order. (i.e.index
,(index + 1)
, ..(index + length - 1)
)- Specified by:
forEachByte
in classByteBuf
- Returns:
-1
if the processor iterated to or beyond the end of the specified area. The last-visited index If theByteProcessor.process(byte)
returnedfalse
.
-
forEachByteDesc
public int forEachByteDesc(ByteProcessor processor)
Description copied from class:ByteBuf
Iterates over the readable bytes of this buffer with the specifiedprocessor
in descending order.- Specified by:
forEachByteDesc
in classByteBuf
- Returns:
-1
if the processor iterated to or beyond the beginning of the readable bytes. The last-visited index If theByteProcessor.process(byte)
returnedfalse
.
-
forEachByteDesc
public int forEachByteDesc(int index, int length, ByteProcessor processor)
Description copied from class:ByteBuf
Iterates over the specified area of this buffer with the specifiedprocessor
in descending order. (i.e.(index + length - 1)
,(index + length - 2)
, ...index
)- Specified by:
forEachByteDesc
in classByteBuf
- Returns:
-1
if the processor iterated to or beyond the beginning of the specified area. The last-visited index If theByteProcessor.process(byte)
returnedfalse
.
-
hashCode
public int hashCode()
Description copied from class:ByteBuf
Returns a hash code which was calculated from the content of this buffer. If there's a byte array which is equal to this array, both arrays should return the same value.
-
equals
public boolean equals(java.lang.Object o)
Description copied from class:ByteBuf
Determines if the content of the specified buffer is identical to the content of this array. 'Identical' here means:- the size of the contents of the two buffers are same and
- every single byte of the content of the two buffers are same.
ByteBuf.readerIndex()
norByteBuf.writerIndex()
. This method also returnsfalse
fornull
and an object which is not an instance ofByteBuf
type.
-
compareTo
public int compareTo(ByteBuf that)
Description copied from class:ByteBuf
Compares the content of the specified buffer to the content of this buffer. Comparison is performed in the same manner with the string comparison functions of various languages such asstrcmp
,memcmp
andString.compareTo(String)
.
-
toString
public java.lang.String toString()
Description copied from class:ByteBuf
Returns the string representation of this buffer. This method does not necessarily return the whole content of the buffer but returns the values of the key properties such asByteBuf.readerIndex()
,ByteBuf.writerIndex()
andByteBuf.capacity()
.
-
checkIndex
protected final void checkIndex(int index)
-
checkIndex
protected final void checkIndex(int index, int fieldLength)
-
checkSrcIndex
protected final void checkSrcIndex(int index, int length, int srcIndex, int srcCapacity)
-
checkDstIndex
protected final void checkDstIndex(int index, int length, int dstIndex, int dstCapacity)
-
checkDstIndex
protected final void checkDstIndex(int length, int dstIndex, int dstCapacity)
-
checkReadableBytes
protected final void checkReadableBytes(int minimumReadableBytes)
Throws anIndexOutOfBoundsException
if the current readable bytes of this buffer is less than the specified value.
-
checkNewCapacity
protected final void checkNewCapacity(int newCapacity)
-
ensureAccessible
protected final void ensureAccessible()
Should be called by every method that tries to access the buffers content to check if the buffer was released before.
-
-