Class ReadOnlyByteBufferBuf

All Implemented Interfaces:
ByteBufConvertible, ReferenceCounted, Comparable<ByteBuf>
Direct Known Subclasses:
ReadOnlyUnsafeDirectByteBuf

class ReadOnlyByteBufferBuf extends AbstractReferenceCountedByteBuf
Read-only ByteBuf which wraps a read-only ByteBuffer.
  • Field Details

  • Constructor Details

  • Method Details

    • deallocate

      protected void deallocate()
      Description copied from class: AbstractReferenceCountedByteBuf
      Specified by:
      deallocate in class AbstractReferenceCountedByteBuf
    • isWritable

      public boolean isWritable()
      Description copied from class: ByteBuf
      Returns true if and only if (this.capacity - this.writerIndex) is greater than 0.
      Overrides:
      isWritable in class AbstractByteBuf
    • isWritable

      public boolean isWritable(int numBytes)
      Description copied from class: ByteBuf
      Returns true if and only if this buffer has enough room to allow writing the specified number of elements.
      Overrides:
      isWritable in class AbstractByteBuf
    • ensureWritable

      public ByteBuf ensureWritable(int minWritableBytes)
      Description copied from class: ByteBuf
      Expands the buffer ByteBuf.capacity() to make sure the number of writable bytes is equal to or greater than the specified value. If there are enough writable bytes in this buffer, this method returns with no side effect.
      Overrides:
      ensureWritable in class AbstractByteBuf
      Parameters:
      minWritableBytes - the expected minimum number of writable bytes
      See Also:
    • ensureWritable

      public int ensureWritable(int minWritableBytes, boolean force)
      Description copied from class: ByteBuf
      Expands the buffer ByteBuf.capacity() to make sure the number of writable bytes is equal to or greater than the specified value. Unlike ByteBuf.ensureWritable(int), this method returns a status code.
      Overrides:
      ensureWritable in class AbstractByteBuf
      Parameters:
      minWritableBytes - the expected minimum number of writable bytes
      force - When ByteBuf.writerIndex() + minWritableBytes > ByteBuf.maxCapacity():
      • true - the capacity of the buffer is expanded to ByteBuf.maxCapacity()
      • false - the capacity of the buffer is unchanged
      Returns:
      0 if the buffer has enough writable bytes, and its capacity is unchanged. 1 if the buffer does not have enough bytes, and its capacity is unchanged. 2 if the buffer has enough writable bytes, and its capacity has been increased. 3 if the buffer does not have enough bytes, but its capacity has been increased to its maximum.
    • getByte

      public byte getByte(int index)
      Description copied from class: ByteBuf
      Gets a byte at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Overrides:
      getByte in class AbstractByteBuf
    • _getByte

      protected byte _getByte(int index)
      Specified by:
      _getByte in class AbstractByteBuf
    • getShort

      public short getShort(int index)
      Description copied from class: ByteBuf
      Gets a 16-bit short integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Overrides:
      getShort in class AbstractByteBuf
    • _getShort

      protected short _getShort(int index)
      Specified by:
      _getShort in class AbstractByteBuf
    • getShortLE

      public short getShortLE(int index)
      Description copied from class: ByteBuf
      Gets a 16-bit short integer at the specified absolute index in this buffer in Little Endian Byte Order. This method does not modify readerIndex or writerIndex of this buffer.
      Overrides:
      getShortLE in class AbstractByteBuf
    • _getShortLE

      protected short _getShortLE(int index)
      Specified by:
      _getShortLE in class AbstractByteBuf
    • getUnsignedMedium

      public int getUnsignedMedium(int index)
      Description copied from class: ByteBuf
      Gets an unsigned 24-bit medium integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Overrides:
      getUnsignedMedium in class AbstractByteBuf
    • _getUnsignedMedium

      protected int _getUnsignedMedium(int index)
      Specified by:
      _getUnsignedMedium in class AbstractByteBuf
    • getUnsignedMediumLE

      public int getUnsignedMediumLE(int index)
      Description copied from class: ByteBuf
      Gets an unsigned 24-bit medium integer at the specified absolute index in this buffer in Little Endian Byte Order. This method does not modify readerIndex or writerIndex of this buffer.
      Overrides:
      getUnsignedMediumLE in class AbstractByteBuf
    • _getUnsignedMediumLE

      protected int _getUnsignedMediumLE(int index)
      Specified by:
      _getUnsignedMediumLE in class AbstractByteBuf
    • getInt

      public int getInt(int index)
      Description copied from class: ByteBuf
      Gets a 32-bit integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Overrides:
      getInt in class AbstractByteBuf
    • _getInt

      protected int _getInt(int index)
      Specified by:
      _getInt in class AbstractByteBuf
    • getIntLE

      public int getIntLE(int index)
      Description copied from class: ByteBuf
      Gets a 32-bit integer at the specified absolute index in this buffer with Little Endian Byte Order. This method does not modify readerIndex or writerIndex of this buffer.
      Overrides:
      getIntLE in class AbstractByteBuf
    • _getIntLE

      protected int _getIntLE(int index)
      Specified by:
      _getIntLE in class AbstractByteBuf
    • getLong

      public long getLong(int index)
      Description copied from class: ByteBuf
      Gets a 64-bit long integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Overrides:
      getLong in class AbstractByteBuf
    • _getLong

      protected long _getLong(int index)
      Specified by:
      _getLong in class AbstractByteBuf
    • getLongLE

      public long getLongLE(int index)
      Description copied from class: ByteBuf
      Gets a 64-bit long integer at the specified absolute index in this buffer in Little Endian Byte Order. This method does not modify readerIndex or writerIndex of this buffer.
      Overrides:
      getLongLE in class AbstractByteBuf
    • _getLongLE

      protected long _getLongLE(int index)
      Specified by:
      _getLongLE in class AbstractByteBuf
    • getBytes

      public ByteBuf getBytes(int index, ByteBuf dst, int dstIndex, int length)
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified destination starting at the specified absolute index. This method does not modify readerIndex or writerIndex of both the source (i.e. this) and the destination.
      Specified by:
      getBytes in class ByteBuf
      Parameters:
      dstIndex - the first index of the destination
      length - the number of bytes to transfer
    • readBytes

      public ByteBuf readBytes(ByteBuf dst, int dstIndex, int length)
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified destination starting at the current readerIndex and increases the readerIndex by the number of the transferred bytes (= length).
      Overrides:
      readBytes in class AbstractByteBuf
      Parameters:
      dstIndex - the first index of the destination
      length - the number of bytes to transfer
    • getBytes

      protected ByteBuf getBytes(int index, ByteBuf dst, int dstIndex, int length, boolean internal)
    • getBytes

      public ByteBuf getBytes(int index, byte[] dst, int dstIndex, int length)
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified destination starting at the specified absolute index. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getBytes in class ByteBuf
      Parameters:
      dstIndex - the first index of the destination
      length - the number of bytes to transfer
    • readBytes

      public ByteBuf readBytes(byte[] dst, int dstIndex, int length)
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified destination starting at the current readerIndex and increases the readerIndex by the number of the transferred bytes (= length).
      Overrides:
      readBytes in class AbstractByteBuf
      Parameters:
      dstIndex - the first index of the destination
      length - the number of bytes to transfer
    • getBytes

      protected ByteBuf getBytes(int index, byte[] dst, int dstIndex, int length, boolean internal)
    • getBytes

      public ByteBuf getBytes(int index, ByteBuffer dst)
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified destination starting at the specified absolute index until the destination's position reaches its limit. This method does not modify readerIndex or writerIndex of this buffer while the destination's position will be increased.
      Specified by:
      getBytes in class ByteBuf
    • readBytes

      public ByteBuf readBytes(ByteBuffer dst)
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified destination starting at the current readerIndex until the destination's position reaches its limit, and increases the readerIndex by the number of the transferred bytes.
      Overrides:
      readBytes in class AbstractByteBuf
    • getBytes

      private ByteBuf getBytes(int index, ByteBuffer dst, boolean internal)
    • setByte

      public ByteBuf setByte(int index, int value)
      Description copied from class: ByteBuf
      Sets the specified byte at the specified absolute index in this buffer. The 24 high-order bits of the specified value are ignored. This method does not modify readerIndex or writerIndex of this buffer.
      Overrides:
      setByte in class AbstractByteBuf
    • _setByte

      protected void _setByte(int index, int value)
      Specified by:
      _setByte in class AbstractByteBuf
    • setShort

      public ByteBuf setShort(int index, int value)
      Description copied from class: ByteBuf
      Sets the specified 16-bit short integer at the specified absolute index in this buffer. The 16 high-order bits of the specified value are ignored. This method does not modify readerIndex or writerIndex of this buffer.
      Overrides:
      setShort in class AbstractByteBuf
    • _setShort

      protected void _setShort(int index, int value)
      Specified by:
      _setShort in class AbstractByteBuf
    • setShortLE

      public ByteBuf setShortLE(int index, int value)
      Description copied from class: ByteBuf
      Sets the specified 16-bit short integer at the specified absolute index in this buffer with the Little Endian Byte Order. The 16 high-order bits of the specified value are ignored. This method does not modify readerIndex or writerIndex of this buffer.
      Overrides:
      setShortLE in class AbstractByteBuf
    • _setShortLE

      protected void _setShortLE(int index, int value)
      Specified by:
      _setShortLE in class AbstractByteBuf
    • setMedium

      public ByteBuf setMedium(int index, int value)
      Description copied from class: ByteBuf
      Sets the specified 24-bit medium integer at the specified absolute index in this buffer. Please note that the most significant byte is ignored in the specified value. This method does not modify readerIndex or writerIndex of this buffer.
      Overrides:
      setMedium in class AbstractByteBuf
    • _setMedium

      protected void _setMedium(int index, int value)
      Specified by:
      _setMedium in class AbstractByteBuf
    • setMediumLE

      public ByteBuf setMediumLE(int index, int value)
      Description copied from class: ByteBuf
      Sets the specified 24-bit medium integer at the specified absolute index in this buffer in the Little Endian Byte Order. Please note that the most significant byte is ignored in the specified value. This method does not modify readerIndex or writerIndex of this buffer.
      Overrides:
      setMediumLE in class AbstractByteBuf
    • _setMediumLE

      protected void _setMediumLE(int index, int value)
      Specified by:
      _setMediumLE in class AbstractByteBuf
    • setInt

      public ByteBuf setInt(int index, int value)
      Description copied from class: ByteBuf
      Sets the specified 32-bit integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Overrides:
      setInt in class AbstractByteBuf
    • _setInt

      protected void _setInt(int index, int value)
      Specified by:
      _setInt in class AbstractByteBuf
    • setIntLE

      public ByteBuf setIntLE(int index, int value)
      Description copied from class: ByteBuf
      Sets the specified 32-bit integer at the specified absolute index in this buffer with Little Endian byte order . This method does not modify readerIndex or writerIndex of this buffer.
      Overrides:
      setIntLE in class AbstractByteBuf
    • _setIntLE

      protected void _setIntLE(int index, int value)
      Specified by:
      _setIntLE in class AbstractByteBuf
    • setLong

      public ByteBuf setLong(int index, long value)
      Description copied from class: ByteBuf
      Sets the specified 64-bit long integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Overrides:
      setLong in class AbstractByteBuf
    • _setLong

      protected void _setLong(int index, long value)
      Specified by:
      _setLong in class AbstractByteBuf
    • setLongLE

      public ByteBuf setLongLE(int index, long value)
      Description copied from class: ByteBuf
      Sets the specified 64-bit long integer at the specified absolute index in this buffer in Little Endian Byte Order. This method does not modify readerIndex or writerIndex of this buffer.
      Overrides:
      setLongLE in class AbstractByteBuf
    • _setLongLE

      protected void _setLongLE(int index, long value)
      Specified by:
      _setLongLE in class AbstractByteBuf
    • capacity

      public int capacity()
      Description copied from class: ByteBuf
      Returns the number of bytes (octets) this buffer can contain.
      Specified by:
      capacity in class ByteBuf
    • capacity

      public ByteBuf capacity(int newCapacity)
      Description copied from class: ByteBuf
      Adjusts the capacity of this buffer. If the newCapacity is less than the current capacity, the content of this buffer is truncated. If the newCapacity is greater than the current capacity, the buffer is appended with unspecified data whose length is (newCapacity - currentCapacity).
      Specified by:
      capacity in class ByteBuf
    • alloc

      public ByteBufAllocator alloc()
      Description copied from class: ByteBuf
      Returns the ByteBufAllocator which created this buffer.
      Specified by:
      alloc in class ByteBuf
    • order

      public ByteOrder order()
      Description copied from class: ByteBuf
      Returns the endianness of this buffer.
      Specified by:
      order in class ByteBuf
    • unwrap

      public ByteBuf unwrap()
      Description copied from class: ByteBuf
      Return the underlying buffer instance if this buffer is a wrapper of another buffer.
      Specified by:
      unwrap in class ByteBuf
      Returns:
      null if this buffer is not a wrapper
    • isReadOnly

      public boolean isReadOnly()
      Description copied from class: ByteBuf
      Returns true if and only if this buffer is read-only.
      Overrides:
      isReadOnly in class AbstractByteBuf
    • isDirect

      public boolean isDirect()
      Description copied from class: ByteBuf
      Returns true if and only if this buffer is backed by an NIO direct buffer.
      Specified by:
      isDirect in class ByteBuf
    • getBytes

      public ByteBuf getBytes(int index, OutputStream out, int length) throws IOException
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified stream starting at the specified absolute index. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getBytes in class ByteBuf
      Parameters:
      length - the number of bytes to transfer
      Throws:
      IOException - if the specified stream threw an exception during I/O
    • readBytes

      public ByteBuf readBytes(OutputStream out, int length) throws IOException
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified stream starting at the current readerIndex.
      Overrides:
      readBytes in class AbstractByteBuf
      Parameters:
      length - the number of bytes to transfer
      Throws:
      IOException - if the specified stream threw an exception during I/O
    • getBytes

      private ByteBuf getBytes(int index, OutputStream out, int length, boolean internal) throws IOException
      Throws:
      IOException
    • getBytes

      public int getBytes(int index, GatheringByteChannel out, int length) throws IOException
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified channel starting at the specified absolute index. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getBytes in class ByteBuf
      Parameters:
      length - the maximum number of bytes to transfer
      Returns:
      the actual number of bytes written out to the specified channel
      Throws:
      IOException - if the specified channel threw an exception during I/O
    • readBytes

      public int readBytes(GatheringByteChannel out, int length) throws IOException
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified stream starting at the current readerIndex.
      Overrides:
      readBytes in class AbstractByteBuf
      Parameters:
      length - the maximum number of bytes to transfer
      Returns:
      the actual number of bytes written out to the specified channel
      Throws:
      IOException - if the specified channel threw an exception during I/O
    • getBytes

      private int getBytes(int index, GatheringByteChannel out, int length, boolean internal) throws IOException
      Throws:
      IOException
    • getBytes

      public int getBytes(int index, FileChannel out, long position, int length) throws IOException
      Description copied from class: ByteBuf
      Transfers this buffer's data starting at the specified absolute index to the specified channel starting at the given file position. This method does not modify readerIndex or writerIndex of this buffer. This method does not modify the channel's position.
      Specified by:
      getBytes in class ByteBuf
      Parameters:
      position - the file position at which the transfer is to begin
      length - the maximum number of bytes to transfer
      Returns:
      the actual number of bytes written out to the specified channel
      Throws:
      IOException - if the specified channel threw an exception during I/O
    • readBytes

      public int readBytes(FileChannel out, long position, int length) throws IOException
      Description copied from class: ByteBuf
      Transfers this buffer's data starting at the current readerIndex to the specified channel starting at the given file position. This method does not modify the channel's position.
      Overrides:
      readBytes in class AbstractByteBuf
      Parameters:
      position - the file position at which the transfer is to begin
      length - the maximum number of bytes to transfer
      Returns:
      the actual number of bytes written out to the specified channel
      Throws:
      IOException - if the specified channel threw an exception during I/O
    • getBytes

      private int getBytes(int index, FileChannel out, long position, int length, boolean internal) throws IOException
      Throws:
      IOException
    • setBytes

      public ByteBuf setBytes(int index, ByteBuf src, int srcIndex, int length)
      Description copied from class: ByteBuf
      Transfers the specified source buffer's data to this buffer starting at the specified absolute index. This method does not modify readerIndex or writerIndex of both the source (i.e. this) and the destination.
      Specified by:
      setBytes in class ByteBuf
      Parameters:
      srcIndex - the first index of the source
      length - the number of bytes to transfer
    • setBytes

      public ByteBuf setBytes(int index, byte[] src, int srcIndex, int length)
      Description copied from class: ByteBuf
      Transfers the specified source array's data to this buffer starting at the specified absolute index. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      setBytes in class ByteBuf
    • setBytes

      public ByteBuf setBytes(int index, ByteBuffer src)
      Description copied from class: ByteBuf
      Transfers the specified source buffer's data to this buffer starting at the specified absolute index until the source buffer's position reaches its limit. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      setBytes in class ByteBuf
    • setBytes

      public int setBytes(int index, InputStream in, int length) throws IOException
      Description copied from class: ByteBuf
      Transfers the content of the specified source stream to this buffer starting at the specified absolute index. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      setBytes in class ByteBuf
      Parameters:
      length - the number of bytes to transfer
      Returns:
      the actual number of bytes read in from the specified channel. -1 if the specified InputStream reached EOF.
      Throws:
      IOException - if the specified stream threw an exception during I/O
    • setBytes

      public int setBytes(int index, ScatteringByteChannel in, int length) throws IOException
      Description copied from class: ByteBuf
      Transfers the content of the specified source channel to this buffer starting at the specified absolute index. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      setBytes in class ByteBuf
      Parameters:
      length - the maximum number of bytes to transfer
      Returns:
      the actual number of bytes read in from the specified channel. -1 if the specified channel is closed or it reached EOF.
      Throws:
      IOException - if the specified channel threw an exception during I/O
    • setBytes

      public int setBytes(int index, FileChannel in, long position, int length) throws IOException
      Description copied from class: ByteBuf
      Transfers the content of the specified source channel starting at the given file position to this buffer starting at the specified absolute index. This method does not modify readerIndex or writerIndex of this buffer. This method does not modify the channel's position.
      Specified by:
      setBytes in class ByteBuf
      Parameters:
      position - the file position at which the transfer is to begin
      length - the maximum number of bytes to transfer
      Returns:
      the actual number of bytes read in from the specified channel. -1 if the specified channel is closed or it reached EOF.
      Throws:
      IOException - if the specified channel threw an exception during I/O
    • internalNioBuffer

      protected final ByteBuffer internalNioBuffer()
    • copy

      public ByteBuf copy(int index, int length)
      Description copied from class: ByteBuf
      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 modify readerIndex or writerIndex of this buffer.
      Specified by:
      copy in class ByteBuf
    • nioBufferCount

      public int nioBufferCount()
      Description copied from class: ByteBuf
      Returns the maximum number of NIO ByteBuffers that consist this buffer. Note that ByteBuf.nioBuffers() or ByteBuf.nioBuffers(int, int) might return a less number of ByteBuffers.
      Specified by:
      nioBufferCount in class ByteBuf
      Returns:
      -1 if this buffer has no underlying ByteBuffer. the number of the underlying ByteBuffers if this buffer has at least one underlying ByteBuffer. Note that this method does not return 0 to avoid confusion.
      See Also:
    • nioBuffers

      public ByteBuffer[] nioBuffers(int index, int length)
      Description copied from class: ByteBuf
      Exposes this buffer's bytes as an NIO ByteBuffer's for the specified index and length The returned buffer either share or contains the copied content of this buffer, while changing the position and limit of the returned NIO buffer does not affect the indexes and marks of this buffer. This method does not modify readerIndex or writerIndex of this buffer. Please note that the returned NIO buffer will not see the changes of this buffer if this buffer is a dynamic buffer and it adjusted its capacity.
      Specified by:
      nioBuffers in class ByteBuf
      See Also:
    • nioBuffer

      public ByteBuffer nioBuffer(int index, int length)
      Description copied from class: ByteBuf
      Exposes this buffer's sub-region as an NIO ByteBuffer. The returned buffer either share or contains the copied content of this buffer, while changing the position and limit of the returned NIO buffer does not affect the indexes and marks of this buffer. This method does not modify readerIndex or writerIndex of this buffer. Please note that the returned NIO buffer will not see the changes of this buffer if this buffer is a dynamic buffer and it adjusted its capacity.
      Specified by:
      nioBuffer in class ByteBuf
      See Also:
    • internalNioBuffer

      public ByteBuffer internalNioBuffer(int index, int length)
      Description copied from class: ByteBuf
      Internal use only: Exposes the internal NIO buffer.
      Specified by:
      internalNioBuffer in class ByteBuf
    • isContiguous

      public final boolean isContiguous()
      Description copied from class: ByteBuf
      Returns true if this ByteBuf implementation is backed by a single memory region. Composite buffer implementations must return false even if they currently hold ≤ 1 components. For buffers that return true, it's guaranteed that a successful call to ByteBuf.discardReadBytes() will increase the value of ByteBuf.maxFastWritableBytes() by the current readerIndex.

      This method will return false by default, and a false return value does not necessarily mean that the implementation is composite or that it is not backed by a single memory region.

      Overrides:
      isContiguous in class ByteBuf
    • hasArray

      public boolean hasArray()
      Description copied from class: ByteBuf
      Returns true if and only if this buffer has a backing byte array. If this method returns true, you can safely call ByteBuf.array() and ByteBuf.arrayOffset().
      Specified by:
      hasArray in class ByteBuf
    • array

      public byte[] array()
      Description copied from class: ByteBuf
      Returns the backing byte array of this buffer.
      Specified by:
      array in class ByteBuf
    • arrayOffset

      public int arrayOffset()
      Description copied from class: ByteBuf
      Returns the offset of the first byte within the backing byte array of this buffer.
      Specified by:
      arrayOffset in class ByteBuf
    • hasMemoryAddress

      public boolean hasMemoryAddress()
      Description copied from class: ByteBuf
      Returns true if and only if this buffer has a reference to the low-level memory address that points to the backing data.
      Specified by:
      hasMemoryAddress in class ByteBuf
    • memoryAddress

      public long memoryAddress()
      Description copied from class: ByteBuf
      Returns the low-level memory address that point to the first byte of ths backing data.
      Specified by:
      memoryAddress in class ByteBuf
    • nioBuffer

      private ByteBuffer nioBuffer(boolean internal)
    • duplicate

      public ByteBuf duplicate()
      Description copied from class: ByteBuf
      Returns a buffer which shares the whole region of this buffer. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks. This method does not modify readerIndex or writerIndex of this buffer.

      The reader and writer marks will not be duplicated. Also be aware that this method will NOT call ByteBuf.retain() and so the reference count will NOT be increased.

      Overrides:
      duplicate in class AbstractByteBuf
      Returns:
      A buffer whose readable content is equivalent to the buffer returned by ByteBuf.slice(). However this buffer will share the capacity of the underlying buffer, and therefore allows access to all of the underlying content if necessary.
    • slice

      public ByteBuf slice(int index, int length)
      Description copied from class: ByteBuf
      Returns a slice of this buffer's sub-region. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks. This method does not modify readerIndex or writerIndex of this buffer.

      Also be aware that this method will NOT call ByteBuf.retain() and so the reference count will NOT be increased.

      Overrides:
      slice in class AbstractByteBuf
    • asReadOnly

      public ByteBuf asReadOnly()
      Description copied from class: ByteBuf
      Returns a read-only version of this buffer.
      Overrides:
      asReadOnly in class AbstractByteBuf