Package org.firebirdsql.gds.ng.wire.version13

## Class V13WireOperations

- java.lang.Object
- - org.firebirdsql.gds.ng.wire.AbstractWireOperations
  - - org.firebirdsql.gds.ng.wire.version10.V10WireOperations
    - - org.firebirdsql.gds.ng.wire.version11.V11WireOperations
      - - org.firebirdsql.gds.ng.wire.version13.V13WireOperations

- All Implemented Interfaces:
    `FbWireOperations`
  Direct Known Subclasses:
    `V15WireOperations`

      public class V13WireOperations
      extends V11WireOperations

  Since:
    3.0
  Author:
    Mark Rotteveel

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.firebirdsql.gds.ng.wire.FbWireOperations

      `FbWireOperations.ProcessAttachCallback`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `CHA_CHA_PLUGIN_SPI_CLASS_NAME` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `V13WireOperations​(WireConnection<?,​?> connection, WarningMessageCallback defaultWarningMessageCallback)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `authReceiveResponse​(FbWireAttachment.AcceptPacket acceptPacket, DbCryptCallback dbCryptCallback, FbWireOperations.ProcessAttachCallback processAttachCallback)` | Receive authentication response from the server.
    `protected void` | `enableEncryption​(EncryptionInitInfo encryptionInitInfo)` |
    `void` | `handleCryptKeyCallback​(DbCryptCallback dbCryptCallback)` | Handles the database encryption key callback.
    `protected DbCryptData` | `readCryptKeyCallback()` | Reads the database encryption callback data from the connection.
    `protected void` | `writeCryptKeyCallback​(DbCryptData clientPluginResponse)` | Writes the database encryption callback response data to the connection.

    - ### Methods inherited from class org.firebirdsql.gds.ng.wire.version11.V11WireOperations

      `enqueueDeferredAction, processDeferredActions`

    - ### Methods inherited from class org.firebirdsql.gds.ng.wire.AbstractWireOperations

      `addServerKeys, clearServerKeys, consumePackets, getAttachProperties, getClientAuthBlock, getConnection, getDefaultWarningMessageCallback, getEncoding, getPluginSpecificData, getXdrIn, getXdrOut, getXdrStreamAccess, processOperation, processResponse, processResponseWarnings, readBatchCompletionResponse, readGenericResponse, readNextOperation, readOperationResponse, readResponse, readSqlResponse, readStatusVector, readStatusVector, setNetworkTimeout, withLock, writeDirect`

    - ### Methods inherited from class java.lang.Object

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

- - ### Field Detail

    - #### CHA_CHA_PLUGIN_SPI_CLASS_NAME

          public static final java.lang.String CHA_CHA_PLUGIN_SPI_CLASS_NAME

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### V13WireOperations

          public V13WireOperations​(WireConnection<?,​?> connection,
                                   WarningMessageCallback defaultWarningMessageCallback)

  - ### Method Detail

    - #### authReceiveResponse

          public void authReceiveResponse​(FbWireAttachment.AcceptPacket acceptPacket,
                                          DbCryptCallback dbCryptCallback,
                                          FbWireOperations.ProcessAttachCallback processAttachCallback)
                                   throws java.sql.SQLException,
                                          java.io.IOException

      Description copied from interface: `FbWireOperations`
      Receive authentication response from the server.

      This method is only relevant for protocol V13 or higher.

      Specified by:
        `authReceiveResponse` in interface `FbWireOperations`
      Overrides:
        `authReceiveResponse` in class `V10WireOperations`
      Parameters:
        `acceptPacket` - Packet with `op_cond_accept` data, or `null` when the data should be read from the connection.
        `dbCryptCallback` - Database encryption callback (ignored by protocols v12 and lower)
        `processAttachCallback` - Callback for processing the final attach response
      Throws:
        `java.sql.SQLException` - For errors returned from the server, or when attempting to read.
        `java.io.IOException` - For errors reading the response from the connection.

    - #### enableEncryption

          protected void enableEncryption​(EncryptionInitInfo encryptionInitInfo)
                                   throws java.sql.SQLException,
                                          java.io.IOException

      Throws:
        `java.sql.SQLException`
        `java.io.IOException`

    - #### handleCryptKeyCallback

          public final void handleCryptKeyCallback​(DbCryptCallback dbCryptCallback)
                                            throws java.io.IOException,
                                                   java.sql.SQLException

      Description copied from interface: `FbWireOperations`
      Handles the database encryption key callback.
      Specified by:
        `handleCryptKeyCallback` in interface `FbWireOperations`
      Overrides:
        `handleCryptKeyCallback` in class `AbstractWireOperations`
      Parameters:
        `dbCryptCallback` - Database encryption callback plugin
      Throws:
        `java.io.IOException` - For errors reading data from the socket
        `java.sql.SQLException` - For database errors
        `java.sql.SQLFeatureNotSupportedException` - If this protocol version does not support crypt key callbacks

    - #### readCryptKeyCallback

          protected DbCryptData readCryptKeyCallback()
                                              throws java.io.IOException,
                                                     java.sql.SQLException

      Reads the database encryption callback data from the connection.
      Returns:
        Database encryption callback data received from server
      Throws:
        `java.io.IOException` - For errors reading data from the socket
        `java.sql.SQLException` - For database errors

    - #### writeCryptKeyCallback

          protected void writeCryptKeyCallback​(DbCryptData clientPluginResponse)
                                        throws java.sql.SQLException,
                                               java.io.IOException

      Writes the database encryption callback response data to the connection.
      Parameters:
        `clientPluginResponse` - Database encryption callback response data to be sent to the server
      Throws:
        `java.io.IOException` - For errors reading data from the socket
        `java.sql.SQLException` - For database errors