Class PacketBuffer

  • All Implemented Interfaces:
    java.lang.Comparable<ByteBuf>

    public class PacketBuffer
    extends ByteBuf
    + This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code. Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!" Mod Coder Pack v9.18 deobfuscation configs are (c) Copyright by the MCP Team EaglercraftX 1.8 patch files are (c) 2022-2023 LAX1DUDE. All Rights Reserved. WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES NORMALLY FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED TO SHARE, DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE SOFTWARE IN THIS REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR. NOT FOR COMMERCIAL OR MALICIOUS USE (please read the 'LICENSE' file this repo's root directory for more info)
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      byte[] array()
      Returns the backing byte array of this buffer.
      int arrayOffset()
      Returns the offset of the first byte within the backing byte array of this buffer.
      int bytesBefore​(byte parByte1)
      Locates the first occurrence of the specified value in this buffer.
      int bytesBefore​(int i, byte b0)
      Locates the first occurrence of the specified value in this buffer.
      int bytesBefore​(int i, int j, byte b0)
      Locates the first occurrence of the specified value in this buffer.
      int capacity()
      Returns the number of bytes (octets) this buffer can contain.
      ByteBuf capacity​(int i)
      Adjusts the capacity of this buffer.
      ByteBuf clear()
      Sets the readerIndex and writerIndex of this buffer to 0.
      int compareTo​(ByteBuf bytebuf)
      Compares the content of the specified buffer to the content of this buffer.
      ByteBuf copy()
      Returns a copy of this buffer's readable bytes.
      ByteBuf copy​(int i, int j)
      Returns a copy of this buffer's sub-region.
      ByteBuf discardReadBytes()
      Discards the bytes between the 0th index and readerIndex.
      ByteBuf discardSomeReadBytes()
      Similar to ByteBuf.discardReadBytes() except that this method might discard some, all, or none of read bytes depending on its internal implementation to reduce overall memory bandwidth consumption at the cost of potentially additional memory consumption.
      ByteBuf duplicate()
      Returns a buffer which shares the whole region of this buffer.
      ByteBuf ensureWritable​(int parInt1)
      Makes sure the number of the writable bytes is equal to or greater than the specified value.
      int ensureWritable​(int i, boolean flag)
      Tries to make sure the number of the writable bytes is equal to or greater than the specified value.
      boolean equals​(java.lang.Object object)
      Determines if the content of the specified buffer is identical to the content of this array.
      boolean getBoolean​(int parInt1)
      Gets a boolean at the specified absolute (@code index) in this buffer.
      byte getByte​(int parInt1)
      Gets a byte at the specified absolute index in this buffer.
      ByteBuf getBytes​(int i, byte[] abyte)
      Transfers this buffer's data to the specified destination starting at the specified absolute index.
      ByteBuf getBytes​(int i, byte[] abyte, int j, int k)
      Transfers this buffer's data to the specified destination starting at the specified absolute index.
      ByteBuf getBytes​(int parInt1, java.io.OutputStream parOutputStream, int parInt2)
      Transfers this buffer's data to the specified stream starting at the specified absolute index.
      ByteBuf getBytes​(int i, java.nio.ByteBuffer bytebuffer)
      Transfers this buffer's data to the specified destination starting at the specified absolute index until the destination's position reaches its limit.
      ByteBuf getBytes​(int parInt1, ByteBuf parByteBuf)
      Transfers this buffer's data to the specified destination starting at the specified absolute index until the destination becomes non-writable.
      ByteBuf getBytes​(int i, ByteBuf bytebuf, int j)
      Transfers this buffer's data to the specified destination starting at the specified absolute index.
      ByteBuf getBytes​(int i, ByteBuf bytebuf, int j, int k)
      Transfers this buffer's data to the specified destination starting at the specified absolute index.
      char getChar​(int parInt1)
      Gets a 2-byte UTF-16 character at the specified absolute index in this buffer.
      double getDouble​(int parInt1)
      Gets a 64-bit floating point number at the specified absolute index in this buffer.
      float getFloat​(int parInt1)
      Gets a 32-bit floating point number at the specified absolute index in this buffer.
      int getInt​(int parInt1)
      Gets a 32-bit integer at the specified absolute index in this buffer.
      long getLong​(int parInt1)
      Gets a 64-bit long integer at the specified absolute index in this buffer.
      int getMedium​(int parInt1)
      Gets a 24-bit medium integer at the specified absolute index in this buffer.
      short getShort​(int parInt1)
      Gets a 16-bit short integer at the specified absolute index in this buffer.
      short getUnsignedByte​(int parInt1)
      Gets an unsigned byte at the specified absolute index in this buffer.
      long getUnsignedInt​(int parInt1)
      Gets an unsigned 32-bit integer at the specified absolute index in this buffer.
      int getUnsignedMedium​(int parInt1)
      Gets an unsigned 24-bit medium integer at the specified absolute index in this buffer.
      int getUnsignedShort​(int parInt1)
      Gets an unsigned 16-bit short integer at the specified absolute index in this buffer.
      static int getVarIntSize​(int input)
      + Calculates the number of bytes required to fit the supplied int (0-5) if it were to be read/written using readVarIntFromBuffer or writeVarIntToBuffer
      boolean hasArray()
      Returns true if and only if this buffer has a backing byte array.
      int hashCode()
      Returns a hash code which was calculated from the content of this buffer.
      boolean hasMemoryAddress()
      Returns true if and only if this buffer has a reference to the low-level memory address that points to the backing data.
      int indexOf​(int parInt1, int parInt2, byte parByte1)
      Locates the first occurrence of the specified value in this buffer.
      java.nio.ByteBuffer internalNioBuffer​(int parInt1, int parInt2)
      Internal use only: Exposes the internal NIO buffer.
      boolean isDirect()
      Returns true if and only if this buffer is backed by an NIO direct buffer.
      boolean isReadable()
      Returns true if and only if (this.writerIndex - this.readerIndex) is greater than 0.
      boolean isReadable​(int i)
      Returns true if and only if this buffer contains equal to or more than the specified number of elements.
      boolean isWritable()
      Returns true if and only if (this.capacity - this.writerIndex) is greater than 0.
      boolean isWritable​(int i)
      Returns true if and only if this buffer has enough room to allow writing the specified number of elements.
      ByteBuf markReaderIndex()
      Marks the current readerIndex in this buffer.
      ByteBuf markWriterIndex()
      Marks the current writerIndex in this buffer.
      int maxCapacity()
      Returns the maximum allowed capacity of this buffer.
      int maxWritableBytes()
      Returns the maximum possible number of writable bytes, which is equal to (this.maxCapacity - this.writerIndex).
      long memoryAddress()
      Returns the low-level memory address that point to the first byte of ths backing data.
      java.nio.ByteBuffer nioBuffer()
      Exposes this buffer's readable bytes as an NIO ByteBuffer.
      java.nio.ByteBuffer nioBuffer​(int i, int j)
      Exposes this buffer's sub-region as an NIO ByteBuffer.
      int nioBufferCount()
      Returns the maximum number of NIO ByteBuffers that consist this buffer.
      java.nio.ByteBuffer[] nioBuffers()
      Exposes this buffer's readable bytes as an NIO ByteBuffer's.
      java.nio.ByteBuffer[] nioBuffers​(int i, int j)
      Exposes this buffer's bytes as an NIO ByteBuffer's for the specified index and length The returned buffer either share or contains the copied content of this buffer, while changing the position and limit of the returned NIO buffer does not affect the indexes and marks of this buffer.
      java.nio.ByteOrder order()
      Returns the endianness of this buffer.
      ByteBuf order​(java.nio.ByteOrder byteorder)
      Returns a buffer with the specified endianness which shares the whole region, indexes, and marks of this buffer.
      int readableBytes()
      Returns the number of readable bytes which is equal to (this.writerIndex - this.readerIndex).
      BlockPos readBlockPos()  
      boolean readBoolean()
      Gets a boolean at the current readerIndex and increases the readerIndex by 1 in this buffer.
      byte readByte()
      Gets a byte at the current readerIndex and increases the readerIndex by 1 in this buffer.
      byte[] readByteArray()  
      ByteBuf readBytes​(byte[] abyte)
      Transfers this buffer's data to the specified destination starting at the current readerIndex and increases the readerIndex by the number of the transferred bytes (= dst.length).
      ByteBuf readBytes​(byte[] abyte, int i, int j)
      Transfers this buffer's data to the specified destination starting at the current readerIndex and increases the readerIndex by the number of the transferred bytes (= length).
      ByteBuf readBytes​(int parInt1)
      Transfers this buffer's data to a newly created buffer starting at the current readerIndex and increases the readerIndex by the number of the transferred bytes (= length).
      ByteBuf readBytes​(java.io.OutputStream parOutputStream, int parInt1)
      Transfers this buffer's data to the specified stream starting at the current readerIndex.
      ByteBuf readBytes​(java.nio.ByteBuffer bytebuffer)
      Transfers this buffer's data to the specified destination starting at the current readerIndex until the destination's position reaches its limit, and increases the readerIndex by the number of the transferred bytes.
      ByteBuf readBytes​(ByteBuf bytebuf)
      Transfers this buffer's data to the specified destination starting at the current readerIndex until the destination becomes non-writable, and increases the readerIndex by the number of the transferred bytes.
      ByteBuf readBytes​(ByteBuf bytebuf, int i)
      Transfers this buffer's data to the specified destination starting at the current readerIndex and increases the readerIndex by the number of the transferred bytes (= length).
      ByteBuf readBytes​(ByteBuf bytebuf, int i, int j)
      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).
      char readChar()
      Gets a 2-byte UTF-16 character at the current readerIndex and increases the readerIndex by 2 in this buffer.
      IChatComponent readChatComponent()  
      double readDouble()
      Gets a 64-bit floating point number at the current readerIndex and increases the readerIndex by 8 in this buffer.
      <T extends java.lang.Enum<T>>
      T
      readEnumValue​(java.lang.Class<T> enumClass)  
      int readerIndex()
      Returns the readerIndex of this buffer.
      ByteBuf readerIndex​(int i)
      Sets the readerIndex of this buffer.
      float readFloat()
      Gets a 32-bit floating point number at the current readerIndex and increases the readerIndex by 4 in this buffer.
      int readInt()
      Gets a 32-bit integer at the current readerIndex and increases the readerIndex by 4 in this buffer.
      ItemStack readItemStackFromBuffer()
      + Reads an ItemStack from this buffer
      long readLong()
      Gets a 64-bit integer at the current readerIndex and increases the readerIndex by 8 in this buffer.
      int readMedium()
      Gets a 24-bit medium integer at the current readerIndex and increases the readerIndex by 3 in this buffer.
      NBTTagCompound readNBTTagCompoundFromBuffer()
      + Reads a compressed NBTTagCompound from this buffer
      short readShort()
      Gets a 16-bit short integer at the current readerIndex and increases the readerIndex by 2 in this buffer.
      ByteBuf readSlice​(int parInt1)
      Returns a new slice of this buffer's sub-region starting at the current readerIndex and increases the readerIndex by the size of the new slice (= length).
      java.lang.String readStringFromBuffer​(int maxLength)
      + Reads a string from this buffer.
      short readUnsignedByte()
      Gets an unsigned byte at the current readerIndex and increases the readerIndex by 1 in this buffer.
      long readUnsignedInt()
      Gets an unsigned 32-bit integer at the current readerIndex and increases the readerIndex by 4 in this buffer.
      int readUnsignedMedium()
      Gets an unsigned 24-bit medium integer at the current readerIndex and increases the readerIndex by 3 in this buffer.
      int readUnsignedShort()
      Gets an unsigned 16-bit short integer at the current readerIndex and increases the readerIndex by 2 in this buffer.
      EaglercraftUUID readUuid()  
      int readVarIntFromBuffer()
      + Reads a compressed int from the buffer.
      long readVarLong()  
      ByteBuf resetReaderIndex()
      Repositions the current readerIndex to the marked readerIndex in this buffer.
      ByteBuf resetWriterIndex()
      Repositions the current writerIndex to the marked writerIndex in this buffer.
      ByteBuf setBoolean​(int parInt1, boolean parFlag)
      Sets the specified boolean at the specified absolute index in this buffer.
      ByteBuf setByte​(int parInt1, int parInt2)
      Sets the specified byte at the specified absolute index in this buffer.
      ByteBuf setBytes​(int i, byte[] abyte)
      Transfers the specified source array's data to this buffer starting at the specified absolute index.
      ByteBuf setBytes​(int i, byte[] abyte, int j, int k)
      Transfers the specified source array's data to this buffer starting at the specified absolute index.
      int setBytes​(int parInt1, java.io.InputStream parInputStream, int parInt2)
      Transfers the content of the specified source stream to this buffer starting at the specified absolute index.
      ByteBuf setBytes​(int i, java.nio.ByteBuffer bytebuffer)
      Transfers the specified source buffer's data to this buffer starting at the specified absolute index until the source buffer's position reaches its limit.
      ByteBuf setBytes​(int parInt1, ByteBuf parByteBuf)
      Transfers the specified source buffer's data to this buffer starting at the specified absolute index until the source buffer becomes unreadable.
      ByteBuf setBytes​(int i, ByteBuf bytebuf, int j)
      Transfers the specified source buffer's data to this buffer starting at the specified absolute index.
      ByteBuf setBytes​(int i, ByteBuf bytebuf, int j, int k)
      Transfers the specified source buffer's data to this buffer starting at the specified absolute index.
      ByteBuf setChar​(int parInt1, int parInt2)
      Sets the specified 2-byte UTF-16 character at the specified absolute index in this buffer.
      ByteBuf setDouble​(int parInt1, double parDouble1)
      Sets the specified 64-bit floating-point number at the specified absolute index in this buffer.
      ByteBuf setFloat​(int parInt1, float parFloat1)
      Sets the specified 32-bit floating-point number at the specified absolute index in this buffer.
      ByteBuf setIndex​(int parInt1, int parInt2)
      Sets the readerIndex and writerIndex of this buffer in one shot.
      ByteBuf setInt​(int parInt1, int parInt2)
      Sets the specified 32-bit integer at the specified absolute index in this buffer.
      ByteBuf setLong​(int parInt1, long parLong1)
      Sets the specified 64-bit long integer at the specified absolute index in this buffer.
      ByteBuf setMedium​(int parInt1, int parInt2)
      Sets the specified 24-bit medium integer at the specified absolute index in this buffer.
      ByteBuf setShort​(int parInt1, int parInt2)
      Sets the specified 16-bit short integer at the specified absolute index in this buffer.
      ByteBuf setZero​(int parInt1, int parInt2)
      Fills this buffer with NUL (0x00) starting at the specified absolute index.
      ByteBuf skipBytes​(int parInt1)
      Increases the current readerIndex by the specified length in this buffer.
      ByteBuf slice()
      Returns a slice of this buffer's readable bytes.
      ByteBuf slice​(int i, int j)
      Returns a slice of this buffer's sub-region.
      java.lang.String toString()
      Returns the string representation of this buffer.
      java.lang.String toString​(int i, int j, java.nio.charset.Charset charset)
      Decodes this buffer's sub-region into a string with the specified character set.
      java.lang.String toString​(java.nio.charset.Charset charset)
      Decodes this buffer's readable bytes into a string with the specified character set name.
      ByteBuf unwrap()
      Return the underlying buffer instance if this buffer is a wrapper of another buffer.
      int writableBytes()
      Returns the number of writable bytes which is equal to (this.capacity - this.writerIndex).
      void writeBlockPos​(BlockPos pos)  
      ByteBuf writeBoolean​(boolean parFlag)
      Sets the specified boolean at the current writerIndex and increases the writerIndex by 1 in this buffer.
      ByteBuf writeByte​(int parInt1)
      Sets the specified byte at the current writerIndex and increases the writerIndex by 1 in this buffer.
      void writeByteArray​(byte[] array)  
      ByteBuf writeBytes​(byte[] abyte)
      Transfers the specified source array's data to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes (= src.length).
      ByteBuf writeBytes​(byte[] abyte, int i, int j)
      Transfers the specified source array's data to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes (= length).
      int writeBytes​(java.io.InputStream parInputStream, int parInt1)
      Transfers the content of the specified stream to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes.
      ByteBuf writeBytes​(java.nio.ByteBuffer bytebuffer)
      Transfers the specified source buffer's data to this buffer starting at the current writerIndex until the source buffer's position reaches its limit, and increases the writerIndex by the number of the transferred bytes.
      ByteBuf writeBytes​(ByteBuf parByteBuf)
      Transfers the specified source buffer's data to this buffer starting at the current writerIndex until the source buffer becomes unreadable, and increases the writerIndex by the number of the transferred bytes.
      ByteBuf writeBytes​(ByteBuf bytebuf, int i)
      Transfers the specified source buffer's data to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes (= length).
      ByteBuf writeBytes​(ByteBuf bytebuf, int i, int j)
      Transfers the specified source buffer's data to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes (= length).
      ByteBuf writeChar​(int parInt1)
      Sets the specified 2-byte UTF-16 character at the current writerIndex and increases the writerIndex by 2 in this buffer.
      void writeChatComponent​(IChatComponent component)  
      ByteBuf writeDouble​(double parDouble1)
      Sets the specified 64-bit floating point number at the current writerIndex and increases the writerIndex by 8 in this buffer.
      void writeEnumValue​(java.lang.Enum<?> value)  
      ByteBuf writeFloat​(float parFloat1)
      Sets the specified 32-bit floating point number at the current writerIndex and increases the writerIndex by 4 in this buffer.
      ByteBuf writeInt​(int parInt1)
      Sets the specified 32-bit integer at the current writerIndex and increases the writerIndex by 4 in this buffer.
      void writeItemStackToBuffer​(ItemStack stack)
      + Writes the ItemStack's ID (short), then size (byte), then damage.
      ByteBuf writeLong​(long parLong1)
      Sets the specified 64-bit long integer at the current writerIndex and increases the writerIndex by 8 in this buffer.
      ByteBuf writeMedium​(int parInt1)
      Sets the specified 24-bit medium integer at the current writerIndex and increases the writerIndex by 3 in this buffer.
      void writeNBTTagCompoundToBuffer​(NBTTagCompound nbt)
      + Writes a compressed NBTTagCompound to this buffer
      int writerIndex()
      Returns the writerIndex of this buffer.
      ByteBuf writerIndex​(int i)
      Sets the writerIndex of this buffer.
      ByteBuf writeShort​(int parInt1)
      Sets the specified 16-bit short integer at the current writerIndex and increases the writerIndex by 2 in this buffer.
      PacketBuffer writeString​(java.lang.String string)  
      void writeUuid​(EaglercraftUUID uuid)  
      void writeVarIntToBuffer​(int input)
      + Writes a compressed int to the buffer.
      void writeVarLong​(long value)  
      ByteBuf writeZero​(int parInt1)
      Fills this buffer with NUL (0x00) starting at the current writerIndex and increases the writerIndex by the specified length.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • PacketBuffer

        public PacketBuffer​(ByteBuf wrapped)
    • Method Detail

      • getVarIntSize

        public static int getVarIntSize​(int input)
        + Calculates the number of bytes required to fit the supplied int (0-5) if it were to be read/written using readVarIntFromBuffer or writeVarIntToBuffer
      • writeByteArray

        public void writeByteArray​(byte[] array)
      • readByteArray

        public byte[] readByteArray()
      • readBlockPos

        public BlockPos readBlockPos()
      • writeBlockPos

        public void writeBlockPos​(BlockPos pos)
      • readChatComponent

        public IChatComponent readChatComponent()
                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • writeChatComponent

        public void writeChatComponent​(IChatComponent component)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • readEnumValue

        public <T extends java.lang.Enum<T>> T readEnumValue​(java.lang.Class<T> enumClass)
      • writeEnumValue

        public void writeEnumValue​(java.lang.Enum<?> value)
      • readVarIntFromBuffer

        public int readVarIntFromBuffer()
        + Reads a compressed int from the buffer. To do so it maximally reads 5 byte-sized chunks whose most significant bit dictates whether another byte should be read.
      • readVarLong

        public long readVarLong()
      • writeVarIntToBuffer

        public void writeVarIntToBuffer​(int input)
        + Writes a compressed int to the buffer. The smallest number of bytes to fit the passed int will be written. Of each such byte only 7 bits will be used to describe the actual value since its most significant bit dictates whether the next byte is part of that same int. Micro-optimization for int values that are expected to have values below 128.
      • writeVarLong

        public void writeVarLong​(long value)
      • writeNBTTagCompoundToBuffer

        public void writeNBTTagCompoundToBuffer​(NBTTagCompound nbt)
        + Writes a compressed NBTTagCompound to this buffer
      • readNBTTagCompoundFromBuffer

        public NBTTagCompound readNBTTagCompoundFromBuffer()
                                                    throws java.io.IOException
        + Reads a compressed NBTTagCompound from this buffer
        Throws:
        java.io.IOException
      • writeItemStackToBuffer

        public void writeItemStackToBuffer​(ItemStack stack)
        + Writes the ItemStack's ID (short), then size (byte), then damage. (short)
      • readItemStackFromBuffer

        public ItemStack readItemStackFromBuffer()
                                          throws java.io.IOException
        + Reads an ItemStack from this buffer
        Throws:
        java.io.IOException
      • readStringFromBuffer

        public java.lang.String readStringFromBuffer​(int maxLength)
        + Reads a string from this buffer. Expected parameter is maximum allowed string length. Will throw IOException if string length exceeds this value!
      • writeString

        public PacketBuffer writeString​(java.lang.String string)
      • 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 i)
        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
      • maxCapacity

        public int maxCapacity()
        Description copied from class: ByteBuf
        Returns the maximum allowed capacity of this buffer. If a user attempts to increase the capacity of this buffer beyond the maximum capacity using ByteBuf.capacity(int) or ByteBuf.ensureWritable(int), those methods will raise an IllegalArgumentException.
        Specified by:
        maxCapacity in class ByteBuf
      • order

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

        public ByteBuf order​(java.nio.ByteOrder byteorder)
        Description copied from class: ByteBuf
        Returns a buffer with the specified endianness which shares the whole region, indexes, and marks of this buffer. Modifying the content, the indexes, or the marks of the returned buffer or this buffer affects each other's content, indexes, and marks. If the specified endianness is identical to this buffer's byte order, this method can return this. This method does not modify readerIndex or writerIndex of this buffer.
        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
      • 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
      • readerIndex

        public int readerIndex()
        Description copied from class: ByteBuf
        Returns the readerIndex of this buffer.
        Specified by:
        readerIndex in class ByteBuf
      • readerIndex

        public ByteBuf readerIndex​(int i)
        Description copied from class: ByteBuf
        Sets the readerIndex of this buffer.
        Specified by:
        readerIndex in class ByteBuf
      • writerIndex

        public int writerIndex()
        Description copied from class: ByteBuf
        Returns the writerIndex of this buffer.
        Specified by:
        writerIndex in class ByteBuf
      • writerIndex

        public ByteBuf writerIndex​(int i)
        Description copied from class: ByteBuf
        Sets the writerIndex of this buffer.
        Specified by:
        writerIndex in class ByteBuf
      • setIndex

        public ByteBuf setIndex​(int parInt1,
                                int parInt2)
        Description copied from class: ByteBuf
        Sets the readerIndex and writerIndex of this buffer in one shot. This method is useful when you have to worry about the invocation order of ByteBuf.readerIndex(int) and ByteBuf.writerIndex(int) methods. For example, the following code will fail:
         // Create a buffer whose readerIndex, writerIndex and capacity are
         // 0, 0 and 8 respectively.
         ByteBuf buf = Unpooled.buffer(8);
        
         // IndexOutOfBoundsException is thrown because the specified
         // readerIndex (2) cannot be greater than the current writerIndex (0).
         buf.readerIndex(2);
         buf.writerIndex(4);
         
        The following code will also fail:
         // Create a buffer whose readerIndex, writerIndex and capacity are
         // 0, 8 and 8 respectively.
         ByteBuf buf = Unpooled.wrappedBuffer(new byte[8]);
        
         // readerIndex becomes 8.
         buf.readLong();
        
         // IndexOutOfBoundsException is thrown because the specified
         // writerIndex (4) cannot be less than the current readerIndex (8).
         buf.writerIndex(4);
         buf.readerIndex(2);
         
        By contrast, this method guarantees that it never throws an IndexOutOfBoundsException as long as the specified indexes meet basic constraints, regardless what the current index values of the buffer are:
         // No matter what the current state of the buffer is, the following
         // call always succeeds as long as the capacity of the buffer is not
         // less than 4.
         buf.setIndex(2, 4);
         
        Specified by:
        setIndex in class ByteBuf
      • readableBytes

        public int readableBytes()
        Description copied from class: ByteBuf
        Returns the number of readable bytes which is equal to (this.writerIndex - this.readerIndex).
        Specified by:
        readableBytes in class ByteBuf
      • writableBytes

        public int writableBytes()
        Description copied from class: ByteBuf
        Returns the number of writable bytes which is equal to (this.capacity - this.writerIndex).
        Specified by:
        writableBytes in class ByteBuf
      • maxWritableBytes

        public int maxWritableBytes()
        Description copied from class: ByteBuf
        Returns the maximum possible number of writable bytes, which is equal to (this.maxCapacity - this.writerIndex).
        Specified by:
        maxWritableBytes in class ByteBuf
      • isReadable

        public boolean isReadable()
        Description copied from class: ByteBuf
        Returns true if and only if (this.writerIndex - this.readerIndex) is greater than 0.
        Specified by:
        isReadable in class ByteBuf
      • isReadable

        public boolean isReadable​(int i)
        Description copied from class: ByteBuf
        Returns true if and only if this buffer contains equal to or more than the specified number of elements.
        Specified by:
        isReadable in class ByteBuf
      • isWritable

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

        public boolean isWritable​(int i)
        Description copied from class: ByteBuf
        Returns true if and only if this buffer has enough room to allow writing the specified number of elements.
        Specified by:
        isWritable in class ByteBuf
      • clear

        public ByteBuf clear()
        Description copied from class: ByteBuf
        Sets the readerIndex and writerIndex of this buffer to 0. This method is identical to setIndex(0, 0).

        Please note that the behavior of this method is different from that of NIO buffer, which sets the limit to the capacity of the buffer.

        Specified by:
        clear in class ByteBuf
      • markReaderIndex

        public ByteBuf markReaderIndex()
        Description copied from class: ByteBuf
        Marks the current readerIndex in this buffer. You can reposition the current readerIndex to the marked readerIndex by calling ByteBuf.resetReaderIndex(). The initial value of the marked readerIndex is 0.
        Specified by:
        markReaderIndex in class ByteBuf
      • resetReaderIndex

        public ByteBuf resetReaderIndex()
        Description copied from class: ByteBuf
        Repositions the current readerIndex to the marked readerIndex in this buffer.
        Specified by:
        resetReaderIndex in class ByteBuf
      • markWriterIndex

        public ByteBuf markWriterIndex()
        Description copied from class: ByteBuf
        Marks the current writerIndex in this buffer. You can reposition the current writerIndex to the marked writerIndex by calling ByteBuf.resetWriterIndex(). The initial value of the marked writerIndex is 0.
        Specified by:
        markWriterIndex in class ByteBuf
      • resetWriterIndex

        public ByteBuf resetWriterIndex()
        Description copied from class: ByteBuf
        Repositions the current writerIndex to the marked writerIndex in this buffer.
        Specified by:
        resetWriterIndex in class ByteBuf
      • discardReadBytes

        public ByteBuf discardReadBytes()
        Description copied from class: ByteBuf
        Discards the bytes between the 0th index and readerIndex. It moves the bytes between readerIndex and writerIndex to the 0th index, and sets readerIndex and writerIndex to 0 and oldWriterIndex - oldReaderIndex respectively.

        Please refer to the class documentation for more detailed explanation.

        Specified by:
        discardReadBytes in class ByteBuf
      • discardSomeReadBytes

        public ByteBuf discardSomeReadBytes()
        Description copied from class: ByteBuf
        Similar to ByteBuf.discardReadBytes() except that this method might discard some, all, or none of read bytes depending on its internal implementation to reduce overall memory bandwidth consumption at the cost of potentially additional memory consumption.
        Specified by:
        discardSomeReadBytes in class ByteBuf
      • ensureWritable

        public ByteBuf ensureWritable​(int parInt1)
        Description copied from class: ByteBuf
        Makes sure the number of the writable bytes is equal to or greater than the specified value. If there is enough writable bytes in this buffer, this method returns with no side effect. Otherwise, it raises an IllegalArgumentException.
        Specified by:
        ensureWritable in class ByteBuf
        Parameters:
        parInt1 - the expected minimum number of writable bytes
      • ensureWritable

        public int ensureWritable​(int i,
                                  boolean flag)
        Description copied from class: ByteBuf
        Tries to make sure the number of the writable bytes is equal to or greater than the specified value. Unlike ByteBuf.ensureWritable(int), this method does not raise an exception but returns a code.
        Specified by:
        ensureWritable in class ByteBuf
        Parameters:
        i - the expected minimum number of writable bytes
        flag - 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.
      • getBoolean

        public boolean getBoolean​(int parInt1)
        Description copied from class: ByteBuf
        Gets a boolean at the specified absolute (@code index) in this buffer. This method does not modify the readerIndex or writerIndex of this buffer.
        Specified by:
        getBoolean in class ByteBuf
      • getByte

        public byte getByte​(int parInt1)
        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.
        Specified by:
        getByte in class ByteBuf
      • getUnsignedByte

        public short getUnsignedByte​(int parInt1)
        Description copied from class: ByteBuf
        Gets an unsigned byte at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
        Specified by:
        getUnsignedByte in class ByteBuf
      • getShort

        public short getShort​(int parInt1)
        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.
        Specified by:
        getShort in class ByteBuf
      • getUnsignedShort

        public int getUnsignedShort​(int parInt1)
        Description copied from class: ByteBuf
        Gets an unsigned 16-bit short integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
        Specified by:
        getUnsignedShort in class ByteBuf
      • getMedium

        public int getMedium​(int parInt1)
        Description copied from class: ByteBuf
        Gets a 24-bit medium integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
        Specified by:
        getMedium in class ByteBuf
      • getUnsignedMedium

        public int getUnsignedMedium​(int parInt1)
        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.
        Specified by:
        getUnsignedMedium in class ByteBuf
      • getInt

        public int getInt​(int parInt1)
        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.
        Specified by:
        getInt in class ByteBuf
      • getUnsignedInt

        public long getUnsignedInt​(int parInt1)
        Description copied from class: ByteBuf
        Gets an unsigned 32-bit integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
        Specified by:
        getUnsignedInt in class ByteBuf
      • getLong

        public long getLong​(int parInt1)
        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.
        Specified by:
        getLong in class ByteBuf
      • getChar

        public char getChar​(int parInt1)
        Description copied from class: ByteBuf
        Gets a 2-byte UTF-16 character at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
        Specified by:
        getChar in class ByteBuf
      • getFloat

        public float getFloat​(int parInt1)
        Description copied from class: ByteBuf
        Gets a 32-bit floating point number at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
        Specified by:
        getFloat in class ByteBuf
      • getDouble

        public double getDouble​(int parInt1)
        Description copied from class: ByteBuf
        Gets a 64-bit floating point number at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
        Specified by:
        getDouble in class ByteBuf
      • getBytes

        public ByteBuf getBytes​(int parInt1,
                                ByteBuf parByteBuf)
        Description copied from class: ByteBuf
        Transfers this buffer's data to the specified destination starting at the specified absolute index until the destination becomes non-writable. This method is basically same with ByteBuf.getBytes(int, ByteBuf, int, int), except that this method increases the writerIndex of the destination by the number of the transferred bytes while ByteBuf.getBytes(int, ByteBuf, int, int) does not. This method does not modify readerIndex or writerIndex of the source buffer (i.e. this).
        Specified by:
        getBytes in class ByteBuf
      • getBytes

        public ByteBuf getBytes​(int i,
                                ByteBuf bytebuf,
                                int j)
        Description copied from class: ByteBuf
        Transfers this buffer's data to the specified destination starting at the specified absolute index. This method is basically same with ByteBuf.getBytes(int, ByteBuf, int, int), except that this method increases the writerIndex of the destination by the number of the transferred bytes while ByteBuf.getBytes(int, ByteBuf, int, int) does not. This method does not modify readerIndex or writerIndex of the source buffer (i.e. this).
        Specified by:
        getBytes in class ByteBuf
        j - the number of bytes to transfer
      • getBytes

        public ByteBuf getBytes​(int i,
                                ByteBuf bytebuf,
                                int j,
                                int k)
        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
        j - the first index of the destination
        k - the number of bytes to transfer
      • getBytes

        public ByteBuf getBytes​(int i,
                                byte[] abyte)
        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
      • getBytes

        public ByteBuf getBytes​(int i,
                                byte[] abyte,
                                int j,
                                int k)
        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
        j - the first index of the destination
        k - the number of bytes to transfer
      • getBytes

        public ByteBuf getBytes​(int i,
                                java.nio.ByteBuffer bytebuffer)
        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
      • getBytes

        public ByteBuf getBytes​(int parInt1,
                                java.io.OutputStream parOutputStream,
                                int parInt2)
                         throws java.io.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
        parInt2 - the number of bytes to transfer
        Throws:
        java.io.IOException - if the specified stream threw an exception during I/O
      • setBoolean

        public ByteBuf setBoolean​(int parInt1,
                                  boolean parFlag)
        Description copied from class: ByteBuf
        Sets the specified boolean at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
        Specified by:
        setBoolean in class ByteBuf
      • setByte

        public ByteBuf setByte​(int parInt1,
                               int parInt2)
        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.
        Specified by:
        setByte in class ByteBuf
      • setShort

        public ByteBuf setShort​(int parInt1,
                                int parInt2)
        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.
        Specified by:
        setShort in class ByteBuf
      • setMedium

        public ByteBuf setMedium​(int parInt1,
                                 int parInt2)
        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.
        Specified by:
        setMedium in class ByteBuf
      • setInt

        public ByteBuf setInt​(int parInt1,
                              int parInt2)
        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.
        Specified by:
        setInt in class ByteBuf
      • setLong

        public ByteBuf setLong​(int parInt1,
                               long parLong1)
        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.
        Specified by:
        setLong in class ByteBuf
      • setChar

        public ByteBuf setChar​(int parInt1,
                               int parInt2)
        Description copied from class: ByteBuf
        Sets the specified 2-byte UTF-16 character 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.
        Specified by:
        setChar in class ByteBuf
      • setFloat

        public ByteBuf setFloat​(int parInt1,
                                float parFloat1)
        Description copied from class: ByteBuf
        Sets the specified 32-bit floating-point number at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
        Specified by:
        setFloat in class ByteBuf
      • setDouble

        public ByteBuf setDouble​(int parInt1,
                                 double parDouble1)
        Description copied from class: ByteBuf
        Sets the specified 64-bit floating-point number at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
        Specified by:
        setDouble in class ByteBuf
      • setBytes

        public ByteBuf setBytes​(int parInt1,
                                ByteBuf parByteBuf)
        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 becomes unreadable. This method is basically same with ByteBuf.setBytes(int, ByteBuf, int, int), except that this method increases the readerIndex of the source buffer by the number of the transferred bytes while ByteBuf.setBytes(int, ByteBuf, int, int) does not. This method does not modify readerIndex or writerIndex of the source buffer (i.e. this).
        Specified by:
        setBytes in class ByteBuf
      • setBytes

        public ByteBuf setBytes​(int i,
                                ByteBuf bytebuf,
                                int j)
        Description copied from class: ByteBuf
        Transfers the specified source buffer's data to this buffer starting at the specified absolute index. This method is basically same with ByteBuf.setBytes(int, ByteBuf, int, int), except that this method increases the readerIndex of the source buffer by the number of the transferred bytes while ByteBuf.setBytes(int, ByteBuf, int, int) does not. This method does not modify readerIndex or writerIndex of the source buffer (i.e. this).
        Specified by:
        setBytes in class ByteBuf
        j - the number of bytes to transfer
      • setBytes

        public ByteBuf setBytes​(int i,
                                ByteBuf bytebuf,
                                int j,
                                int k)
        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
        j - the first index of the source
        k - the number of bytes to transfer
      • setBytes

        public ByteBuf setBytes​(int i,
                                byte[] abyte)
        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 i,
                                byte[] abyte,
                                int j,
                                int k)
        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 i,
                                java.nio.ByteBuffer bytebuffer)
        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 parInt1,
                            java.io.InputStream parInputStream,
                            int parInt2)
                     throws java.io.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
        parInt2 - the number of bytes to transfer
        Returns:
        the actual number of bytes read in from the specified channel. -1 if the specified channel is closed.
        Throws:
        java.io.IOException - if the specified stream threw an exception during I/O
      • setZero

        public ByteBuf setZero​(int parInt1,
                               int parInt2)
        Description copied from class: ByteBuf
        Fills this buffer with NUL (0x00) starting at the specified absolute index. This method does not modify readerIndex or writerIndex of this buffer.
        Specified by:
        setZero in class ByteBuf
        parInt2 - the number of NULs to write to the buffer
      • readBoolean

        public boolean readBoolean()
        Description copied from class: ByteBuf
        Gets a boolean at the current readerIndex and increases the readerIndex by 1 in this buffer.
        Specified by:
        readBoolean in class ByteBuf
      • readByte

        public byte readByte()
        Description copied from class: ByteBuf
        Gets a byte at the current readerIndex and increases the readerIndex by 1 in this buffer.
        Specified by:
        readByte in class ByteBuf
      • readUnsignedByte

        public short readUnsignedByte()
        Description copied from class: ByteBuf
        Gets an unsigned byte at the current readerIndex and increases the readerIndex by 1 in this buffer.
        Specified by:
        readUnsignedByte in class ByteBuf
      • readShort

        public short readShort()
        Description copied from class: ByteBuf
        Gets a 16-bit short integer at the current readerIndex and increases the readerIndex by 2 in this buffer.
        Specified by:
        readShort in class ByteBuf
      • readUnsignedShort

        public int readUnsignedShort()
        Description copied from class: ByteBuf
        Gets an unsigned 16-bit short integer at the current readerIndex and increases the readerIndex by 2 in this buffer.
        Specified by:
        readUnsignedShort in class ByteBuf
      • readMedium

        public int readMedium()
        Description copied from class: ByteBuf
        Gets a 24-bit medium integer at the current readerIndex and increases the readerIndex by 3 in this buffer.
        Specified by:
        readMedium in class ByteBuf
      • readUnsignedMedium

        public int readUnsignedMedium()
        Description copied from class: ByteBuf
        Gets an unsigned 24-bit medium integer at the current readerIndex and increases the readerIndex by 3 in this buffer.
        Specified by:
        readUnsignedMedium in class ByteBuf
      • readInt

        public int readInt()
        Description copied from class: ByteBuf
        Gets a 32-bit integer at the current readerIndex and increases the readerIndex by 4 in this buffer.
        Specified by:
        readInt in class ByteBuf
      • readUnsignedInt

        public long readUnsignedInt()
        Description copied from class: ByteBuf
        Gets an unsigned 32-bit integer at the current readerIndex and increases the readerIndex by 4 in this buffer.
        Specified by:
        readUnsignedInt in class ByteBuf
      • readLong

        public long readLong()
        Description copied from class: ByteBuf
        Gets a 64-bit integer at the current readerIndex and increases the readerIndex by 8 in this buffer.
        Specified by:
        readLong in class ByteBuf
      • readChar

        public char readChar()
        Description copied from class: ByteBuf
        Gets a 2-byte UTF-16 character at the current readerIndex and increases the readerIndex by 2 in this buffer.
        Specified by:
        readChar in class ByteBuf
      • readFloat

        public float readFloat()
        Description copied from class: ByteBuf
        Gets a 32-bit floating point number at the current readerIndex and increases the readerIndex by 4 in this buffer.
        Specified by:
        readFloat in class ByteBuf
      • readDouble

        public double readDouble()
        Description copied from class: ByteBuf
        Gets a 64-bit floating point number at the current readerIndex and increases the readerIndex by 8 in this buffer.
        Specified by:
        readDouble in class ByteBuf
      • readBytes

        public ByteBuf readBytes​(int parInt1)
        Description copied from class: ByteBuf
        Transfers this buffer's data to a newly created buffer starting at the current readerIndex and increases the readerIndex by the number of the transferred bytes (= length). The returned buffer's readerIndex and writerIndex are 0 and length respectively.
        Specified by:
        readBytes in class ByteBuf
        Parameters:
        parInt1 - the number of bytes to transfer
        Returns:
        the newly created buffer which contains the transferred bytes
      • readSlice

        public ByteBuf readSlice​(int parInt1)
        Description copied from class: ByteBuf
        Returns a new slice of this buffer's sub-region starting at the current readerIndex and increases the readerIndex by the size of the new slice (= length).

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

        Specified by:
        readSlice in class ByteBuf
        Parameters:
        parInt1 - the size of the new slice
        Returns:
        the newly created slice
      • readBytes

        public ByteBuf readBytes​(ByteBuf bytebuf)
        Description copied from class: ByteBuf
        Transfers this buffer's data to the specified destination starting at the current readerIndex until the destination becomes non-writable, and increases the readerIndex by the number of the transferred bytes. This method is basically same with ByteBuf.readBytes(ByteBuf, int, int), except that this method increases the writerIndex of the destination by the number of the transferred bytes while ByteBuf.readBytes(ByteBuf, int, int) does not.
        Specified by:
        readBytes in class ByteBuf
      • readBytes

        public ByteBuf readBytes​(ByteBuf bytebuf,
                                 int i)
        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). This method is basically same with ByteBuf.readBytes(ByteBuf, int, int), except that this method increases the writerIndex of the destination by the number of the transferred bytes (= length) while ByteBuf.readBytes(ByteBuf, int, int) does not.
        Specified by:
        readBytes in class ByteBuf
      • readBytes

        public ByteBuf readBytes​(ByteBuf bytebuf,
                                 int i,
                                 int j)
        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).
        Specified by:
        readBytes in class ByteBuf
        i - the first index of the destination
        j - the number of bytes to transfer
      • readBytes

        public ByteBuf readBytes​(byte[] abyte)
        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 (= dst.length).
        Specified by:
        readBytes in class ByteBuf
      • readBytes

        public ByteBuf readBytes​(byte[] abyte,
                                 int i,
                                 int j)
        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).
        Specified by:
        readBytes in class ByteBuf
        i - the first index of the destination
        j - the number of bytes to transfer
      • readBytes

        public ByteBuf readBytes​(java.nio.ByteBuffer bytebuffer)
        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.
        Specified by:
        readBytes in class ByteBuf
      • readBytes

        public ByteBuf readBytes​(java.io.OutputStream parOutputStream,
                                 int parInt1)
                          throws java.io.IOException
        Description copied from class: ByteBuf
        Transfers this buffer's data to the specified stream starting at the current readerIndex.
        Specified by:
        readBytes in class ByteBuf
        parInt1 - the number of bytes to transfer
        Throws:
        java.io.IOException - if the specified stream threw an exception during I/O
      • skipBytes

        public ByteBuf skipBytes​(int parInt1)
        Description copied from class: ByteBuf
        Increases the current readerIndex by the specified length in this buffer.
        Specified by:
        skipBytes in class ByteBuf
      • writeBoolean

        public ByteBuf writeBoolean​(boolean parFlag)
        Description copied from class: ByteBuf
        Sets the specified boolean at the current writerIndex and increases the writerIndex by 1 in this buffer.
        Specified by:
        writeBoolean in class ByteBuf
      • writeByte

        public ByteBuf writeByte​(int parInt1)
        Description copied from class: ByteBuf
        Sets the specified byte at the current writerIndex and increases the writerIndex by 1 in this buffer. The 24 high-order bits of the specified value are ignored.
        Specified by:
        writeByte in class ByteBuf
      • writeShort

        public ByteBuf writeShort​(int parInt1)
        Description copied from class: ByteBuf
        Sets the specified 16-bit short integer at the current writerIndex and increases the writerIndex by 2 in this buffer. The 16 high-order bits of the specified value are ignored.
        Specified by:
        writeShort in class ByteBuf
      • writeMedium

        public ByteBuf writeMedium​(int parInt1)
        Description copied from class: ByteBuf
        Sets the specified 24-bit medium integer at the current writerIndex and increases the writerIndex by 3 in this buffer.
        Specified by:
        writeMedium in class ByteBuf
      • writeInt

        public ByteBuf writeInt​(int parInt1)
        Description copied from class: ByteBuf
        Sets the specified 32-bit integer at the current writerIndex and increases the writerIndex by 4 in this buffer.
        Specified by:
        writeInt in class ByteBuf
      • writeLong

        public ByteBuf writeLong​(long parLong1)
        Description copied from class: ByteBuf
        Sets the specified 64-bit long integer at the current writerIndex and increases the writerIndex by 8 in this buffer.
        Specified by:
        writeLong in class ByteBuf
      • writeChar

        public ByteBuf writeChar​(int parInt1)
        Description copied from class: ByteBuf
        Sets the specified 2-byte UTF-16 character at the current writerIndex and increases the writerIndex by 2 in this buffer. The 16 high-order bits of the specified value are ignored.
        Specified by:
        writeChar in class ByteBuf
      • writeFloat

        public ByteBuf writeFloat​(float parFloat1)
        Description copied from class: ByteBuf
        Sets the specified 32-bit floating point number at the current writerIndex and increases the writerIndex by 4 in this buffer.
        Specified by:
        writeFloat in class ByteBuf
      • writeDouble

        public ByteBuf writeDouble​(double parDouble1)
        Description copied from class: ByteBuf
        Sets the specified 64-bit floating point number at the current writerIndex and increases the writerIndex by 8 in this buffer.
        Specified by:
        writeDouble in class ByteBuf
      • writeBytes

        public ByteBuf writeBytes​(ByteBuf parByteBuf)
        Description copied from class: ByteBuf
        Transfers the specified source buffer's data to this buffer starting at the current writerIndex until the source buffer becomes unreadable, and increases the writerIndex by the number of the transferred bytes. This method is basically same with ByteBuf.writeBytes(ByteBuf, int, int), except that this method increases the readerIndex of the source buffer by the number of the transferred bytes while ByteBuf.writeBytes(ByteBuf, int, int) does not.
        Specified by:
        writeBytes in class ByteBuf
      • writeBytes

        public ByteBuf writeBytes​(ByteBuf bytebuf,
                                  int i)
        Description copied from class: ByteBuf
        Transfers the specified source buffer's data to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes (= length). This method is basically same with ByteBuf.writeBytes(ByteBuf, int, int), except that this method increases the readerIndex of the source buffer by the number of the transferred bytes (= length) while ByteBuf.writeBytes(ByteBuf, int, int) does not.
        Specified by:
        writeBytes in class ByteBuf
        i - the number of bytes to transfer
      • writeBytes

        public ByteBuf writeBytes​(ByteBuf bytebuf,
                                  int i,
                                  int j)
        Description copied from class: ByteBuf
        Transfers the specified source buffer's data to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes (= length).
        Specified by:
        writeBytes in class ByteBuf
        i - the first index of the source
        j - the number of bytes to transfer
      • writeBytes

        public ByteBuf writeBytes​(byte[] abyte)
        Description copied from class: ByteBuf
        Transfers the specified source array's data to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes (= src.length).
        Specified by:
        writeBytes in class ByteBuf
      • writeBytes

        public ByteBuf writeBytes​(byte[] abyte,
                                  int i,
                                  int j)
        Description copied from class: ByteBuf
        Transfers the specified source array's data to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes (= length).
        Specified by:
        writeBytes in class ByteBuf
        i - the first index of the source
        j - the number of bytes to transfer
      • writeBytes

        public ByteBuf writeBytes​(java.nio.ByteBuffer bytebuffer)
        Description copied from class: ByteBuf
        Transfers the specified source buffer's data to this buffer starting at the current writerIndex until the source buffer's position reaches its limit, and increases the writerIndex by the number of the transferred bytes.
        Specified by:
        writeBytes in class ByteBuf
      • writeBytes

        public int writeBytes​(java.io.InputStream parInputStream,
                              int parInt1)
                       throws java.io.IOException
        Description copied from class: ByteBuf
        Transfers the content of the specified stream to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes.
        Specified by:
        writeBytes in class ByteBuf
        parInt1 - the number of bytes to transfer
        Returns:
        the actual number of bytes read in from the specified stream
        Throws:
        java.io.IOException - if the specified stream threw an exception during I/O
      • writeZero

        public ByteBuf writeZero​(int parInt1)
        Description copied from class: ByteBuf
        Fills this buffer with NUL (0x00) starting at the current writerIndex and increases the writerIndex by the specified length.
        Specified by:
        writeZero in class ByteBuf
        Parameters:
        parInt1 - the number of NULs to write to the buffer
      • indexOf

        public int indexOf​(int parInt1,
                           int parInt2,
                           byte parByte1)
        Description copied from class: ByteBuf
        Locates the first occurrence of the specified value in this buffer. The search takes place from the specified fromIndex (inclusive) to the specified toIndex (exclusive).

        If fromIndex is greater than toIndex, the search is performed in a reversed order.

        This method does not modify readerIndex or writerIndex of this buffer.

        Specified by:
        indexOf in class ByteBuf
        Returns:
        the absolute index of the first occurrence if found. -1 otherwise.
      • bytesBefore

        public int bytesBefore​(byte parByte1)
        Description copied from class: ByteBuf
        Locates the first occurrence of the specified value in this buffer. The search takes place from the current readerIndex (inclusive) to the current writerIndex (exclusive).

        This method does not modify readerIndex or writerIndex of this buffer.

        Specified by:
        bytesBefore in class ByteBuf
        Returns:
        the number of bytes between the current readerIndex and the first occurrence if found. -1 otherwise.
      • bytesBefore

        public int bytesBefore​(int i,
                               byte b0)
        Description copied from class: ByteBuf
        Locates the first occurrence of the specified value in this buffer. The search starts from the current readerIndex (inclusive) and lasts for the specified length.

        This method does not modify readerIndex or writerIndex of this buffer.

        Specified by:
        bytesBefore in class ByteBuf
        Returns:
        the number of bytes between the current readerIndex and the first occurrence if found. -1 otherwise.
      • bytesBefore

        public int bytesBefore​(int i,
                               int j,
                               byte b0)
        Description copied from class: ByteBuf
        Locates the first occurrence of the specified value in this buffer. The search starts from the specified index (inclusive) and lasts for the specified length.

        This method does not modify readerIndex or writerIndex of this buffer.

        Specified by:
        bytesBefore in class ByteBuf
        Returns:
        the number of bytes between the specified index and the first occurrence if found. -1 otherwise.
      • copy

        public ByteBuf copy()
        Description copied from class: ByteBuf
        Returns a copy of this buffer's readable bytes. Modifying the content of the returned buffer or this buffer does not affect each other at all. This method is identical to buf.copy(buf.readerIndex(), buf.readableBytes()). This method does not modify readerIndex or writerIndex of this buffer.
        Specified by:
        copy in class ByteBuf
      • copy

        public ByteBuf copy​(int i,
                            int j)
        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
      • slice

        public ByteBuf slice()
        Description copied from class: ByteBuf
        Returns a slice of this buffer's readable bytes. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks. This method is identical to buf.slice(buf.readerIndex(), buf.readableBytes()). This method does not modify readerIndex or writerIndex of this buffer.

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

        Specified by:
        slice in class ByteBuf
      • slice

        public ByteBuf slice​(int i,
                             int j)
        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 #retain() and so the reference count will NOT be increased.

        Specified by:
        slice in class ByteBuf
      • 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 #retain() and so the reference count will NOT be increased.

        Specified by:
        duplicate in class ByteBuf
        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.
      • nioBuffer

        public java.nio.ByteBuffer nioBuffer()
        Description copied from class: ByteBuf
        Exposes this buffer's readable bytes 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 is identical to buf.nioBuffer(buf.readerIndex(), buf.readableBytes()). This method does not modify readerIndex or writerIndex of this buffer. Please note that the returned NIO buffer will not see the changes of this buffer if this buffer is a dynamic buffer and it adjusted its capacity.
        Specified by:
        nioBuffer in class ByteBuf
        See Also:
        ByteBuf.nioBufferCount(), ByteBuf.nioBuffers(), ByteBuf.nioBuffers(int, int)
      • nioBuffer

        public java.nio.ByteBuffer nioBuffer​(int i,
                                             int j)
        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:
        ByteBuf.nioBufferCount(), ByteBuf.nioBuffers(), ByteBuf.nioBuffers(int, int)
      • internalNioBuffer

        public java.nio.ByteBuffer internalNioBuffer​(int parInt1,
                                                     int parInt2)
        Description copied from class: ByteBuf
        Internal use only: Exposes the internal NIO buffer.
        Specified by:
        internalNioBuffer in class ByteBuf
      • nioBuffers

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

        public java.nio.ByteBuffer[] nioBuffers​(int i,
                                                int j)
        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:
        ByteBuf.nioBufferCount(), ByteBuf.nioBuffer(), ByteBuf.nioBuffer(int, int)
      • 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
      • toString

        public java.lang.String toString​(java.nio.charset.Charset charset)
        Description copied from class: ByteBuf
        Decodes this buffer's readable bytes into a string with the specified character set name. This method is identical to buf.toString(buf.readerIndex(), buf.readableBytes(), charsetName). This method does not modify readerIndex or writerIndex of this buffer.
        Specified by:
        toString in class ByteBuf
      • toString

        public java.lang.String toString​(int i,
                                         int j,
                                         java.nio.charset.Charset charset)
        Description copied from class: ByteBuf
        Decodes this buffer's sub-region into a string with the specified character set. This method does not modify readerIndex or writerIndex of this buffer.
        Specified by:
        toString in class ByteBuf
      • hashCode

        public int hashCode()
        Description copied from class: ByteBuf
        Returns a hash code which was calculated from the content of this buffer. If there's a byte array which is equal to this array, both arrays should return the same value.
        Specified by:
        hashCode in class ByteBuf
      • equals

        public boolean equals​(java.lang.Object object)
        Description copied from class: ByteBuf
        Determines if the content of the specified buffer is identical to the content of this array. 'Identical' here means:
        • the size of the contents of the two buffers are same and
        • every single byte of the content of the two buffers are same.
        Please note that it does not compare ByteBuf.readerIndex() nor ByteBuf.writerIndex(). This method also returns false for null and an object which is not an instance of ByteBuf type.
        Specified by:
        equals in class ByteBuf
      • compareTo

        public int compareTo​(ByteBuf bytebuf)
        Description copied from class: ByteBuf
        Compares the content of the specified buffer to the content of this buffer. Comparison is performed in the same manner with the string comparison functions of various languages such as strcmp, memcmp and String.compareTo(String).
        Specified by:
        compareTo in interface java.lang.Comparable<ByteBuf>
        Specified by:
        compareTo in class ByteBuf