Top Description Fields Constructors Methods
com.mysql.cj.protocol.a

public Class SimplePacketReader

extends Object
implements MessageReader<NativePacketHeader, NativePacketPayload>
Class Inheritance
All Implemented Interfaces
com.mysql.cj.protocol.MessageReader
Imports
java.io.IOException, java.util.Optional, com.mysql.cj.Messages, com.mysql.cj.conf.RuntimeProperty, com.mysql.cj.exceptions.CJPacketTooBigException, com.mysql.cj.protocol.MessageReader, .SocketConnection

Simple implementation of MessageReader which handles the receiving of logical MySQL packets from the provided socket input stream. Multi-packets are handled outside of this reader.

Field Summary

Modifier and TypeField and Description
pack-priv NativePacketHeader
pack-priv NativePacketPayload
protected RuntimeProperty<Integer>
private byte
protected SocketConnection

Constructor Summary

AccessConstructor and Description
public
SimplePacketReader(SocketConnection socketConnection, RuntimeProperty<Integer> maxAllowedPacket)

Method Summary

Modifier and TypeMethod and Description
public byte
getMessageSequence()

Overrides default com.mysql.cj.protocol.MessageReader.getMessageSequence.

Get last message sequence number, as it was stored by readHeader().

public NativePacketHeader
probeHeader()

Overrides default com.mysql.cj.protocol.MessageReader.probeHeader.

Read the next message header from server, possibly blocking indefinitely until the message is received, and cache it so that the next readHeader() return the same header.

public NativePacketPayload
probeMessage(Optional<NativePacketPayload>
Message object to reuse. May be ignored by implementation.
reuse
,
NativePacketHeader
MessageHeader instance
header
)

Overrides default com.mysql.cj.protocol.MessageReader.probeMessage.

Read message from server into to the given Message instance or into the new one if not present and cache it so that the next readMessage(Optional, MessageHeader) return the same message.

public NativePacketHeader
readHeader()

Implements com.mysql.cj.protocol.MessageReader.readHeader.

Read the next message header from server, possibly blocking indefinitely until the message is received.

private NativePacketHeader
public NativePacketPayload
readMessage(Optional<NativePacketPayload>
Message object to reuse. May be ignored by implementation.
reuse
,
NativePacketHeader
MessageHeader instance
header
)

Implements com.mysql.cj.protocol.MessageReader.readMessage.

Read message from server into to the given Message instance or into the new one if not present.

private NativePacketPayload
public void
resetMessageSequence()

Overrides default com.mysql.cj.protocol.MessageReader.resetMessageSequence.

Set stored message sequence number to 0.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

lastHeaderback to summary
pack-priv NativePacketHeader lastHeader
lastMessageback to summary
pack-priv NativePacketPayload lastMessage
maxAllowedPacketback to summary
protected RuntimeProperty<Integer> maxAllowedPacket
readPacketSequenceback to summary
private byte readPacketSequence
socketConnectionback to summary
protected SocketConnection socketConnection

Constructor Detail

SimplePacketReaderback to summary
public SimplePacketReader(SocketConnection socketConnection, RuntimeProperty<Integer> maxAllowedPacket)

Method Detail

getMessageSequenceback to summary
public byte getMessageSequence()

Overrides default com.mysql.cj.protocol.MessageReader.getMessageSequence.

Doc from com.mysql.cj.protocol.MessageReader.getMessageSequence.

Get last message sequence number, as it was stored by readHeader().

Returns:byte

number

Annotations
@Override
probeHeaderback to summary
public NativePacketHeader probeHeader() throws IOException

Overrides default com.mysql.cj.protocol.MessageReader.probeHeader.

Doc from com.mysql.cj.protocol.MessageReader.probeHeader.

Read the next message header from server, possibly blocking indefinitely until the message is received, and cache it so that the next readHeader() return the same header.

Returns:NativePacketHeader

MessageHeader of the next message

Annotations
@Override
Exceptions
IOException:
if an error occurs
probeMessageback to summary
public NativePacketPayload probeMessage(Optional<NativePacketPayload> reuse, NativePacketHeader header) throws IOException

Overrides default com.mysql.cj.protocol.MessageReader.probeMessage.

Doc from com.mysql.cj.protocol.MessageReader.probeMessage.

Read message from server into to the given Message instance or into the new one if not present and cache it so that the next readMessage(Optional, MessageHeader) return the same message. For asynchronous channel it synchronously reads the next message in the stream, blocking until the message is read fully. Could throw CJCommunicationsException wrapping an IOException during read or parse

Parameters
reuse:Optional<NativePacketPayload>

Message object to reuse. May be ignored by implementation.

header:NativePacketHeader

MessageHeader instance

Returns:NativePacketPayload

Message instance

Annotations
@Override
Exceptions
IOException:
if an error occurs
readHeaderback to summary
public NativePacketHeader readHeader() throws IOException

Implements com.mysql.cj.protocol.MessageReader.readHeader.

Doc from com.mysql.cj.protocol.MessageReader.readHeader.

Read the next message header from server, possibly blocking indefinitely until the message is received.

Returns:NativePacketHeader

MessageHeader of the next message

Annotations
@Override
Exceptions
IOException:
if an error occurs
readHeaderLocalback to summary
private NativePacketHeader readHeaderLocal() throws IOException
readMessageback to summary
public NativePacketPayload readMessage(Optional<NativePacketPayload> reuse, NativePacketHeader header) throws IOException

Implements com.mysql.cj.protocol.MessageReader.readMessage.

Doc from com.mysql.cj.protocol.MessageReader.readMessage.

Read message from server into to the given Message instance or into the new one if not present. For asynchronous channel it synchronously reads the next message in the stream, blocking until the message is read fully. Could throw CJCommunicationsException wrapping an IOException during read or parse

Parameters
reuse:Optional<NativePacketPayload>

Message object to reuse. May be ignored by implementation.

header:NativePacketHeader

MessageHeader instance

Returns:NativePacketPayload

Message instance

Annotations
@Override
Exceptions
IOException:
if an error occurs
readMessageLocalback to summary
private NativePacketPayload readMessageLocal(Optional<NativePacketPayload> reuse, NativePacketHeader header) throws IOException
resetMessageSequenceback to summary
public void resetMessageSequence()

Overrides default com.mysql.cj.protocol.MessageReader.resetMessageSequence.

Doc from com.mysql.cj.protocol.MessageReader.resetMessageSequence.

Set stored message sequence number to 0.

Annotations
@Override