Package org.mariadb.jdbc.client.impl

## Class StandardReadableByteBuf

- java.lang.Object
- - org.mariadb.jdbc.client.impl.StandardReadableByteBuf

All Implemented Interfaces:
  `org.mariadb.jdbc.client.ReadableByteBuf`

    public final class StandardReadableByteBuf
    extends Object
    implements org.mariadb.jdbc.client.ReadableByteBuf

Packet buffer

### Constructor Summary

Constructors
`StandardReadableByteBuf​(byte[] buf, int limit)` Packet buffer constructor

### Method Summary

All Methods Instance Methods Concrete Methods
`byte[]` `buf()` buffer
`void` `buf​(byte[] buf, int limit, int pos)` Reset buffer
`byte` `getByte()` Read byte from buffer at current position, without changing position
`byte` `getByte​(int index)` Read byte from buffer at indicated index, without changing position
`short` `getUnsignedByte()` Read unsigned byte value at current position, without changing position
`int` `pos()` Current buffer position
`void` `pos​(int pos)` Set position
`int` `readableBytes()` buffer number of unread bytes
`String` `readAscii​(int length)` Read ascii encoded string from length bytes
`MariaDbBlob` `readBlob​(int length)` Read Blob at current position
`byte` `readByte()` Read byte at current position, incrementing position
`void` `readBytes​(byte[] dst)` Read as many bytes to fill destination array
`byte[]` `readBytesNullEnd()` Read null-ended encoded bytes.
`double` `readDouble()` Read double encoded on 8 bytes value at current position
`double` `readDoubleBE()` Read double encoded on 8 bytes (big endian) value at current position
`float` `readFloat()` Read float encoded on 4 bytes value at current position
`int` `readInt()` Read signed 4 bytes value (little endian) at current position
`int` `readIntBE()` Read signed 4 bytes value (big endian) at current position
`int` `readIntLengthEncodedNotNull()` Read encoded length value that cannot be null see https://mariadb.com/kb/en/protocol-data-types/#length-encoded-integers
`Integer` `readLength()` Read encoded length value see https://mariadb.com/kb/en/protocol-data-types/#length-encoded-integers
`StandardReadableByteBuf` `readLengthBuffer()` Return a length encoded buffer
`long` `readLong()` Read signed 8 bytes value (little endian) at current position
`long` `readLongBE()` Read unsigned 4 bytes value (big endian) at current position
`long` `readLongLengthEncodedNotNull()` Read encoded length value that cannot be null see https://mariadb.com/kb/en/protocol-data-types/#length-encoded-integers
`int` `readMedium()` Read signed 3 bytes value (little endian) at current position
`short` `readShort()` Read signed 2 bytes value (little endian) at current position
`String` `readString​(int length)` Read utf-8 encoded string from length bytes
`String` `readStringEof()` Return the utf-8 string represented by current position to the limit of buffer
`String` `readStringNullEnd()` Read null-ended utf-8 encoded string.
`short` `readUnsignedByte()` Read unsigned byte value at current position
`long` `readUnsignedInt()` Read unsigned 4 bytes value (little endian) at current position
`int` `readUnsignedMedium()` Read unsigned 3 bytes value (little endian) at current position
`int` `readUnsignedShort()` Read unsigned 2 bytes value (little endian) at current position
`void` `skip()` Skip one byte
`void` `skip​(int length)` Skip length value of bytes
`int` `skipIdentifier()` Identifier can have a max length of 256 (alias) So no need to check whole length encoding.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### StandardReadableByteBuf

    public StandardReadableByteBuf​(byte[] buf,
                                   int limit)

Packet buffer constructor

Parameters:
  `buf` - buffer
  `limit` - buffer limit

### Method Detail

#### readableBytes

    public int readableBytes()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
buffer number of unread bytes

Specified by:
  `readableBytes` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  remaining bytes number

#### pos

    public int pos()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Current buffer position

Specified by:
  `pos` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  position

#### buf

    public byte[] buf()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
buffer

Specified by:
  `buf` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  buffer

#### buf

    public void buf​(byte[] buf,
                    int limit,
                    int pos)

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Reset buffer

Specified by:
  `buf` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Parameters:
  `buf` - new buffer
  `limit` - buffer limit
  `pos` - initial position

#### pos

    public void pos​(int pos)

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Set position

Specified by:
  `pos` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Parameters:
  `pos` - new position

#### skip

    public void skip()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Skip one byte

Specified by:
  `skip` in interface `org.mariadb.jdbc.client.ReadableByteBuf`

#### skip

    public void skip​(int length)

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Skip length value of bytes

Specified by:
  `skip` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Parameters:
  `length` - number of position to skip

#### readBlob

    public MariaDbBlob readBlob​(int length)

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read Blob at current position

Specified by:
  `readBlob` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Parameters:
  `length` - blob length
Returns:
  Blob

#### getByte

    public byte getByte()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read byte from buffer at current position, without changing position

