## Uses of Interface
org.mariadb.jdbc.internal.protocol.Protocol

Packages that use Protocol
org.mariadb.jdbc
org.mariadb.jdbc.internal.com.read.dao
org.mariadb.jdbc.internal.com.read.resultset
org.mariadb.jdbc.internal.com.send
org.mariadb.jdbc.internal.failover
org.mariadb.jdbc.internal.failover.impl
org.mariadb.jdbc.internal.logging
org.mariadb.jdbc.internal.protocol
org.mariadb.jdbc.internal.util
org.mariadb.jdbc.internal.util.dao

### Uses of Protocol in org.mariadb.jdbc

Fields in org.mariadb.jdbc declared as Protocol
`protected Protocol` MariaDbStatement.`protocol` the protocol used to talk to the server.

Methods in org.mariadb.jdbc that return Protocol
`protected Protocol` MariaDbConnection.`getProtocol()`

Constructors in org.mariadb.jdbc with parameters of type Protocol
Constructor and Description
`MariaDbConnection(Protocol protocol)` Creates a new connection with a given protocol and query factory.

### Uses of Protocol in org.mariadb.jdbc.internal.com.read.dao

Methods in org.mariadb.jdbc.internal.com.read.dao with parameters of type Protocol
`ResultSet` CmdInformationSingle.`getBatchGeneratedKeys(Protocol protocol)`
`ResultSet` CmdInformationMultiple.`getBatchGeneratedKeys(Protocol protocol)`
`ResultSet` CmdInformationBatch.`getBatchGeneratedKeys(Protocol protocol)`
`ResultSet` CmdInformation.`getBatchGeneratedKeys(Protocol protocol)`
`ResultSet` Results.`getGeneratedKeys(Protocol protocol)` Send a resultSet that contain auto generated keys. 2 differences : Batch will list all insert ids.
`ResultSet` CmdInformationSingle.`getGeneratedKeys(Protocol protocol)` Get generated Keys.
`ResultSet` CmdInformationMultiple.`getGeneratedKeys(Protocol protocol)` Return GeneratedKeys containing insert ids.
`ResultSet` CmdInformationBatch.`getGeneratedKeys(Protocol protocol)` Return GeneratedKeys containing insert ids.
`ResultSet` CmdInformation.`getGeneratedKeys(Protocol protocol)`
`boolean` Results.`getMoreResults(int current, Protocol protocol)` Position to next resultSet.
`void` Results.`loadFully(boolean skip, Protocol protocol)` Load fully current results.

### Uses of Protocol in org.mariadb.jdbc.internal.com.read.resultset

Methods in org.mariadb.jdbc.internal.com.read.resultset with parameters of type Protocol
`static ResultSet` SelectResultSet.`createGeneratedData(long[] data, Protocol protocol, boolean findColumnReturnsOne)` Create a result set from given data.
`static ResultSet` SelectResultSet.`createResultSet(String[] columnNames, ColumnType[] columnTypes, String[][] data, Protocol protocol)` Create a result set from given data.

Constructors in org.mariadb.jdbc.internal.com.read.resultset with parameters of type Protocol
Constructor and Description
`SelectResultSet(ColumnInformation[] columnInformation, List<byte[]> resultSet, Protocol protocol, int resultSetScrollType)` Create filled result-set.
`SelectResultSet(ColumnInformation[] columnInformation, Results results, Protocol protocol, PacketInputStream reader, boolean callableResult, boolean eofDeprecated)` Create Streaming resultSet.
`UpdatableResultSet(ColumnInformation[] columnsInformation, Results results, Protocol protocol, PacketInputStream reader, boolean callableResult, boolean eofDeprecated)` Constructor.

### Uses of Protocol in org.mariadb.jdbc.internal.com.send

Constructors in org.mariadb.jdbc.internal.com.send with parameters of type Protocol
Constructor and Description
`ComStmtPrepare(Protocol protocol, String sql)`

### Uses of Protocol in org.mariadb.jdbc.internal.failover

Fields in org.mariadb.jdbc.internal.failover declared as Protocol
`protected Protocol` AbstractMastersListener.`currentProtocol`

Fields in org.mariadb.jdbc.internal.failover with type parameters of type Protocol
`protected AtomicReference<Protocol>` AbstractMastersSlavesListener.`waitNewMasterProtocol`
`protected AtomicReference<Protocol>` AbstractMastersSlavesListener.`waitNewSecondaryProtocol`

Methods in org.mariadb.jdbc.internal.failover that return Protocol
`Protocol` Listener.`getCurrentProtocol()`
`Protocol` AbstractMastersListener.`getCurrentProtocol()`

