## 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()`

Methods in org.mariadb.jdbc with parameters of type Protocol
`protected void` MariaDbStatement.`skipMoreResults​(Protocol protocol)`

Constructors in org.mariadb.jdbc with parameters of type Protocol
`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` CmdInformation.`getBatchGeneratedKeys​(Protocol protocol)`
`ResultSet` CmdInformationBatch.`getBatchGeneratedKeys​(Protocol protocol)`
`ResultSet` CmdInformationMultiple.`getBatchGeneratedKeys​(Protocol protocol)`
`ResultSet` CmdInformationSingle.`getBatchGeneratedKeys​(Protocol protocol)`
`ResultSet` CmdInformation.`getGeneratedKeys​(Protocol protocol, String sql)`
`ResultSet` CmdInformationBatch.`getGeneratedKeys​(Protocol protocol, String sql)` Return GeneratedKeys containing insert ids.
`ResultSet` CmdInformationMultiple.`getGeneratedKeys​(Protocol protocol, String sql)` Return GeneratedKeys containing insert ids.
`ResultSet` CmdInformationSingle.`getGeneratedKeys​(Protocol protocol, String sql)` Get generated Keys.
`ResultSet` Results.`getGeneratedKeys​(Protocol protocol)` Send a resultSet that contain auto generated keys.
`boolean` Results.`getMoreResults​(int current, Protocol protocol)` Position to next resultSet.
`boolean` Results.`isFullyLoaded​(Protocol protocol)` Indicate if result contain result-set that is still streaming from server.
`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
`SelectResultSet​(ColumnDefinition[] columnDefinition, List<byte[]> resultSet, Protocol protocol, int resultSetScrollType)` Create filled result-set.
`SelectResultSet​(ColumnDefinition[] columnDefinition, Results results, Protocol protocol, PacketInputStream reader, boolean callableResult, boolean eofDeprecated)` Create Streaming resultSet.
`UpdatableResultSet​(ColumnDefinition[] 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
`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>` AbstractMastersReplicasListener.`waitNewMasterProtocol`
`protected AtomicReference<Protocol>` AbstractMastersReplicasListener.`waitNewSecondaryProtocol`

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

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

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

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

Methods in org.mariadb.jdbc.internal.failover.impl with parameters of type Protocol
`void` MastersFailoverListener.`foundActiveMaster​(Protocol protocol)` method called when a new Master connection is found after a fallback.
`void` MastersReplicasListener.`foundActiveMaster​(Protocol newMasterProtocol)` Method called when a new Master connection is found after a fallback.
`void` MastersReplicasListener.`foundActiveSecondary​(Protocol newSecondaryProtocol)` Method called when a new secondary connection is found after a fallback.
`void` MastersReplicasListener.`lockAndSwitchMaster​(Protocol newMasterProtocol)` Use the parameter newMasterProtocol as new current master connection.
`void` MastersReplicasListener.`lockAndSwitchSecondary​(Protocol newSecondaryProtocol)` Use the parameter newSecondaryProtocol as new current secondary connection.
`List<HostAddress>` 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
`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` `MastersReplicasProtocol`

Constructors in org.mariadb.jdbc.internal.protocol with parameters of type Protocol
`AbstractMultiSend​(Protocol protocol, PacketOutputStream writer, Results results, List<String> queries, ThreadPoolExecutor readScheduler)` Bulk execute for statement.executeBatch().
`AbstractMultiSend​(Protocol protocol, PacketOutputStream writer, Results results, ClientPrepareResult clientPrepareResult, List<ParameterHolder[]> parametersList, ThreadPoolExecutor readScheduler)` Bulk execute for client-side PreparedStatement.executeBatch (no prepare).
`AbstractMultiSend​(Protocol protocol, PacketOutputStream writer, Results results, ServerPrepareResult serverPrepareResult, List<ParameterHolder[]> parametersList, String sql, ThreadPoolExecutor readScheduler)` Bulk execute for Server PreparedStatement.executeBatch (when no COM_MULTI)
`AsyncMultiRead​(BulkStatus status, Protocol protocol, 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, GlobalStateInfo globalInfo)` Retrieve protocol corresponding to the failover options.

Methods in org.mariadb.jdbc.internal.util with parameters of type Protocol
`static String` Utils.`nativeSql​(String sql, Protocol protocol)` Escape sql String.
`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
`ServerPrepareResult​(String sql, int statementId, ColumnDefinition[] columns, ColumnDefinition[] parameters, Protocol unProxiedProtocol)` PrepareStatement Result object.