Specified by:
  `getByte` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  byte value

#### getByte

    public byte getByte​(int index)

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read byte from buffer at indicated index, without changing position

Specified by:
  `getByte` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Parameters:
  `index` - index
Returns:
  byte value

#### getUnsignedByte

    public short getUnsignedByte()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read unsigned byte value at current position, without changing position

Specified by:
  `getUnsignedByte` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  short value

#### readLongLengthEncodedNotNull

    public long readLongLengthEncodedNotNull()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read encoded length value that cannot be null see https://mariadb.com/kb/en/protocol-data-types/#length-encoded-integers

Specified by:
  `readLongLengthEncodedNotNull` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  encoded length

#### readIntLengthEncodedNotNull

    public int readIntLengthEncodedNotNull()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read encoded length value that cannot be null see https://mariadb.com/kb/en/protocol-data-types/#length-encoded-integers

this is readLongLengthEncodedNotNull limited to 32 bits

Specified by:
  `readIntLengthEncodedNotNull` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  encoded length

#### skipIdentifier

    public int skipIdentifier()

Identifier can have a max length of 256 (alias) So no need to check whole length encoding.

Specified by:
  `skipIdentifier` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  current pos

#### readLength

    public Integer readLength()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read encoded length value see https://mariadb.com/kb/en/protocol-data-types/#length-encoded-integers

Specified by:
  `readLength` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  encoded length

#### readByte

    public byte readByte()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read byte at current position, incrementing position

Specified by:
  `readByte` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  byte at current position

#### readUnsignedByte

    public short readUnsignedByte()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read unsigned byte value at current position

Specified by:
  `readUnsignedByte` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  short value

#### readShort

    public short readShort()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read signed 2 bytes value (little endian) at current position

Specified by:
  `readShort` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  short value

#### readUnsignedShort

    public int readUnsignedShort()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read unsigned 2 bytes value (little endian) at current position

Specified by:
  `readUnsignedShort` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  short value

#### readMedium

    public int readMedium()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read signed 3 bytes value (little endian) at current position

Specified by:
  `readMedium` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  int value

#### readUnsignedMedium

    public int readUnsignedMedium()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read unsigned 3 bytes value (little endian) at current position

Specified by:
  `readUnsignedMedium` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  int value

#### readInt

    public int readInt()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read signed 4 bytes value (little endian) at current position

Specified by:
  `readInt` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  int value

#### readIntBE

    public int readIntBE()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read signed 4 bytes value (big endian) at current position

Specified by:
  `readIntBE` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  int value

#### readUnsignedInt

    public long readUnsignedInt()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read unsigned 4 bytes value (little endian) at current position

Specified by:
  `readUnsignedInt` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  long value

#### readLong

    public long readLong()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read signed 8 bytes value (little endian) at current position

Specified by:
  `readLong` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  long value

#### readLongBE

    public long readLongBE()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read unsigned 4 bytes value (big endian) at current position

Specified by:
  `readLongBE` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  long value

#### readBytes

    public void readBytes​(byte[] dst)

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read as many bytes to fill destination array

Specified by:
  `readBytes` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Parameters:
  `dst` - destination array

#### readBytesNullEnd

    public byte[] readBytesNullEnd()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read null-ended encoded bytes. 0x00 null value won't be in return byte, so position is incremented to returned byte array length + 1

Specified by:
  `readBytesNullEnd` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  byte array

#### readLengthBuffer

    public StandardReadableByteBuf readLengthBuffer()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Return a length encoded buffer

Specified by:
  `readLengthBuffer` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  new buffer

#### readString

    public String readString​(int length)

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read utf-8 encoded string from length bytes

Specified by:
  `readString` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Parameters:
  `length` - length byte to read
Returns:
  string value

#### readAscii

    public String readAscii​(int length)

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read ascii encoded string from length bytes

Specified by:
  `readAscii` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Parameters:
  `length` - length byte to read
Returns:
  string value

#### readStringNullEnd

    public String readStringNullEnd()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read null-ended utf-8 encoded string. 0x00 = null represent string ending. Position is incremented to returned string corresponding bytes + 1

Specified by:
  `readStringNullEnd` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  corresponding string

#### readStringEof

    public String readStringEof()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Return the utf-8 string represented by current position to the limit of buffer

Specified by:
  `readStringEof` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  string value

#### readFloat

    public float readFloat()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read float encoded on 4 bytes value at current position

Specified by:
  `readFloat` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  float value

#### readDouble

    public double readDouble()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read double encoded on 8 bytes value at current position

Specified by:
  `readDouble` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  double value

#### readDoubleBE

    public double readDoubleBE()

Description copied from interface: `org.mariadb.jdbc.client.ReadableByteBuf`
Read double encoded on 8 bytes (big endian) value at current position

Specified by:
  `readDoubleBE` in interface `org.mariadb.jdbc.client.ReadableByteBuf`
Returns:
  double value