Methods in org.mariadb.jdbc.internal.failover with parameters of type Protocol
`void` AbstractMastersListener.`closeConnection(Protocol protocol)` Utility to close existing connection.
`void` Listener.`foundActiveMaster(Protocol protocol)`
`abstract void` AbstractMastersSlavesListener.`foundActiveSecondary(Protocol newSecondaryProtocol)`
`HandleErrorResult` Listener.`handleFailover(SQLException qe, Method method, Object[] args, Protocol protocol)`
`HandleErrorResult` AbstractMastersSlavesListener.`handleFailover(SQLException qe, Method method, Object[] args, Protocol protocol)` Handle failover on master or slave connection.
`HandleErrorResult` AbstractMastersListener.`handleFailover(SQLException qe, Method method, Object[] args, Protocol protocol)` Call when a failover is detected on master connection.
`Object` Listener.`invoke(Method method, Object[] args, Protocol specificProtocol)`
`Object` AbstractMastersListener.`invoke(Method method, Object[] args, Protocol specificProtocol)`
`protected boolean` AbstractMastersListener.`pingMasterProtocol(Protocol protocol)`
`protected void` AbstractMastersListener.`setSessionReadOnly(boolean readOnly, Protocol protocol)`
`void` Listener.`syncConnection(Protocol from, Protocol to)`
`void` AbstractMastersListener.`syncConnection(Protocol from, Protocol to)` When switching between 2 connections, report existing connection parameter to the new used connection.

### Uses of Protocol in org.mariadb.jdbc.internal.failover.impl

Fields in org.mariadb.jdbc.internal.failover.impl declared as Protocol
`protected Protocol` MastersSlavesListener.`masterProtocol`
`protected Protocol` MastersSlavesListener.`secondaryProtocol`

Methods in org.mariadb.jdbc.internal.failover.impl with parameters of type Protocol
`void` MastersSlavesListener.`foundActiveMaster(Protocol newMasterProtocol)` Method called when a new Master connection is found after a fallback.
`void` MastersFailoverListener.`foundActiveMaster(Protocol protocol)` method called when a new Master connection is found after a fallback.
`void` MastersSlavesListener.`foundActiveSecondary(Protocol newSecondaryProtocol)` Method called when a new secondary connection is found after a fallback.
`void` MastersSlavesListener.`lockAndSwitchMaster(Protocol newMasterProtocol)` Use the parameter newMasterProtocol as new current master connection.
`void` MastersSlavesListener.`lockAndSwitchSecondary(Protocol newSecondaryProtocol)` Use the parameter newSecondaryProtocol as new current secondary connection.
`void` AuroraListener.`retrieveAllEndpointsAndSet(Protocol protocol)` Retrieves the information necessary to add a new endpoint.
`HostAddress` AuroraListener.`searchByStartName(Protocol secondaryProtocol, List<HostAddress> loopAddress)` Looks for the current master/writer instance via the secondary protocol if it is found within 3 attempts.

### Uses of Protocol in org.mariadb.jdbc.internal.logging

Constructors in org.mariadb.jdbc.internal.logging with parameters of type Protocol
Constructor and Description
`ProtocolLoggingProxy(Protocol protocol, Options options)` Constructor.

### Uses of Protocol in org.mariadb.jdbc.internal.protocol

Classes in org.mariadb.jdbc.internal.protocol that implement Protocol
`class` `AbstractConnectProtocol`
`class` `AbstractQueryProtocol`
`class` `AuroraProtocol`
`class` `MasterProtocol`
`class` `MastersSlavesProtocol`

Constructors in org.mariadb.jdbc.internal.protocol with parameters of type Protocol
Constructor and Description
`AbstractMultiSend(Protocol protocol, PacketOutputStream writer, Results results, ClientPrepareResult clientPrepareResult, List<ParameterHolder[]> parametersList)` Bulk execute for client-side PreparedStatement.executeBatch (no prepare).
`AbstractMultiSend(Protocol protocol, PacketOutputStream writer, Results results, List<String> queries)` Bulk execute for statement.executeBatch().
`AbstractMultiSend(Protocol protocol, PacketOutputStream writer, Results results, ServerPrepareResult serverPrepareResult, List<ParameterHolder[]> parametersList, boolean readPrepareStmtResult, String sql)` Bulk execute for Server PreparedStatement.executeBatch (when no COM_MULTI)
`AsyncMultiRead(ComStmtPrepare comStmtPrepare, BulkStatus status, Protocol protocol, boolean readPrepareStmtResult, AbstractMultiSend bulkSend, int paramCount, Results results, List<ParameterHolder[]> parametersList, List<String> queries, PrepareResult prepareResult)` Read results async to avoid local and remote networking stack buffer overflow "lock".

### Uses of Protocol in org.mariadb.jdbc.internal.util

Methods in org.mariadb.jdbc.internal.util that return Protocol
`static Protocol` Utils.`retrieveProxy(UrlParser urlParser)` Retrieve protocol corresponding to the failover options.

Methods in org.mariadb.jdbc.internal.util with parameters of type Protocol
`static ServerPrepareStatementCache` ServerPrepareStatementCache.`newInstance(int size, Protocol protocol)`

### Uses of Protocol in org.mariadb.jdbc.internal.util.dao

Methods in org.mariadb.jdbc.internal.util.dao that return Protocol
`Protocol` ServerPrepareResult.`getUnProxiedProtocol()`

Methods in org.mariadb.jdbc.internal.util.dao with parameters of type Protocol
`void` ServerPrepareResult.`failover(int statementId, Protocol unProxiedProtocol)` Update information after a failover.

Constructors in org.mariadb.jdbc.internal.util.dao with parameters of type Protocol
Constructor and Description
`ServerPrepareResult(String sql, int statementId, ColumnInformation[] columns, ColumnInformation[] parameters, Protocol unProxiedProtocol)` PrepareStatement Result object.