Class ByteBuf
- java.lang.Object
-
- io.netty.buffer.ByteBuf
-
- All Implemented Interfaces:
ByteBufConvertible,ReferenceCounted,java.lang.Comparable<ByteBuf>
- Direct Known Subclasses:
AbstractByteBuf,EmptyByteBuf,SwappedByteBuf,WrappedByteBuf
public abstract class ByteBuf extends java.lang.Object implements ReferenceCounted, java.lang.Comparable<ByteBuf>, ByteBufConvertible
A random and sequential accessible sequence of zero or more bytes (octets). This interface provides an abstract view for one or more primitive byte arrays (byte[]) and NIO buffers.Creation of a buffer
It is recommended to create a new buffer using the helper methods inUnpooledrather than calling an individual implementation's constructor.Random Access Indexing
Just like an ordinary primitive byte array,ByteBufuses zero-based indexing. It means the index of the first byte is always0and the index of the last byte is alwayscapacity - 1. For example, to iterate all bytes of a buffer, you can do the following, regardless of its internal implementation:ByteBufbuffer = ...; for (int i = 0; i < buffer.capacity(); i ++) { byte b = buffer.getByte(i); System.out.println((char) b); }Sequential Access Indexing
ByteBufprovides two pointer variables to support sequential read and write operations -readerIndexfor a read operation andwriterIndexfor a write operation respectively. The following diagram shows how a buffer is segmented into three areas by the two pointers:+-------------------+------------------+------------------+ | discardable bytes | readable bytes | writable bytes | | | (CONTENT) | | +-------------------+------------------+------------------+ | | | | 0 <= readerIndex <= writerIndex <= capacityReadable bytes (the actual content)
This segment is where the actual data is stored. Any operation whose name starts withreadorskipwill get or skip the data at the currentreaderIndexand increase it by the number of read bytes. If the argument of the read operation is also aByteBufand no destination index is specified, the specified buffer'swriterIndexis increased together.If there's not enough content left,
IndexOutOfBoundsExceptionis raised. The default value of newly allocated, wrapped or copied buffer'sreaderIndexis0.// Iterates the readable bytes of a buffer.
ByteBufbuffer = ...; while (buffer.isReadable()) { System.out.println(buffer.readByte()); }Writable bytes
This segment is an undefined space which needs to be filled. Any operation whose name starts withwritewill write the data at the currentwriterIndexand increase it by the number of written bytes. If the argument of the write operation is also aByteBuf, and no source index is specified, the specified buffer'sreaderIndexis increased together.If there's not enough writable bytes left,
IndexOutOfBoundsExceptionis raised. The default value of newly allocated buffer'swriterIndexis0. The default value of wrapped or copied buffer'swriterIndexis thecapacityof the buffer.// Fills the writable bytes of a buffer with random integers.
ByteBufbuffer = ...; while (buffer.maxWritableBytes() >= 4) { buffer.writeInt(random.nextInt()); }Discardable bytes
This segment contains the bytes which were read already by a read operation. Initially, the size of this segment is0, but its size increases up to thewriterIndexas read operations are executed. The read bytes can be discarded by callingdiscardReadBytes()to reclaim unused area as depicted by the following diagram:BEFORE discardReadBytes() +-------------------+------------------+------------------+ | discardable bytes | readable bytes | writable bytes | +-------------------+------------------+------------------+ | | | | 0 <= readerIndex <= writerIndex <= capacity AFTER discardReadBytes() +------------------+--------------------------------------+ | readable bytes | writable bytes (got more space) | +------------------+--------------------------------------+ | | | readerIndex (0) <= writerIndex (decreased) <= capacityPlease note that there is no guarantee about the content of writable bytes after callingdiscardReadBytes(). The writable bytes will not be moved in most cases and could even be filled with completely different data depending on the underlying buffer implementation.Clearing the buffer indexes
You can set bothreaderIndexandwriterIndexto0by callingclear(). It does not clear the buffer content (e.g. filling with0) but just clears the two pointers. Please also note that the semantic of this operation is different fromByteBuffer.clear().BEFORE clear() +-------------------+------------------+------------------+ | discardable bytes | readable bytes | writable bytes | +-------------------+------------------+------------------+ | | | | 0 <= readerIndex <= writerIndex <= capacity AFTER clear() +---------------------------------------------------------+ | writable bytes (got more space) | +---------------------------------------------------------+ | | 0 = readerIndex = writerIndex <= capacitySearch operations
For simple single-byte searches, useindexOf(int, int, byte)andbytesBefore(int, int, byte).bytesBefore(byte)is especially useful when you deal with aNUL-terminated string. For complicated searches, useforEachByte(int, int, ByteProcessor)with aByteProcessorimplementation.Mark and reset
There are two marker indexes in every buffer. One is for storingreaderIndexand the other is for storingwriterIndex. You can always reposition one of the two indexes by calling a reset method. It works in a similar fashion to the mark and reset methods inInputStreamexcept that there's noreadlimit.Derived buffers
You can create a view of an existing buffer by calling one of the following methods:duplicate()slice()slice(int, int)readSlice(int)retainedDuplicate()retainedSlice()retainedSlice(int, int)readRetainedSlice(int)
readerIndex,writerIndexand marker indexes, while it shares other internal data representation, just like a NIO buffer does.In case a completely fresh copy of an existing buffer is required, please call
copy()method instead.Non-retained and retained derived buffers
Note that theduplicate(),slice(),slice(int, int)andreadSlice(int)does NOT callretain()on the returned derived buffer, and thus its reference count will NOT be increased. If you need to create a derived buffer with increased reference count, consider usingretainedDuplicate(),retainedSlice(),retainedSlice(int, int)andreadRetainedSlice(int)which may return a buffer implementation that produces less garbage.Conversion to existing JDK types
Byte array
If aByteBufis backed by a byte array (i.e.byte[]), you can access it directly via thearray()method. To determine if a buffer is backed by a byte array,hasArray()should be used.NIO Buffers
If aByteBufcan be converted into an NIOByteBufferwhich shares its content (i.e. view buffer), you can get it via thenioBuffer()method. To determine if a buffer can be converted into an NIO buffer, usenioBufferCount().Strings
VarioustoString(Charset)methods convert aByteBufinto aString. Please note thattoString()is not a conversion method.I/O Streams
Please refer toByteBufInputStreamandByteBufOutputStream.
-
-
Constructor Summary
Constructors Constructor Description ByteBuf()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description abstract ByteBufAllocatoralloc()Returns theByteBufAllocatorwhich created this buffer.abstract byte[]array()Returns the backing byte array of this buffer.abstract intarrayOffset()Returns the offset of the first byte within the backing byte array of this buffer.ByteBufasByteBuf()AByteBufcan turn into itself.abstract ByteBufasReadOnly()Returns a read-only version of this buffer.abstract intbytesBefore(byte value)Locates the first occurrence of the specifiedvaluein this buffer.abstract intbytesBefore(int length, byte value)Locates the first occurrence of the specifiedvaluein this buffer.abstract intbytesBefore(int index, int length, byte value)Locates the first occurrence of the specifiedvaluein this buffer.abstract intcapacity()Returns the number of bytes (octets) this buffer can contain.abstract ByteBufcapacity(int newCapacity)Adjusts the capacity of this buffer.abstract ByteBufclear()Sets thereaderIndexandwriterIndexof this buffer to0.abstract intcompareTo(ByteBuf buffer)Compares the content of the specified buffer to the content of this buffer.abstract ByteBufcopy()Returns a copy of this buffer's readable bytes.abstract ByteBufcopy(int index, int length)Returns a copy of this buffer's sub-region.abstract ByteBufdiscardReadBytes()Discards the bytes between the 0th index andreaderIndex.abstract ByteBufdiscardSomeReadBytes()Similar todiscardReadBytes()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.abstract ByteBufduplicate()Returns a buffer which shares the whole region of this buffer.abstract ByteBufensureWritable(int minWritableBytes)Expands the buffercapacity()to make sure the number of writable bytes is equal to or greater than the specified value.abstract intensureWritable(int minWritableBytes, boolean force)Expands the buffercapacity()to make sure the number of writable bytes is equal to or greater than the specified value.abstract booleanequals(java.lang.Object obj)Determines if the content of the specified buffer is identical to the content of this array.abstract intforEachByte(int index, int length, ByteProcessor processor)Iterates over the specified area of this buffer with the specifiedprocessorin ascending order.abstract intforEachByte(ByteProcessor processor)Iterates over the readable bytes of this buffer with the specifiedprocessorin ascending order.abstract intforEachByteDesc(int index, int length, ByteProcessor processor)Iterates over the specified area of this buffer with the specifiedprocessorin descending order.abstract intforEachByteDesc(ByteProcessor processor)Iterates over the readable bytes of this buffer with the specifiedprocessorin descending order.abstract booleangetBoolean(int index)Gets a boolean at the specified absolute (@code index) in this buffer.abstract bytegetByte(int index)Gets a byte at the specified absoluteindexin this buffer.abstract ByteBufgetBytes(int index, byte[] dst)Transfers this buffer's data to the specified destination starting at the specified absoluteindex.abstract ByteBufgetBytes(int index, byte[] dst, int dstIndex, int length)Transfers this buffer's data to the specified destination starting at the specified absoluteindex.abstract ByteBufgetBytes(int index, ByteBuf dst)Transfers this buffer's data to the specified destination starting at the specified absoluteindexuntil the destination becomes non-writable.abstract ByteBufgetBytes(int index, ByteBuf dst, int length)Transfers this buffer's data to the specified destination starting at the specified absoluteindex.abstract ByteBufgetBytes(int index, ByteBuf dst, int dstIndex, int length)Transfers this buffer's data to the specified destination starting at the specified absoluteindex.abstract ByteBufgetBytes(int index, java.io.OutputStream out, int length)Transfers this buffer's data to the specified stream starting at the specified absoluteindex.abstract ByteBufgetBytes(int index, java.nio.ByteBuffer dst)Transfers this buffer's data to the specified destination starting at the specified absoluteindexuntil the destination's position reaches its limit.abstract intgetBytes(int index, java.nio.channels.FileChannel out, long position, int length)Transfers this buffer's data starting at the specified absoluteindexto the specified channel starting at the given file position.abstract intgetBytes(int index, java.nio.channels.GatheringByteChannel out, int length)Transfers this buffer's data to the specified channel starting at the specified absoluteindex.abstract chargetChar(int index)Gets a 2-byte UTF-16 character at the specified absoluteindexin this buffer.abstract java.lang.CharSequencegetCharSequence(int index, int length, java.nio.charset.Charset charset)Gets aCharSequencewith the given length at the given index.abstract doublegetDouble(int index)Gets a 64-bit floating point number at the specified absoluteindexin this buffer.doublegetDoubleLE(int index)Gets a 64-bit floating point number at the specified absoluteindexin this buffer in Little Endian Byte Order.abstract floatgetFloat(int index)Gets a 32-bit floating point number at the specified absoluteindexin this buffer.floatgetFloatLE(int index)Gets a 32-bit floating point number at the specified absoluteindexin this buffer in Little Endian Byte Order.abstract intgetInt(int index)Gets a 32-bit integer at the specified absoluteindexin this buffer.abstract intgetIntLE(int index)Gets a 32-bit integer at the specified absoluteindexin this buffer with Little Endian Byte Order.abstract longgetLong(int index)Gets a 64-bit long integer at the specified absoluteindexin this buffer.abstract longgetLongLE(int index)Gets a 64-bit long integer at the specified absoluteindexin this buffer in Little Endian Byte Order.abstract intgetMedium(int index)Gets a 24-bit medium integer at the specified absoluteindexin this buffer.abstract intgetMediumLE(int index)Gets a 24-bit medium integer at the specified absoluteindexin this buffer in the Little Endian Byte Order.abstract shortgetShort(int index)Gets a 16-bit short integer at the specified absoluteindexin this buffer.abstract shortgetShortLE(int index)Gets a 16-bit short integer at the specified absoluteindexin this buffer in Little Endian Byte Order.abstract shortgetUnsignedByte(int index)Gets an unsigned byte at the specified absoluteindexin this buffer.abstract longgetUnsignedInt(int index)Gets an unsigned 32-bit integer at the specified absoluteindexin this buffer.abstract longgetUnsignedIntLE(int index)Gets an unsigned 32-bit integer at the specified absoluteindexin this buffer in Little Endian Byte Order.abstract intgetUnsignedMedium(int index)Gets an unsigned 24-bit medium integer at the specified absoluteindexin this buffer.abstract intgetUnsignedMediumLE(int index)Gets an unsigned 24-bit medium integer at the specified absoluteindexin this buffer in Little Endian Byte Order.abstract intgetUnsignedShort(int index)Gets an unsigned 16-bit short integer at the specified absoluteindexin this buffer.abstract intgetUnsignedShortLE(int index)Gets an unsigned 16-bit short integer at the specified absoluteindexin this buffer in Little Endian Byte Order.abstract booleanhasArray()Returnstrueif and only if this buffer has a backing byte array.abstract inthashCode()Returns a hash code which was calculated from the content of this buffer.abstract booleanhasMemoryAddress()Returnstrueif and only if this buffer has a reference to the low-level memory address that points to the backing data.abstract intindexOf(int fromIndex, int toIndex, byte value)Locates the first occurrence of the specifiedvaluein this buffer.abstract java.nio.ByteBufferinternalNioBuffer(int index, int length)Internal use only: Exposes the internal NIO buffer.booleanisContiguous()Returnstrueif thisByteBufimplementation is backed by a single memory region.abstract booleanisDirect()Returnstrueif and only if this buffer is backed by an NIO direct buffer.abstract booleanisReadable()Returnstrueif and only if(this.writerIndex - this.readerIndex)is greater than0.abstract booleanisReadable(int size)Returnstrueif and only if this buffer contains equal to or more than the specified number of elements.abstract booleanisReadOnly()Returnstrueif and only if this buffer is read-only.abstract booleanisWritable()Returnstrueif and only if(this.capacity - this.writerIndex)is greater than0.abstract booleanisWritable(int size)Returnstrueif and only if this buffer has enough room to allow writing the specified number of elements.abstract ByteBufmarkReaderIndex()Marks the currentreaderIndexin this buffer.abstract ByteBufmarkWriterIndex()Marks the currentwriterIndexin this buffer.abstract intmaxCapacity()Returns the maximum allowed capacity of this buffer.intmaxFastWritableBytes()Returns the maximum number of bytes which can be written for certain without involving an internal reallocation or data-copy.abstract intmaxWritableBytes()Returns the maximum possible number of writable bytes, which is equal to(this.maxCapacity - this.writerIndex).abstract longmemoryAddress()Returns the low-level memory address that point to the first byte of ths backing data.abstract java.nio.ByteBuffernioBuffer()Exposes this buffer's readable bytes as an NIOByteBuffer.abstract java.nio.ByteBuffernioBuffer(int index, int length)Exposes this buffer's sub-region as an NIOByteBuffer.abstract intnioBufferCount()Returns the maximum number of NIOByteBuffers that consist this buffer.abstract java.nio.ByteBuffer[]nioBuffers()Exposes this buffer's readable bytes as an NIOByteBuffer's.abstract java.nio.ByteBuffer[]nioBuffers(int index, int length)Exposes this buffer's bytes as an NIOByteBuffer's for the specified index and length The returned buffer either share or contains the copied content of this buffer, while changing the position and limit of the returned NIO buffer does not affect the indexes and marks of this buffer.abstract java.nio.ByteOrderorder()Deprecated.use the Little Endian accessors, e.g.abstract ByteBuforder(java.nio.ByteOrder endianness)Deprecated.use the Little Endian accessors, e.g.abstract intreadableBytes()Returns the number of readable bytes which is equal to(this.writerIndex - this.readerIndex).abstract booleanreadBoolean()Gets a boolean at the currentreaderIndexand increases thereaderIndexby1in this buffer.abstract bytereadByte()Gets a byte at the currentreaderIndexand increases thereaderIndexby1in this buffer.abstract ByteBufreadBytes(byte[] dst)Transfers this buffer's data to the specified destination starting at the currentreaderIndexand increases thereaderIndexby the number of the transferred bytes (=dst.length).abstract ByteBufreadBytes(byte[] dst, int dstIndex, int length)Transfers this buffer's data to the specified destination starting at the currentreaderIndexand increases thereaderIndexby the number of the transferred bytes (=length).abstract ByteBufreadBytes(int length)Transfers this buffer's data to a newly created buffer starting at the currentreaderIndexand increases thereaderIndexby the number of the transferred bytes (=length).abstract ByteBufreadBytes(ByteBuf dst)Transfers this buffer's data to the specified destination starting at the currentreaderIndexuntil the destination becomes non-writable, and increases thereaderIndexby the number of the transferred bytes.abstract ByteBufreadBytes(ByteBuf dst, int length)Transfers this buffer's data to the specified destination starting at the currentreaderIndexand increases thereaderIndexby the number of the transferred bytes (=length).abstract ByteBufreadBytes(ByteBuf dst, int dstIndex, int length)Transfers this buffer's data to the specified destination starting at the currentreaderIndexand increases thereaderIndexby the number of the transferred bytes (=length).abstract ByteBufreadBytes(java.io.OutputStream out, int length)Transfers this buffer's data to the specified stream starting at the currentreaderIndex.abstract ByteBufreadBytes(java.nio.ByteBuffer dst)Transfers this buffer's data to the specified destination starting at the currentreaderIndexuntil the destination's position reaches its limit, and increases thereaderIndexby the number of the transferred bytes.abstract intreadBytes(java.nio.channels.FileChannel out, long position, int length)Transfers this buffer's data starting at the currentreaderIndexto the specified channel starting at the given file position.abstract intreadBytes(java.nio.channels.GatheringByteChannel out, int length)Transfers this buffer's data to the specified stream starting at the currentreaderIndex.abstract charreadChar()Gets a 2-byte UTF-16 character at the currentreaderIndexand increases thereaderIndexby2in this buffer.abstract java.lang.CharSequencereadCharSequence(int length, java.nio.charset.Charset charset)Gets aCharSequencewith the given length at the currentreaderIndexand increases thereaderIndexby the given length.abstract doublereadDouble()Gets a 64-bit floating point number at the currentreaderIndexand increases thereaderIndexby8in this buffer.doublereadDoubleLE()Gets a 64-bit floating point number at the currentreaderIndexin Little Endian Byte Order and increases thereaderIndexby8in this buffer.abstract intreaderIndex()Returns thereaderIndexof this buffer.abstract ByteBufreaderIndex(int readerIndex)Sets thereaderIndexof this buffer.abstract floatreadFloat()Gets a 32-bit floating point number at the currentreaderIndexand increases thereaderIndexby4in this buffer.floatreadFloatLE()Gets a 32-bit floating point number at the currentreaderIndexin Little Endian Byte Order and increases thereaderIndexby4in this buffer.abstract intreadInt()Gets a 32-bit integer at the currentreaderIndexand increases thereaderIndexby4in this buffer.abstract intreadIntLE()Gets a 32-bit integer at the currentreaderIndexin the Little Endian Byte Order and increases thereaderIndexby4in this buffer.abstract longreadLong()Gets a 64-bit integer at the currentreaderIndexand increases thereaderIndexby8in this buffer.abstract longreadLongLE()Gets a 64-bit integer at the currentreaderIndexin the Little Endian Byte Order and increases thereaderIndexby8in this buffer.abstract intreadMedium()Gets a 24-bit medium integer at the currentreaderIndexand increases thereaderIndexby3in this buffer.abstract intreadMediumLE()Gets a 24-bit medium integer at the currentreaderIndexin the Little Endian Byte Order and increases thereaderIndexby3in this buffer.abstract ByteBufreadRetainedSlice(int length)Returns a new retained slice of this buffer's sub-region starting at the currentreaderIndexand increases thereaderIndexby the size of the new slice (=length).abstract shortreadShort()Gets a 16-bit short integer at the currentreaderIndexand increases thereaderIndexby2in this buffer.abstract shortreadShortLE()Gets a 16-bit short integer at the currentreaderIndexin the Little Endian Byte Order and increases thereaderIndexby2in this buffer.abstract ByteBufreadSlice(int length)Returns a new slice of this buffer's sub-region starting at the currentreaderIndexand increases thereaderIndexby the size of the new slice (=length).java.lang.StringreadString(int length, java.nio.charset.Charset charset)Gets aStringwith the given length at the currentreaderIndexand increases thereaderIndexby the given length.abstract shortreadUnsignedByte()Gets an unsigned byte at the currentreaderIndexand increases thereaderIndexby1in this buffer.abstract longreadUnsignedInt()Gets an unsigned 32-bit integer at the currentreaderIndexand increases thereaderIndexby4in this buffer.abstract longreadUnsignedIntLE()Gets an unsigned 32-bit integer at the currentreaderIndexin the Little Endian Byte Order and increases thereaderIndexby4in this buffer.abstract intreadUnsignedMedium()Gets an unsigned 24-bit medium integer at the currentreaderIndexand increases thereaderIndexby3in this buffer.abstract intreadUnsignedMediumLE()Gets an unsigned 24-bit medium integer at the currentreaderIndexin the Little Endian Byte Order and increases thereaderIndexby3in this buffer.abstract intreadUnsignedShort()Gets an unsigned 16-bit short integer at the currentreaderIndexand increases thereaderIndexby2in this buffer.abstract intreadUnsignedShortLE()Gets an unsigned 16-bit short integer at the currentreaderIndexin the Little Endian Byte Order and increases thereaderIndexby2in this buffer.abstract ByteBufresetReaderIndex()Repositions the currentreaderIndexto the markedreaderIndexin this buffer.abstract ByteBufresetWriterIndex()Repositions the currentwriterIndexto the markedwriterIndexin this buffer.abstract ByteBufretain()Increases the reference count by1.abstract ByteBufretain(int increment)Increases the reference count by the specifiedincrement.abstract ByteBufretainedDuplicate()Returns a retained buffer which shares the whole region of this buffer.abstract ByteBufretainedSlice()Returns a retained slice of this buffer's readable bytes.abstract ByteBufretainedSlice(int index, int length)Returns a retained slice of this buffer's sub-region.abstract ByteBufsetBoolean(int index, boolean value)Sets the specified boolean at the specified absoluteindexin this buffer.abstract ByteBufsetByte(int index, int value)Sets the specified byte at the specified absoluteindexin this buffer.abstract ByteBufsetBytes(int index, byte[] src)Transfers the specified source array's data to this buffer starting at the specified absoluteindex.abstract ByteBufsetBytes(int index, byte[] src, int srcIndex, int length)Transfers the specified source array's data to this buffer starting at the specified absoluteindex.abstract ByteBufsetBytes(int index, ByteBuf src)Transfers the specified source buffer's data to this buffer starting at the specified absoluteindexuntil the source buffer becomes unreadable.abstract ByteBufsetBytes(int index, ByteBuf src, int length)Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex.abstract ByteBufsetBytes(int index, ByteBuf src, int srcIndex, int length)Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex.abstract intsetBytes(int index, java.io.InputStream in, int length)Transfers the content of the specified source stream to this buffer starting at the specified absoluteindex.abstract ByteBufsetBytes(int index, java.nio.ByteBuffer src)Transfers the specified source buffer's data to this buffer starting at the specified absoluteindexuntil the source buffer's position reaches its limit.abstract intsetBytes(int index, java.nio.channels.FileChannel in, long position, int length)Transfers the content of the specified source channel starting at the given file position to this buffer starting at the specified absoluteindex.abstract intsetBytes(int index, java.nio.channels.ScatteringByteChannel in, int length)Transfers the content of the specified source channel to this buffer starting at the specified absoluteindex.abstract ByteBufsetChar(int index, int value)Sets the specified 2-byte UTF-16 character at the specified absoluteindexin this buffer.abstract intsetCharSequence(int index, java.lang.CharSequence sequence, java.nio.charset.Charset charset)Writes the specifiedCharSequenceat the givenindex.abstract ByteBufsetDouble(int index, double value)Sets the specified 64-bit floating-point number at the specified absoluteindexin this buffer.ByteBufsetDoubleLE(int index, double value)Sets the specified 64-bit floating-point number at the specified absoluteindexin this buffer in Little Endian Byte Order.abstract ByteBufsetFloat(int index, float value)Sets the specified 32-bit floating-point number at the specified absoluteindexin this buffer.ByteBufsetFloatLE(int index, float value)Sets the specified 32-bit floating-point number at the specified absoluteindexin this buffer in Little Endian Byte Order.abstract ByteBufsetIndex(int readerIndex, int writerIndex)Sets thereaderIndexandwriterIndexof this buffer in one shot.abstract ByteBufsetInt(int index, int value)Sets the specified 32-bit integer at the specified absoluteindexin this buffer.abstract ByteBufsetIntLE(int index, int value)Sets the specified 32-bit integer at the specified absoluteindexin this buffer with Little Endian byte order .abstract ByteBufsetLong(int index, long value)Sets the specified 64-bit long integer at the specified absoluteindexin this buffer.abstract ByteBufsetLongLE(int index, long value)Sets the specified 64-bit long integer at the specified absoluteindexin this buffer in Little Endian Byte Order.abstract ByteBufsetMedium(int index, int value)Sets the specified 24-bit medium integer at the specified absoluteindexin this buffer.abstract ByteBufsetMediumLE(int index, int value)Sets the specified 24-bit medium integer at the specified absoluteindexin this buffer in the Little Endian Byte Order.abstract ByteBufsetShort(int index, int value)Sets the specified 16-bit short integer at the specified absoluteindexin this buffer.abstract ByteBufsetShortLE(int index, int value)Sets the specified 16-bit short integer at the specified absoluteindexin this buffer with the Little Endian Byte Order.abstract ByteBufsetZero(int index, int length)Fills this buffer with NUL (0x00) starting at the specified absoluteindex.abstract ByteBufskipBytes(int length)Increases the currentreaderIndexby the specifiedlengthin this buffer.abstract ByteBufslice()Returns a slice of this buffer's readable bytes.abstract ByteBufslice(int index, int length)Returns a slice of this buffer's sub-region.abstract java.lang.StringtoString()Returns the string representation of this buffer.abstract java.lang.StringtoString(int index, int length, java.nio.charset.Charset charset)Decodes this buffer's sub-region into a string with the specified character set.abstract java.lang.StringtoString(java.nio.charset.Charset charset)Decodes this buffer's readable bytes into a string with the specified character set name.abstract ByteBuftouch()Records the current access location of this object for debugging purposes.abstract ByteBuftouch(java.lang.Object hint)Records the current access location of this object with an additional arbitrary information for debugging purposes.abstract ByteBufunwrap()Return the underlying buffer instance if this buffer is a wrapper of another buffer.abstract intwritableBytes()Returns the number of writable bytes which is equal to(this.capacity - this.writerIndex).abstract ByteBufwriteBoolean(boolean value)Sets the specified boolean at the currentwriterIndexand increases thewriterIndexby1in this buffer.abstract ByteBufwriteByte(int value)Sets the specified byte at the currentwriterIndexand increases thewriterIndexby1in this buffer.abstract ByteBufwriteBytes(byte[] src)Transfers the specified source array's data to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes (=src.length).abstract ByteBufwriteBytes(byte[] src, int srcIndex, int length)Transfers the specified source array's data to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes (=length).abstract ByteBufwriteBytes(ByteBuf src)Transfers the specified source buffer's data to this buffer starting at the currentwriterIndexuntil the source buffer becomes unreadable, and increases thewriterIndexby the number of the transferred bytes.abstract ByteBufwriteBytes(ByteBuf src, int length)Transfers the specified source buffer's data to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes (=length).abstract ByteBufwriteBytes(ByteBuf src, int srcIndex, int length)Transfers the specified source buffer's data to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes (=length).abstract intwriteBytes(java.io.InputStream in, int length)Transfers the content of the specified stream to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes.abstract ByteBufwriteBytes(java.nio.ByteBuffer src)Transfers the specified source buffer's data to this buffer starting at the currentwriterIndexuntil the source buffer's position reaches its limit, and increases thewriterIndexby the number of the transferred bytes.abstract intwriteBytes(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 currentwriterIndexand increases thewriterIndexby the number of the transferred bytes.abstract intwriteBytes(java.nio.channels.ScatteringByteChannel in, int length)Transfers the content of the specified channel to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes.abstract ByteBufwriteChar(int value)Sets the specified 2-byte UTF-16 character at the currentwriterIndexand increases thewriterIndexby2in this buffer.abstract intwriteCharSequence(java.lang.CharSequence sequence, java.nio.charset.Charset charset)Writes the specifiedCharSequenceat the currentwriterIndexand increases thewriterIndexby the written bytes.abstract ByteBufwriteDouble(double value)Sets the specified 64-bit floating point number at the currentwriterIndexand increases thewriterIndexby8in this buffer.ByteBufwriteDoubleLE(double value)Sets the specified 64-bit floating point number at the currentwriterIndexin Little Endian Byte Order and increases thewriterIndexby8in this buffer.abstract ByteBufwriteFloat(float value)Sets the specified 32-bit floating point number at the currentwriterIndexand increases thewriterIndexby4in this buffer.ByteBufwriteFloatLE(float value)Sets the specified 32-bit floating point number at the currentwriterIndexin Little Endian Byte Order and increases thewriterIndexby4in this buffer.abstract ByteBufwriteInt(int value)Sets the specified 32-bit integer at the currentwriterIndexand increases thewriterIndexby4in this buffer.abstract ByteBufwriteIntLE(int value)Sets the specified 32-bit integer at the currentwriterIndexin the Little Endian Byte Order and increases thewriterIndexby4in this buffer.abstract ByteBufwriteLong(long value)Sets the specified 64-bit long integer at the currentwriterIndexand increases thewriterIndexby8in this buffer.abstract ByteBufwriteLongLE(long value)Sets the specified 64-bit long integer at the currentwriterIndexin the Little Endian Byte Order and increases thewriterIndexby8in this buffer.abstract ByteBufwriteMedium(int value)Sets the specified 24-bit medium integer at the currentwriterIndexand increases thewriterIndexby3in this buffer.abstract ByteBufwriteMediumLE(int value)Sets the specified 24-bit medium integer at the currentwriterIndexin the Little Endian Byte Order and increases thewriterIndexby3in this buffer.abstract intwriterIndex()Returns thewriterIndexof this buffer.abstract ByteBufwriterIndex(int writerIndex)Sets thewriterIndexof this buffer.abstract ByteBufwriteShort(int value)Sets the specified 16-bit short integer at the currentwriterIndexand increases thewriterIndexby2in this buffer.abstract ByteBufwriteShortLE(int value)Sets the specified 16-bit short integer in the Little Endian Byte Order at the currentwriterIndexand increases thewriterIndexby2in this buffer.abstract ByteBufwriteZero(int length)Fills this buffer with NUL (0x00) starting at the currentwriterIndexand increases thewriterIndexby the specifiedlength.-
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
-
capacity
public abstract int capacity()
Returns the number of bytes (octets) this buffer can contain.
-
capacity
public abstract ByteBuf capacity(int newCapacity)
Adjusts the capacity of this buffer. If thenewCapacityis less than the current capacity, the content of this buffer is truncated. If thenewCapacityis greater than the current capacity, the buffer is appended with unspecified data whose length is(newCapacity - currentCapacity).- Throws:
java.lang.IllegalArgumentException- if thenewCapacityis greater thanmaxCapacity()
-
maxCapacity
public abstract int maxCapacity()
Returns the maximum allowed capacity of this buffer. This value provides an upper bound oncapacity().
-
alloc
public abstract ByteBufAllocator alloc()
Returns theByteBufAllocatorwhich created this buffer.
-
order
@Deprecated public abstract java.nio.ByteOrder order()
Deprecated.use the Little Endian accessors, e.g.getShortLE,getIntLEinstead of creating a buffer with swappedendianness.Returns the endianness of this buffer.
-
order
@Deprecated public abstract ByteBuf order(java.nio.ByteOrder endianness)
Deprecated.use the Little Endian accessors, e.g.getShortLE,getIntLEinstead of creating a buffer with swappedendianness.Returns a buffer with the specifiedendiannesswhich 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 specifiedendiannessis identical to this buffer's byte order, this method can returnthis. This method does not modifyreaderIndexorwriterIndexof this buffer.
-
unwrap
public abstract ByteBuf unwrap()
Return the underlying buffer instance if this buffer is a wrapper of another buffer.- Returns:
nullif this buffer is not a wrapper
-
isDirect
public abstract boolean isDirect()
Returnstrueif and only if this buffer is backed by an NIO direct buffer.
-
isReadOnly
public abstract boolean isReadOnly()
Returnstrueif and only if this buffer is read-only.
-
asReadOnly
public abstract ByteBuf asReadOnly()
Returns a read-only version of this buffer.
-
readerIndex
public abstract int readerIndex()
Returns thereaderIndexof this buffer.
-
readerIndex
public abstract ByteBuf readerIndex(int readerIndex)
Sets thereaderIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedreaderIndexis less than0or greater thanthis.writerIndex
-
writerIndex
public abstract int writerIndex()
Returns thewriterIndexof this buffer.
-
writerIndex
public abstract ByteBuf writerIndex(int writerIndex)
Sets thewriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedwriterIndexis less thanthis.readerIndexor greater thanthis.capacity
-
setIndex
public abstract ByteBuf setIndex(int readerIndex, int writerIndex)
Sets thereaderIndexandwriterIndexof this buffer in one shot. This method is useful when you have to worry about the invocation order ofreaderIndex(int)andwriterIndex(int)methods. For example, the following code will fail:// Create a buffer whose readerIndex, writerIndex and capacity are // 0, 0 and 8 respectively.
The following code will also fail:ByteBufbuf =Unpooled.buffer(8); // IndexOutOfBoundsException is thrown because the specified // readerIndex (2) cannot be greater than the current writerIndex (0). buf.readerIndex(2); buf.writerIndex(4);// Create a buffer whose readerIndex, writerIndex and capacity are // 0, 8 and 8 respectively.
By contrast, this method guarantees that it never throws anByteBufbuf =Unpooled.wrappedBuffer(new byte[8]); // readerIndex becomes 8. buf.readLong(); // IndexOutOfBoundsException is thrown because the specified // writerIndex (4) cannot be less than the current readerIndex (8). buf.writerIndex(4); buf.readerIndex(2);IndexOutOfBoundsExceptionas 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);
- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedreaderIndexis less than 0, if the specifiedwriterIndexis less than the specifiedreaderIndexor if the specifiedwriterIndexis greater thanthis.capacity
-
readableBytes
public abstract int readableBytes()
Returns the number of readable bytes which is equal to(this.writerIndex - this.readerIndex).
-
writableBytes
public abstract int writableBytes()
Returns the number of writable bytes which is equal to(this.capacity - this.writerIndex).
-
maxWritableBytes
public abstract int maxWritableBytes()
Returns the maximum possible number of writable bytes, which is equal to(this.maxCapacity - this.writerIndex).
-
maxFastWritableBytes
public int maxFastWritableBytes()
Returns the maximum number of bytes which can be written for certain without involving an internal reallocation or data-copy. The returned value will be ≥writableBytes()and ≤maxWritableBytes().
-
isReadable
public abstract boolean isReadable()
Returnstrueif and only if(this.writerIndex - this.readerIndex)is greater than0.
-
isReadable
public abstract boolean isReadable(int size)
Returnstrueif and only if this buffer contains equal to or more than the specified number of elements.
-
isWritable
public abstract boolean isWritable()
Returnstrueif and only if(this.capacity - this.writerIndex)is greater than0.
-
isWritable
public abstract boolean isWritable(int size)
Returnstrueif and only if this buffer has enough room to allow writing the specified number of elements.
-
clear
public abstract ByteBuf clear()
Sets thereaderIndexandwriterIndexof 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
limitto thecapacityof the buffer.
-
markReaderIndex
public abstract ByteBuf markReaderIndex()
Marks the currentreaderIndexin this buffer. You can reposition the currentreaderIndexto the markedreaderIndexby callingresetReaderIndex(). The initial value of the markedreaderIndexis0.
-
resetReaderIndex
public abstract ByteBuf resetReaderIndex()
Repositions the currentreaderIndexto the markedreaderIndexin this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the currentwriterIndexis less than the markedreaderIndex
-
markWriterIndex
public abstract ByteBuf markWriterIndex()
Marks the currentwriterIndexin this buffer. You can reposition the currentwriterIndexto the markedwriterIndexby callingresetWriterIndex(). The initial value of the markedwriterIndexis0.
-
resetWriterIndex
public abstract ByteBuf resetWriterIndex()
Repositions the currentwriterIndexto the markedwriterIndexin this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the currentreaderIndexis greater than the markedwriterIndex
-
discardReadBytes
public abstract ByteBuf discardReadBytes()
Discards the bytes between the 0th index andreaderIndex. It moves the bytes betweenreaderIndexandwriterIndexto the 0th index, and setsreaderIndexandwriterIndexto0andoldWriterIndex - oldReaderIndexrespectively.Please refer to the class documentation for more detailed explanation.
-
discardSomeReadBytes
public abstract ByteBuf discardSomeReadBytes()
Similar todiscardReadBytes()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.
-
ensureWritable
public abstract ByteBuf ensureWritable(int minWritableBytes)
Expands the buffercapacity()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.- Parameters:
minWritableBytes- the expected minimum number of writable bytes- Throws:
java.lang.IndexOutOfBoundsException- ifwriterIndex()+minWritableBytes>maxCapacity().- See Also:
capacity(int)
-
ensureWritable
public abstract int ensureWritable(int minWritableBytes, boolean force)Expands the buffercapacity()to make sure the number of writable bytes is equal to or greater than the specified value. UnlikeensureWritable(int), this method returns a status code.- Parameters:
minWritableBytes- the expected minimum number of writable bytesforce- WhenwriterIndex()+minWritableBytes>maxCapacity():true- the capacity of the buffer is expanded tomaxCapacity()false- the capacity of the buffer is unchanged
- Returns:
0if the buffer has enough writable bytes, and its capacity is unchanged.1if the buffer does not have enough bytes, and its capacity is unchanged.2if the buffer has enough writable bytes, and its capacity has been increased.3if the buffer does not have enough bytes, but its capacity has been increased to its maximum.
-
getBoolean
public abstract boolean getBoolean(int index)
Gets a boolean at the specified absolute (@code index) in this buffer. This method does not modify thereaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 1is greater thanthis.capacity
-
getByte
public abstract byte getByte(int index)
Gets a byte at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 1is greater thanthis.capacity
-
getUnsignedByte
public abstract short getUnsignedByte(int index)
Gets an unsigned byte at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 1is greater thanthis.capacity
-
getShort
public abstract short getShort(int index)
Gets a 16-bit short integer at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 2is greater thanthis.capacity
-
getShortLE
public abstract short getShortLE(int index)
Gets a 16-bit short integer at the specified absoluteindexin this buffer in Little Endian Byte Order. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 2is greater thanthis.capacity
-
getUnsignedShort
public abstract int getUnsignedShort(int index)
Gets an unsigned 16-bit short integer at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 2is greater thanthis.capacity
-
getUnsignedShortLE
public abstract int getUnsignedShortLE(int index)
Gets an unsigned 16-bit short integer at the specified absoluteindexin this buffer in Little Endian Byte Order. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 2is greater thanthis.capacity
-
getMedium
public abstract int getMedium(int index)
Gets a 24-bit medium integer at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 3is greater thanthis.capacity
-
getMediumLE
public abstract int getMediumLE(int index)
Gets a 24-bit medium integer at the specified absoluteindexin this buffer in the Little Endian Byte Order. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 3is greater thanthis.capacity
-
getUnsignedMedium
public abstract int getUnsignedMedium(int index)
Gets an unsigned 24-bit medium integer at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 3is greater thanthis.capacity
-
getUnsignedMediumLE
public abstract int getUnsignedMediumLE(int index)
Gets an unsigned 24-bit medium integer at the specified absoluteindexin this buffer in Little Endian Byte Order. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 3is greater thanthis.capacity
-
getInt
public abstract int getInt(int index)
Gets a 32-bit integer at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 4is greater thanthis.capacity
-
getIntLE
public abstract int getIntLE(int index)
Gets a 32-bit integer at the specified absoluteindexin this buffer with Little Endian Byte Order. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 4is greater thanthis.capacity
-
getUnsignedInt
public abstract long getUnsignedInt(int index)
Gets an unsigned 32-bit integer at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 4is greater thanthis.capacity
-
getUnsignedIntLE
public abstract long getUnsignedIntLE(int index)
Gets an unsigned 32-bit integer at the specified absoluteindexin this buffer in Little Endian Byte Order. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 4is greater thanthis.capacity
-
getLong
public abstract long getLong(int index)
Gets a 64-bit long integer at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 8is greater thanthis.capacity
-
getLongLE
public abstract long getLongLE(int index)
Gets a 64-bit long integer at the specified absoluteindexin this buffer in Little Endian Byte Order. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 8is greater thanthis.capacity
-
getChar
public abstract char getChar(int index)
Gets a 2-byte UTF-16 character at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 2is greater thanthis.capacity
-
getFloat
public abstract float getFloat(int index)
Gets a 32-bit floating point number at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 4is greater thanthis.capacity
-
getFloatLE
public float getFloatLE(int index)
Gets a 32-bit floating point number at the specified absoluteindexin this buffer in Little Endian Byte Order. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 4is greater thanthis.capacity
-
getDouble
public abstract double getDouble(int index)
Gets a 64-bit floating point number at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 8is greater thanthis.capacity
-
getDoubleLE
public double getDoubleLE(int index)
Gets a 64-bit floating point number at the specified absoluteindexin this buffer in Little Endian Byte Order. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 8is greater thanthis.capacity
-
getBytes
public abstract ByteBuf getBytes(int index, ByteBuf dst)
Transfers this buffer's data to the specified destination starting at the specified absoluteindexuntil the destination becomes non-writable. This method is basically same withgetBytes(int, ByteBuf, int, int), except that this method increases thewriterIndexof the destination by the number of the transferred bytes whilegetBytes(int, ByteBuf, int, int)does not. This method does not modifyreaderIndexorwriterIndexof the source buffer (i.e.this).- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0or ifindex + dst.writableBytesis greater thanthis.capacity
-
getBytes
public abstract ByteBuf getBytes(int index, ByteBuf dst, int length)
Transfers this buffer's data to the specified destination starting at the specified absoluteindex. This method is basically same withgetBytes(int, ByteBuf, int, int), except that this method increases thewriterIndexof the destination by the number of the transferred bytes whilegetBytes(int, ByteBuf, int, int)does not. This method does not modifyreaderIndexorwriterIndexof the source buffer (i.e.this).- Parameters:
length- the number of bytes to transfer- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0, ifindex + lengthis greater thanthis.capacity, or iflengthis greater thandst.writableBytes
-
getBytes
public abstract ByteBuf getBytes(int index, ByteBuf dst, int dstIndex, int length)
Transfers this buffer's data to the specified destination starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof both the source (i.e.this) and the destination.- Parameters:
dstIndex- the first index of the destinationlength- the number of bytes to transfer- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0, if the specifieddstIndexis less than0, ifindex + lengthis greater thanthis.capacity, or ifdstIndex + lengthis greater thandst.capacity
-
getBytes
public abstract ByteBuf getBytes(int index, byte[] dst)
Transfers this buffer's data to the specified destination starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof this buffer- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0or ifindex + dst.lengthis greater thanthis.capacity
-
getBytes
public abstract ByteBuf getBytes(int index, byte[] dst, int dstIndex, int length)
Transfers this buffer's data to the specified destination starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof this buffer.- Parameters:
dstIndex- the first index of the destinationlength- the number of bytes to transfer- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0, if the specifieddstIndexis less than0, ifindex + lengthis greater thanthis.capacity, or ifdstIndex + lengthis greater thandst.length
-
getBytes
public abstract ByteBuf getBytes(int index, java.nio.ByteBuffer dst)
Transfers this buffer's data to the specified destination starting at the specified absoluteindexuntil the destination's position reaches its limit. This method does not modifyreaderIndexorwriterIndexof this buffer while the destination'spositionwill be increased.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0or ifindex + dst.remaining()is greater thanthis.capacity
-
getBytes
public abstract ByteBuf getBytes(int index, java.io.OutputStream out, int length) throws java.io.IOException
Transfers this buffer's data to the specified stream starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof this buffer.- Parameters:
length- the number of bytes to transfer- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0or ifindex + lengthis greater thanthis.capacityjava.io.IOException- if the specified stream threw an exception during I/O
-
getBytes
public abstract int getBytes(int index, java.nio.channels.GatheringByteChannel out, int length) throws java.io.IOExceptionTransfers this buffer's data to the specified channel starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof this buffer.- Parameters:
length- the maximum number of bytes to transfer- Returns:
- the actual number of bytes written out to the specified channel
- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0or ifindex + lengthis greater thanthis.capacityjava.io.IOException- if the specified channel threw an exception during I/O
-
getBytes
public abstract int getBytes(int index, java.nio.channels.FileChannel out, long position, int length) throws java.io.IOExceptionTransfers this buffer's data starting at the specified absoluteindexto the specified channel starting at the given file position. This method does not modifyreaderIndexorwriterIndexof this buffer. This method does not modify the channel's position.- Parameters:
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.lang.IndexOutOfBoundsException- if the specifiedindexis less than0or ifindex + lengthis greater thanthis.capacityjava.io.IOException- if the specified channel threw an exception during I/O
-
getCharSequence
public abstract java.lang.CharSequence getCharSequence(int index, int length, java.nio.charset.Charset charset)Gets aCharSequencewith the given length at the given index.- Parameters:
length- the length to readcharset- that should be used- Returns:
- the sequence
- Throws:
java.lang.IndexOutOfBoundsException- iflengthis greater thanthis.readableBytes
-
setBoolean
public abstract ByteBuf setBoolean(int index, boolean value)
Sets the specified boolean at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 1is greater thanthis.capacity
-
setByte
public abstract ByteBuf setByte(int index, int value)
Sets the specified byte at the specified absoluteindexin this buffer. The 24 high-order bits of the specified value are ignored. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 1is greater thanthis.capacity
-
setShort
public abstract ByteBuf setShort(int index, int value)
Sets the specified 16-bit short integer at the specified absoluteindexin this buffer. The 16 high-order bits of the specified value are ignored. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 2is greater thanthis.capacity
-
setShortLE
public abstract ByteBuf setShortLE(int index, int value)
Sets the specified 16-bit short integer at the specified absoluteindexin this buffer with the Little Endian Byte Order. The 16 high-order bits of the specified value are ignored. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 2is greater thanthis.capacity
-
setMedium
public abstract ByteBuf setMedium(int index, int value)
Sets the specified 24-bit medium integer at the specified absoluteindexin this buffer. Please note that the most significant byte is ignored in the specified value. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 3is greater thanthis.capacity
-
setMediumLE
public abstract ByteBuf setMediumLE(int index, int value)
Sets the specified 24-bit medium integer at the specified absoluteindexin 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 modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 3is greater thanthis.capacity
-
setInt
public abstract ByteBuf setInt(int index, int value)
Sets the specified 32-bit integer at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 4is greater thanthis.capacity
-
setIntLE
public abstract ByteBuf setIntLE(int index, int value)
Sets the specified 32-bit integer at the specified absoluteindexin this buffer with Little Endian byte order . This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 4is greater thanthis.capacity
-
setLong
public abstract ByteBuf setLong(int index, long value)
Sets the specified 64-bit long integer at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 8is greater thanthis.capacity
-
setLongLE
public abstract ByteBuf setLongLE(int index, long value)
Sets the specified 64-bit long integer at the specified absoluteindexin this buffer in Little Endian Byte Order. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 8is greater thanthis.capacity
-
setChar
public abstract ByteBuf setChar(int index, int value)
Sets the specified 2-byte UTF-16 character at the specified absoluteindexin this buffer. The 16 high-order bits of the specified value are ignored. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 2is greater thanthis.capacity
-
setFloat
public abstract ByteBuf setFloat(int index, float value)
Sets the specified 32-bit floating-point number at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 4is greater thanthis.capacity
-
setFloatLE
public ByteBuf setFloatLE(int index, float value)
Sets the specified 32-bit floating-point number at the specified absoluteindexin this buffer in Little Endian Byte Order. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 4is greater thanthis.capacity
-
setDouble
public abstract ByteBuf setDouble(int index, double value)
Sets the specified 64-bit floating-point number at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 8is greater thanthis.capacity
-
setDoubleLE
public ByteBuf setDoubleLE(int index, double value)
Sets the specified 64-bit floating-point number at the specified absoluteindexin this buffer in Little Endian Byte Order. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0orindex + 8is greater thanthis.capacity
-
setBytes
public abstract ByteBuf setBytes(int index, ByteBuf src)
Transfers the specified source buffer's data to this buffer starting at the specified absoluteindexuntil the source buffer becomes unreadable. This method is basically same withsetBytes(int, ByteBuf, int, int), except that this method increases thereaderIndexof the source buffer by the number of the transferred bytes whilesetBytes(int, ByteBuf, int, int)does not. This method does not modifyreaderIndexorwriterIndexof this buffer (i.e.this).- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0or ifindex + src.readableBytesis greater thanthis.capacity
-
setBytes
public abstract ByteBuf setBytes(int index, ByteBuf src, int length)
Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex. This method is basically same withsetBytes(int, ByteBuf, int, int), except that this method increases thereaderIndexof the source buffer by the number of the transferred bytes whilesetBytes(int, ByteBuf, int, int)does not. This method does not modifyreaderIndexorwriterIndexof this buffer (i.e.this).- Parameters:
length- the number of bytes to transfer- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0, ifindex + lengthis greater thanthis.capacity, or iflengthis greater thansrc.readableBytes
-
setBytes
public abstract ByteBuf setBytes(int index, ByteBuf src, int srcIndex, int length)
Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof both the source (i.e.this) and the destination.- Parameters:
srcIndex- the first index of the sourcelength- the number of bytes to transfer- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0, if the specifiedsrcIndexis less than0, ifindex + lengthis greater thanthis.capacity, or ifsrcIndex + lengthis greater thansrc.capacity
-
setBytes
public abstract ByteBuf setBytes(int index, byte[] src)
Transfers the specified source array's data to this buffer starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0or ifindex + src.lengthis greater thanthis.capacity
-
setBytes
public abstract ByteBuf setBytes(int index, byte[] src, int srcIndex, int length)
Transfers the specified source array's data to this buffer starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0, if the specifiedsrcIndexis less than0, ifindex + lengthis greater thanthis.capacity, or ifsrcIndex + lengthis greater thansrc.length
-
setBytes
public abstract ByteBuf setBytes(int index, java.nio.ByteBuffer src)
Transfers the specified source buffer's data to this buffer starting at the specified absoluteindexuntil the source buffer's position reaches its limit. This method does not modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0or ifindex + src.remaining()is greater thanthis.capacity
-
setBytes
public abstract int setBytes(int index, java.io.InputStream in, int length) throws java.io.IOExceptionTransfers the content of the specified source stream to this buffer starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof this buffer.- Parameters:
length- the number of bytes to transfer- Returns:
- the actual number of bytes read in from the specified channel.
-1if the specifiedInputStreamreached EOF. - Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0or ifindex + lengthis greater thanthis.capacityjava.io.IOException- if the specified stream threw an exception during I/O
-
setBytes
public abstract int setBytes(int index, java.nio.channels.ScatteringByteChannel in, int length) throws java.io.IOExceptionTransfers the content of the specified source channel to this buffer starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof this buffer.- Parameters:
length- the maximum number of bytes to transfer- Returns:
- the actual number of bytes read in from the specified channel.
-1if the specified channel is closed or reached EOF. - Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0or ifindex + lengthis greater thanthis.capacityjava.io.IOException- if the specified channel threw an exception during I/O
-
setBytes
public abstract int setBytes(int index, java.nio.channels.FileChannel in, long position, int length) throws java.io.IOExceptionTransfers the content of the specified source channel starting at the given file position to this buffer starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof this buffer. This method does not modify the channel's position.- Parameters:
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.
-1if the specified channel is closed or reached EOF. - Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0or ifindex + lengthis greater thanthis.capacityjava.io.IOException- if the specified channel threw an exception during I/O
-
setZero
public abstract ByteBuf setZero(int index, int length)
Fills this buffer with NUL (0x00) starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof this buffer.- Parameters:
length- the number of NULs to write to the buffer- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedindexis less than0or ifindex + lengthis greater thanthis.capacity
-
setCharSequence
public abstract int setCharSequence(int index, java.lang.CharSequence sequence, java.nio.charset.Charset charset)Writes the specifiedCharSequenceat the givenindex. ThewriterIndexis not modified by this method.- Parameters:
index- on which the sequence should be writtensequence- to writecharset- that should be used.- Returns:
- the written number of bytes.
- Throws:
java.lang.IndexOutOfBoundsException- if the sequence at the given index would be out of bounds of the buffer capacity
-
readBoolean
public abstract boolean readBoolean()
Gets a boolean at the currentreaderIndexand increases thereaderIndexby1in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than1
-
readByte
public abstract byte readByte()
Gets a byte at the currentreaderIndexand increases thereaderIndexby1in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than1
-
readUnsignedByte
public abstract short readUnsignedByte()
Gets an unsigned byte at the currentreaderIndexand increases thereaderIndexby1in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than1
-
readShort
public abstract short readShort()
Gets a 16-bit short integer at the currentreaderIndexand increases thereaderIndexby2in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than2
-
readShortLE
public abstract short readShortLE()
Gets a 16-bit short integer at the currentreaderIndexin the Little Endian Byte Order and increases thereaderIndexby2in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than2
-
readUnsignedShort
public abstract int readUnsignedShort()
Gets an unsigned 16-bit short integer at the currentreaderIndexand increases thereaderIndexby2in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than2
-
readUnsignedShortLE
public abstract int readUnsignedShortLE()
Gets an unsigned 16-bit short integer at the currentreaderIndexin the Little Endian Byte Order and increases thereaderIndexby2in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than2
-
readMedium
public abstract int readMedium()
Gets a 24-bit medium integer at the currentreaderIndexand increases thereaderIndexby3in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than3
-
readMediumLE
public abstract int readMediumLE()
Gets a 24-bit medium integer at the currentreaderIndexin the Little Endian Byte Order and increases thereaderIndexby3in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than3
-
readUnsignedMedium
public abstract int readUnsignedMedium()
Gets an unsigned 24-bit medium integer at the currentreaderIndexand increases thereaderIndexby3in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than3
-
readUnsignedMediumLE
public abstract int readUnsignedMediumLE()
Gets an unsigned 24-bit medium integer at the currentreaderIndexin the Little Endian Byte Order and increases thereaderIndexby3in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than3
-
readInt
public abstract int readInt()
Gets a 32-bit integer at the currentreaderIndexand increases thereaderIndexby4in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than4
-
readIntLE
public abstract int readIntLE()
Gets a 32-bit integer at the currentreaderIndexin the Little Endian Byte Order and increases thereaderIndexby4in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than4
-
readUnsignedInt
public abstract long readUnsignedInt()
Gets an unsigned 32-bit integer at the currentreaderIndexand increases thereaderIndexby4in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than4
-
readUnsignedIntLE
public abstract long readUnsignedIntLE()
Gets an unsigned 32-bit integer at the currentreaderIndexin the Little Endian Byte Order and increases thereaderIndexby4in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than4
-
readLong
public abstract long readLong()
Gets a 64-bit integer at the currentreaderIndexand increases thereaderIndexby8in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than8
-
readLongLE
public abstract long readLongLE()
Gets a 64-bit integer at the currentreaderIndexin the Little Endian Byte Order and increases thereaderIndexby8in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than8
-
readChar
public abstract char readChar()
Gets a 2-byte UTF-16 character at the currentreaderIndexand increases thereaderIndexby2in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than2
-
readFloat
public abstract float readFloat()
Gets a 32-bit floating point number at the currentreaderIndexand increases thereaderIndexby4in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than4
-
readFloatLE
public float readFloatLE()
Gets a 32-bit floating point number at the currentreaderIndexin Little Endian Byte Order and increases thereaderIndexby4in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than4
-
readDouble
public abstract double readDouble()
Gets a 64-bit floating point number at the currentreaderIndexand increases thereaderIndexby8in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than8
-
readDoubleLE
public double readDoubleLE()
Gets a 64-bit floating point number at the currentreaderIndexin Little Endian Byte Order and increases thereaderIndexby8in this buffer.- Throws:
java.lang.IndexOutOfBoundsException- ifthis.readableBytesis less than8
-
readBytes
public abstract ByteBuf readBytes(int length)
Transfers this buffer's data to a newly created buffer starting at the currentreaderIndexand increases thereaderIndexby the number of the transferred bytes (=length). The returned buffer'sreaderIndexandwriterIndexare0andlengthrespectively.- Parameters:
length- the number of bytes to transfer- Returns:
- the newly created buffer which contains the transferred bytes
- Throws:
java.lang.IndexOutOfBoundsException- iflengthis greater thanthis.readableBytes
-
readSlice
public abstract ByteBuf readSlice(int length)
Returns a new slice of this buffer's sub-region starting at the currentreaderIndexand increases thereaderIndexby the size of the new slice (=length).Also be aware that this method will NOT call
retain()and so the reference count will NOT be increased.- Parameters:
length- the size of the new slice- Returns:
- the newly created slice
- Throws:
java.lang.IndexOutOfBoundsException- iflengthis greater thanthis.readableBytes
-
readRetainedSlice
public abstract ByteBuf readRetainedSlice(int length)
Returns a new retained slice of this buffer's sub-region starting at the currentreaderIndexand increases thereaderIndexby the size of the new slice (=length).Note that this method returns a retained buffer unlike
readSlice(int). This method behaves similarly toreadSlice(...).retain()except that this method may return a buffer implementation that produces less garbage.- Parameters:
length- the size of the new slice- Returns:
- the newly created slice
- Throws:
java.lang.IndexOutOfBoundsException- iflengthis greater thanthis.readableBytes
-
readBytes
public abstract ByteBuf readBytes(ByteBuf dst)
Transfers this buffer's data to the specified destination starting at the currentreaderIndexuntil the destination becomes non-writable, and increases thereaderIndexby the number of the transferred bytes. This method is basically same withreadBytes(ByteBuf, int, int), except that this method increases thewriterIndexof the destination by the number of the transferred bytes whilereadBytes(ByteBuf, int, int)does not.- Throws:
java.lang.IndexOutOfBoundsException- ifdst.writableBytesis greater thanthis.readableBytes
-
readBytes
public abstract ByteBuf readBytes(ByteBuf dst, int length)
Transfers this buffer's data to the specified destination starting at the currentreaderIndexand increases thereaderIndexby the number of the transferred bytes (=length). This method is basically same withreadBytes(ByteBuf, int, int), except that this method increases thewriterIndexof the destination by the number of the transferred bytes (=length) whilereadBytes(ByteBuf, int, int)does not.- Throws:
java.lang.IndexOutOfBoundsException- iflengthis greater thanthis.readableBytesor iflengthis greater thandst.writableBytes
-
readBytes
public abstract ByteBuf readBytes(ByteBuf dst, int dstIndex, int length)
Transfers this buffer's data to the specified destination starting at the currentreaderIndexand increases thereaderIndexby the number of the transferred bytes (=length).- Parameters:
dstIndex- the first index of the destinationlength- the number of bytes to transfer- Throws:
java.lang.IndexOutOfBoundsException- if the specifieddstIndexis less than0, iflengthis greater thanthis.readableBytes, or ifdstIndex + lengthis greater thandst.capacity
-
readBytes
public abstract ByteBuf readBytes(byte[] dst)
Transfers this buffer's data to the specified destination starting at the currentreaderIndexand increases thereaderIndexby the number of the transferred bytes (=dst.length).- Throws:
java.lang.IndexOutOfBoundsException- ifdst.lengthis greater thanthis.readableBytes
-
readBytes
public abstract ByteBuf readBytes(byte[] dst, int dstIndex, int length)
Transfers this buffer's data to the specified destination starting at the currentreaderIndexand increases thereaderIndexby the number of the transferred bytes (=length).- Parameters:
dstIndex- the first index of the destinationlength- the number of bytes to transfer- Throws:
java.lang.IndexOutOfBoundsException- if the specifieddstIndexis less than0, iflengthis greater thanthis.readableBytes, or ifdstIndex + lengthis greater thandst.length
-
readBytes
public abstract ByteBuf readBytes(java.nio.ByteBuffer dst)
Transfers this buffer's data to the specified destination starting at the currentreaderIndexuntil the destination's position reaches its limit, and increases thereaderIndexby the number of the transferred bytes.- Throws:
java.lang.IndexOutOfBoundsException- ifdst.remaining()is greater thanthis.readableBytes
-
readBytes
public abstract ByteBuf readBytes(java.io.OutputStream out, int length) throws java.io.IOException
Transfers this buffer's data to the specified stream starting at the currentreaderIndex.- Parameters:
length- the number of bytes to transfer- Throws:
java.lang.IndexOutOfBoundsException- iflengthis greater thanthis.readableBytesjava.io.IOException- if the specified stream threw an exception during I/O
-
readBytes
public abstract int readBytes(java.nio.channels.GatheringByteChannel out, int length) throws java.io.IOExceptionTransfers this buffer's data to the specified stream starting at the currentreaderIndex.- Parameters:
length- the maximum number of bytes to transfer- Returns:
- the actual number of bytes written out to the specified channel
- Throws:
java.lang.IndexOutOfBoundsException- iflengthis greater thanthis.readableBytesjava.io.IOException- if the specified channel threw an exception during I/O
-
readCharSequence
public abstract java.lang.CharSequence readCharSequence(int length, java.nio.charset.Charset charset)Gets aCharSequencewith the given length at the currentreaderIndexand increases thereaderIndexby the given length.- Parameters:
length- the length to readcharset- that should be used- Returns:
- the sequence
- Throws:
java.lang.IndexOutOfBoundsException- iflengthis greater thanthis.readableBytes
-
readString
public java.lang.String readString(int length, java.nio.charset.Charset charset)Gets aStringwith the given length at the currentreaderIndexand increases thereaderIndexby the given length.- Parameters:
length- the length to readcharset- that should be used- Returns:
- the string
- Throws:
java.lang.IndexOutOfBoundsException- iflengthis greater thanthis.readableBytes
-
readBytes
public abstract int readBytes(java.nio.channels.FileChannel out, long position, int length) throws java.io.IOExceptionTransfers this buffer's data starting at the currentreaderIndexto the specified channel starting at the given file position. This method does not modify the channel's position.- Parameters:
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.lang.IndexOutOfBoundsException- iflengthis greater thanthis.readableBytesjava.io.IOException- if the specified channel threw an exception during I/O
-
skipBytes
public abstract ByteBuf skipBytes(int length)
Increases the currentreaderIndexby the specifiedlengthin this buffer.- Throws:
java.lang.IndexOutOfBoundsException- iflengthis greater thanthis.readableBytes
-
writeBoolean
public abstract ByteBuf writeBoolean(boolean value)
Sets the specified boolean at the currentwriterIndexand increases thewriterIndexby1in this buffer. Ifthis.writableBytesis less than1,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.
-
writeByte
public abstract ByteBuf writeByte(int value)
Sets the specified byte at the currentwriterIndexand increases thewriterIndexby1in this buffer. The 24 high-order bits of the specified value are ignored. Ifthis.writableBytesis less than1,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.
-
writeShort
public abstract ByteBuf writeShort(int value)
Sets the specified 16-bit short integer at the currentwriterIndexand increases thewriterIndexby2in this buffer. The 16 high-order bits of the specified value are ignored. Ifthis.writableBytesis less than2,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.
-
writeShortLE
public abstract ByteBuf writeShortLE(int value)
Sets the specified 16-bit short integer in the Little Endian Byte Order at the currentwriterIndexand increases thewriterIndexby2in this buffer. The 16 high-order bits of the specified value are ignored. Ifthis.writableBytesis less than2,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.
-
writeMedium
public abstract ByteBuf writeMedium(int value)
Sets the specified 24-bit medium integer at the currentwriterIndexand increases thewriterIndexby3in this buffer. Ifthis.writableBytesis less than3,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.
-
writeMediumLE
public abstract ByteBuf writeMediumLE(int value)
Sets the specified 24-bit medium integer at the currentwriterIndexin the Little Endian Byte Order and increases thewriterIndexby3in this buffer. Ifthis.writableBytesis less than3,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.
-
writeInt
public abstract ByteBuf writeInt(int value)
Sets the specified 32-bit integer at the currentwriterIndexand increases thewriterIndexby4in this buffer. Ifthis.writableBytesis less than4,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.
-
writeIntLE
public abstract ByteBuf writeIntLE(int value)
Sets the specified 32-bit integer at the currentwriterIndexin the Little Endian Byte Order and increases thewriterIndexby4in this buffer. Ifthis.writableBytesis less than4,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.
-
writeLong
public abstract ByteBuf writeLong(long value)
Sets the specified 64-bit long integer at the currentwriterIndexand increases thewriterIndexby8in this buffer. Ifthis.writableBytesis less than8,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.
-
writeLongLE
public abstract ByteBuf writeLongLE(long value)
Sets the specified 64-bit long integer at the currentwriterIndexin the Little Endian Byte Order and increases thewriterIndexby8in this buffer. Ifthis.writableBytesis less than8,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.
-
writeChar
public abstract ByteBuf writeChar(int value)
Sets the specified 2-byte UTF-16 character at the currentwriterIndexand increases thewriterIndexby2in this buffer. The 16 high-order bits of the specified value are ignored. Ifthis.writableBytesis less than2,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.
-
writeFloat
public abstract ByteBuf writeFloat(float value)
Sets the specified 32-bit floating point number at the currentwriterIndexand increases thewriterIndexby4in this buffer. Ifthis.writableBytesis less than4,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.
-
writeFloatLE
public ByteBuf writeFloatLE(float value)
Sets the specified 32-bit floating point number at the currentwriterIndexin Little Endian Byte Order and increases thewriterIndexby4in this buffer. Ifthis.writableBytesis less than4,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.
-
writeDouble
public abstract ByteBuf writeDouble(double value)
Sets the specified 64-bit floating point number at the currentwriterIndexand increases thewriterIndexby8in this buffer. Ifthis.writableBytesis less than8,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.
-
writeDoubleLE
public ByteBuf writeDoubleLE(double value)
Sets the specified 64-bit floating point number at the currentwriterIndexin Little Endian Byte Order and increases thewriterIndexby8in this buffer. Ifthis.writableBytesis less than8,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.
-
writeBytes
public abstract ByteBuf writeBytes(ByteBuf src)
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndexuntil the source buffer becomes unreadable, and increases thewriterIndexby the number of the transferred bytes. This method is basically same withwriteBytes(ByteBuf, int, int), except that this method increases thereaderIndexof the source buffer by the number of the transferred bytes whilewriteBytes(ByteBuf, int, int)does not. Ifthis.writableBytesis less thansrc.readableBytes,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.
-
writeBytes
public abstract ByteBuf writeBytes(ByteBuf src, int length)
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes (=length). This method is basically same withwriteBytes(ByteBuf, int, int), except that this method increases thereaderIndexof the source buffer by the number of the transferred bytes (=length) whilewriteBytes(ByteBuf, int, int)does not. Ifthis.writableBytesis less thanlength,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.- Parameters:
length- the number of bytes to transfer- Throws:
java.lang.IndexOutOfBoundsException- iflengthis greater thensrc.readableBytes
-
writeBytes
public abstract ByteBuf writeBytes(ByteBuf src, int srcIndex, int length)
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes (=length). Ifthis.writableBytesis less thanlength,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.- Parameters:
srcIndex- the first index of the sourcelength- the number of bytes to transfer- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedsrcIndexis less than0, or ifsrcIndex + lengthis greater thansrc.capacity
-
writeBytes
public abstract ByteBuf writeBytes(byte[] src)
Transfers the specified source array's data to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes (=src.length). Ifthis.writableBytesis less thansrc.length,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.
-
writeBytes
public abstract ByteBuf writeBytes(byte[] src, int srcIndex, int length)
Transfers the specified source array's data to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes (=length). Ifthis.writableBytesis less thanlength,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.- Parameters:
srcIndex- the first index of the sourcelength- the number of bytes to transfer- Throws:
java.lang.IndexOutOfBoundsException- if the specifiedsrcIndexis less than0, or ifsrcIndex + lengthis greater thansrc.length
-
writeBytes
public abstract ByteBuf writeBytes(java.nio.ByteBuffer src)
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndexuntil the source buffer's position reaches its limit, and increases thewriterIndexby the number of the transferred bytes. Ifthis.writableBytesis less thansrc.remaining(),ensureWritable(int)will be called in an attempt to expand capacity to accommodate.
-
writeBytes
public abstract int writeBytes(java.io.InputStream in, int length) throws java.io.IOExceptionTransfers the content of the specified stream to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes. Ifthis.writableBytesis less thanlength,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.- Parameters:
length- the number of bytes to transfer- Returns:
- the actual number of bytes read in from the specified channel.
-1if the specifiedInputStreamreached EOF. - Throws:
java.io.IOException- if the specified stream threw an exception during I/O
-
writeBytes
public abstract int writeBytes(java.nio.channels.ScatteringByteChannel in, int length) throws java.io.IOExceptionTransfers the content of the specified channel to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes. Ifthis.writableBytesis less thanlength,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.- Parameters:
length- the maximum number of bytes to transfer- Returns:
- the actual number of bytes read in from the specified channel.
-1if the specified channel is closed or reached EOF. - Throws:
java.io.IOException- if the specified channel threw an exception during I/O
-
writeBytes
public abstract int writeBytes(java.nio.channels.FileChannel in, long position, int length) throws java.io.IOExceptionTransfers the content of the specified channel starting at the given file position to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes. This method does not modify the channel's position. Ifthis.writableBytesis less thanlength,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.- Parameters:
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.
-1if the specified channel is closed or reached EOF. - Throws:
java.io.IOException- if the specified channel threw an exception during I/O
-
writeZero
public abstract ByteBuf writeZero(int length)
Fills this buffer with NUL (0x00) starting at the currentwriterIndexand increases thewriterIndexby the specifiedlength. Ifthis.writableBytesis less thanlength,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.- Parameters:
length- the number of NULs to write to the buffer
-
writeCharSequence
public abstract int writeCharSequence(java.lang.CharSequence sequence, java.nio.charset.Charset charset)Writes the specifiedCharSequenceat the currentwriterIndexand increases thewriterIndexby the written bytes. Ifthis.writableBytesis not large enough to write the whole sequence,ensureWritable(int)will be called in an attempt to expand capacity to accommodate.- Parameters:
sequence- to writecharset- that should be used- Returns:
- the written number of bytes
-
indexOf
public abstract int indexOf(int fromIndex, int toIndex, byte value)Locates the first occurrence of the specifiedvaluein this buffer. The search takes place from the specifiedfromIndex(inclusive) to the specifiedtoIndex(exclusive).If
fromIndexis 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
readerIndexorwriterIndexof this buffer.- Returns:
- the absolute index of the first occurrence if found.
-1otherwise.
-
bytesBefore
public abstract int bytesBefore(byte value)
Locates the first occurrence of the specifiedvaluein this buffer. The search takes place from the currentreaderIndex(inclusive) to the currentwriterIndex(exclusive).This method does not modify
readerIndexorwriterIndexof this buffer.- Returns:
- the number of bytes between the current
readerIndexand the first occurrence if found.-1otherwise.
-
bytesBefore
public abstract int bytesBefore(int length, byte value)Locates the first occurrence of the specifiedvaluein this buffer. The search starts from the currentreaderIndex(inclusive) and lasts for the specifiedlength.This method does not modify
readerIndexorwriterIndexof this buffer.- Returns:
- the number of bytes between the current
readerIndexand the first occurrence if found.-1otherwise. - Throws:
java.lang.IndexOutOfBoundsException- iflengthis greater thanthis.readableBytes
-
bytesBefore
public abstract int bytesBefore(int index, int length, byte value)Locates the first occurrence of the specifiedvaluein this buffer. The search starts from the specifiedindex(inclusive) and lasts for the specifiedlength.This method does not modify
readerIndexorwriterIndexof this buffer.- Returns:
- the number of bytes between the specified
indexand the first occurrence if found.-1otherwise. - Throws:
java.lang.IndexOutOfBoundsException- ifindex + lengthis greater thanthis.capacity
-
forEachByte
public abstract int forEachByte(ByteProcessor processor)
Iterates over the readable bytes of this buffer with the specifiedprocessorin ascending order.- Returns:
-1if the processor iterated to or beyond the end of the readable bytes. The last-visited index If theByteProcessor.process(byte)returnedfalse.
-
forEachByte
public abstract int forEachByte(int index, int length, ByteProcessor processor)Iterates over the specified area of this buffer with the specifiedprocessorin ascending order. (i.e.index,(index + 1), ..(index + length - 1))- Returns:
-1if the processor iterated to or beyond the end of the specified area. The last-visited index If theByteProcessor.process(byte)returnedfalse.
-
forEachByteDesc
public abstract int forEachByteDesc(ByteProcessor processor)
Iterates over the readable bytes of this buffer with the specifiedprocessorin descending order.- Returns:
-1if the processor iterated to or beyond the beginning of the readable bytes. The last-visited index If theByteProcessor.process(byte)returnedfalse.
-
forEachByteDesc
public abstract int forEachByteDesc(int index, int length, ByteProcessor processor)Iterates over the specified area of this buffer with the specifiedprocessorin descending order. (i.e.(index + length - 1),(index + length - 2), ...index)- Returns:
-1if the processor iterated to or beyond the beginning of the specified area. The last-visited index If theByteProcessor.process(byte)returnedfalse.
-
copy
public abstract ByteBuf copy()
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 modifyreaderIndexorwriterIndexof this buffer.
-
copy
public abstract ByteBuf copy(int index, int length)
Returns a copy of this buffer's sub-region. Modifying the content of the returned buffer or this buffer does not affect each other at all. This method does not modifyreaderIndexorwriterIndexof this buffer.
-
slice
public abstract ByteBuf slice()
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 modifyreaderIndexorwriterIndexof this buffer.Also be aware that this method will NOT call
retain()and so the reference count will NOT be increased.
-
retainedSlice
public abstract ByteBuf retainedSlice()
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 modifyreaderIndexorwriterIndexof this buffer.Note that this method returns a retained buffer unlike
slice(). This method behaves similarly toslice().retain()except that this method may return a buffer implementation that produces less garbage.
-
slice
public abstract ByteBuf slice(int index, int length)
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 modifyreaderIndexorwriterIndexof this buffer.Also be aware that this method will NOT call
retain()and so the reference count will NOT be increased.
-
retainedSlice
public abstract ByteBuf retainedSlice(int index, int length)
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 modifyreaderIndexorwriterIndexof this buffer.Note that this method returns a retained buffer unlike
slice(int, int). This method behaves similarly toslice(...).retain()except that this method may return a buffer implementation that produces less garbage.
-
duplicate
public abstract ByteBuf duplicate()
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 modifyreaderIndexorwriterIndexof this buffer.The reader and writer marks will not be duplicated. Also be aware that this method will NOT call
retain()and so the reference count will NOT be increased.- Returns:
- A buffer whose readable content is equivalent to the buffer returned by
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 abstract ByteBuf retainedDuplicate()
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 modifyreaderIndexorwriterIndexof this buffer.Note that this method returns a retained buffer unlike
slice(int, int). This method behaves similarly toduplicate().retain()except that this method may return a buffer implementation that produces less garbage.
-
nioBufferCount
public abstract int nioBufferCount()
Returns the maximum number of NIOByteBuffers that consist this buffer. Note thatnioBuffers()ornioBuffers(int, int)might return a less number ofByteBuffers.- Returns:
-1if this buffer has no underlyingByteBuffer. the number of the underlyingByteBuffers if this buffer has at least one underlyingByteBuffer. Note that this method does not return0to avoid confusion.- See Also:
nioBuffer(),nioBuffer(int, int),nioBuffers(),nioBuffers(int, int)
-
nioBuffer
public abstract java.nio.ByteBuffer nioBuffer()
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 modifyreaderIndexorwriterIndexof 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.- Throws:
java.lang.UnsupportedOperationException- if this buffer cannot create aByteBufferthat shares the content with itself- See Also:
nioBufferCount(),nioBuffers(),nioBuffers(int, int)
-
nioBuffer
public abstract java.nio.ByteBuffer nioBuffer(int index, int length)Exposes this buffer's sub-region 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 does not modifyreaderIndexorwriterIndexof 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.- Throws:
java.lang.UnsupportedOperationException- if this buffer cannot create aByteBufferthat shares the content with itself- See Also:
nioBufferCount(),nioBuffers(),nioBuffers(int, int)
-
internalNioBuffer
public abstract java.nio.ByteBuffer internalNioBuffer(int index, int length)Internal use only: Exposes the internal NIO buffer.
-
nioBuffers
public abstract java.nio.ByteBuffer[] nioBuffers()
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 modifyreaderIndexorwriterIndexof 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.- Throws:
java.lang.UnsupportedOperationException- if this buffer cannot create aByteBufferthat shares the content with itself- See Also:
nioBufferCount(),nioBuffer(),nioBuffer(int, int)
-
nioBuffers
public abstract java.nio.ByteBuffer[] nioBuffers(int index, int length)Exposes this buffer's bytes as an NIOByteBuffer's for the specified index and length The returned buffer either share or contains the copied content of this buffer, while changing the position and limit of the returned NIO buffer does not affect the indexes and marks of this buffer. This method does not modifyreaderIndexorwriterIndexof 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.- Throws:
java.lang.UnsupportedOperationException- if this buffer cannot create aByteBufferthat shares the content with itself- See Also:
nioBufferCount(),nioBuffer(),nioBuffer(int, int)
-
hasArray
public abstract boolean hasArray()
Returnstrueif and only if this buffer has a backing byte array. If this method returns true, you can safely callarray()andarrayOffset().
-
array
public abstract byte[] array()
Returns the backing byte array of this buffer.- Throws:
java.lang.UnsupportedOperationException- if there no accessible backing byte array
-
arrayOffset
public abstract int arrayOffset()
Returns the offset of the first byte within the backing byte array of this buffer.- Throws:
java.lang.UnsupportedOperationException- if there no accessible backing byte array
-
hasMemoryAddress
public abstract boolean hasMemoryAddress()
Returnstrueif and only if this buffer has a reference to the low-level memory address that points to the backing data.
-
memoryAddress
public abstract long memoryAddress()
Returns the low-level memory address that point to the first byte of ths backing data.- Throws:
java.lang.UnsupportedOperationException- if this buffer does not support accessing the low-level memory address
-
isContiguous
public boolean isContiguous()
Returnstrueif thisByteBufimplementation is backed by a single memory region. Composite buffer implementations must return false even if they currently hold ≤ 1 components. For buffers that returntrue, it's guaranteed that a successful call todiscardReadBytes()will increase the value ofmaxFastWritableBytes()by the currentreaderIndex.This method will return
falseby default, and afalsereturn value does not necessarily mean that the implementation is composite or that it is not backed by a single memory region.
-
asByteBuf
public ByteBuf asByteBuf()
AByteBufcan turn into itself.- Specified by:
asByteBufin interfaceByteBufConvertible- Returns:
- This
ByteBufinstance.
-
toString
public abstract java.lang.String toString(java.nio.charset.Charset charset)
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 modifyreaderIndexorwriterIndexof this buffer.- Throws:
java.nio.charset.UnsupportedCharsetException- if the specified character set name is not supported by the current VM
-
toString
public abstract 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. This method does not modifyreaderIndexorwriterIndexof this buffer.
-
hashCode
public abstract int hashCode()
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.- Overrides:
hashCodein classjava.lang.Object
-
equals
public abstract boolean equals(java.lang.Object obj)
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.
readerIndex()norwriterIndex(). This method also returnsfalsefornulland an object which is not an instance ofByteBuftype.- Overrides:
equalsin classjava.lang.Object
-
compareTo
public abstract int compareTo(ByteBuf buffer)
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,memcmpandString.compareTo(String).- Specified by:
compareToin interfacejava.lang.Comparable<ByteBuf>
-
toString
public abstract java.lang.String toString()
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 asreaderIndex(),writerIndex()andcapacity().- Overrides:
toStringin classjava.lang.Object
-
retain
public abstract ByteBuf retain(int increment)
Description copied from interface:ReferenceCountedIncreases the reference count by the specifiedincrement.- Specified by:
retainin interfaceReferenceCounted
-
retain
public abstract ByteBuf retain()
Description copied from interface:ReferenceCountedIncreases the reference count by1.- Specified by:
retainin interfaceReferenceCounted
-
touch
public abstract ByteBuf touch()
Description copied from interface:ReferenceCountedRecords the current access location of this object for debugging purposes. If this object is determined to be leaked, the information recorded by this operation will be provided to you viaResourceLeakDetector. This method is a shortcut totouch(null).- Specified by:
touchin interfaceReferenceCounted
-
touch
public abstract ByteBuf touch(java.lang.Object hint)
Description copied from interface:ReferenceCountedRecords the current access location of this object with an additional arbitrary information for debugging purposes. If this object is determined to be leaked, the information recorded by this operation will be provided to you viaResourceLeakDetector.- Specified by:
touchin interfaceReferenceCounted
-
-