# Class StandardPacketInputStream

java.lang.Object
org.mariadb.jdbc.internal.io.input.StandardPacketInputStream

All Implemented Interfaces:
  `PacketInputStream`

public class StandardPacketInputStream extends Object implements PacketInputStream

## Constructor Summary

Constructors
Constructor
Description
`StandardPacketInputStream(InputStream in, Options options, long threadId)`
Constructor of standard socket MySQL packet stream reader.

## Method Summary

Modifier and Type
Method
Description
`void`
`close()`
`static byte[]`
`create(byte[] value)`
Constructor for single Data (using text format).
`static byte[]`
`create(byte[][] row, ColumnType[] columnTypes)`
Create Buffer with Text protocol values.
`int`
`getCompressLastPacketSeq()`
`InputStream`
`getInputStream()`
Get current input stream for creating compress input stream, to avoid losing already read bytes in case of pipelining.
`int`
`getLastPacketSeq()`
`Buffer`
`getPacket(boolean reUsable)`
`byte[]`
`getPacketArray(boolean reUsable)`
Get next packet.
`void`
`setServerThreadId(long serverThreadId, Boolean isMaster)`
Set server thread id.
`void`
`setTraceCache(LruTraceCache traceCache)`

### Methods inherited from class Object

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

## Constructor Details

### StandardPacketInputStream

public StandardPacketInputStream(InputStream in, Options options, long threadId)
Constructor of standard socket MySQL packet stream reader.

Parameters:
  `in` - stream
  `options` - connection options
  `threadId` - thread id

## Method Details

### create

public static byte[] create(byte[] value)
Constructor for single Data (using text format).

Parameters:
  `value` - value
Returns:
  Buffer

### create

public static byte[] create(byte[][] row, ColumnType[] columnTypes)
Create Buffer with Text protocol values.

Parameters:
  `row` - row data
  `columnTypes` - column types
Returns:
  Buffer

### getPacket

public Buffer getPacket(boolean reUsable) throws IOException

Specified by:
  `getPacket` in interface `PacketInputStream`
Throws:
  `IOException`

### getInputStream

public InputStream getInputStream()
Get current input stream for creating compress input stream, to avoid losing already read bytes in case of pipelining.

Specified by:
  `getInputStream` in interface `PacketInputStream`
Returns:
  input stream.

### getPacketArray

public byte[] getPacketArray(boolean reUsable) throws IOException
Get next packet. If packet is more than 16M, read as many packet needed to finish packet. (first that has not length = 16Mb)

Specified by:
  `getPacketArray` in interface `PacketInputStream`
Parameters:
  `reUsable` - if can use existing reusable buffer to avoid creating array
Returns:
  array packet.
Throws:
  `IOException` - if socket exception occur.

### getLastPacketSeq

public int getLastPacketSeq()

Specified by:
  `getLastPacketSeq` in interface `PacketInputStream`

### getCompressLastPacketSeq

public int getCompressLastPacketSeq()

Specified by:
  `getCompressLastPacketSeq` in interface `PacketInputStream`

### close

public void close() throws IOException

Specified by:
  `close` in interface `PacketInputStream`
Throws:
  `IOException`

### setServerThreadId

public void setServerThreadId(long serverThreadId, Boolean isMaster)
Set server thread id.

Specified by:
  `setServerThreadId` in interface `PacketInputStream`
Parameters:
  `serverThreadId` - current server thread id.
  `isMaster` - is server master

### setTraceCache

public void setTraceCache(LruTraceCache traceCache)

Specified by:
  `setTraceCache` in interface `PacketInputStream`