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

Packages that use Protocol
org.mariadb.jdbc
org.mariadb.jdbc.internal.failover
org.mariadb.jdbc.internal.failover.impl
org.mariadb.jdbc.internal.protocol
org.mariadb.jdbc.internal.queryresults.resultset
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
`Protocol` MariaDbStatement.`getProtocol()` returns the protocol.

Methods in org.mariadb.jdbc with parameters of type Protocol
`static MariaDbConnection` MariaDbConnection.`newConnection(Protocol protocol, ReentrantLock lock)`

### 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(Method method, Object[] args, Protocol protocol)`
`HandleErrorResult` AbstractMastersSlavesListener.`handleFailover(Method method, Object[] args, Protocol protocol)` Handle failover on master or slave connection.
`HandleErrorResult` AbstractMastersListener.`handleFailover(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.
`HostAddress` AuroraListener.`searchByStartName(Protocol secondaryProtocol, List<HostAddress> loopAddress)` Aurora replica doesn't have the master endpoint but the master instance name.

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

### Uses of Protocol in org.mariadb.jdbc.internal.queryresults.resultset

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

Constructors in org.mariadb.jdbc.internal.queryresults.resultset with parameters of type Protocol
Constructor and Description
`MariaSelectResultSet(ColumnInformation[] columnInformation, List<byte[][]> resultSet, Protocol protocol, int resultSetScrollType)` Create filled resultset.
`MariaSelectResultSet(ColumnInformation[] columnInformation, Statement statement, Protocol protocol, ReadPacketFetcher fetcher, boolean isBinaryEncoded, int resultSetScrollType, int fetchSize, boolean isCanHaveCallableResultset)` Create Streaming resultset.

### 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, ReentrantLock lock)` Retreive protocol corresponding to the failover options.

Methods in org.mariadb.jdbc.internal.util with parameters of type Protocol
`static PrepareStatementCache` PrepareStatementCache.`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` PrepareResult.`getUnProxiedProtocol()`

Methods in org.mariadb.jdbc.internal.util.dao with parameters of type Protocol
`void` PrepareResult.`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
`PrepareResult(int statementId, ColumnInformation[] columns, ColumnInformation[] parameters, Protocol unProxiedProtocol)` PrepareStatement Result object.