Module org.firebirdsql.jaybird
Package org.firebirdsql.gds.ng.wire.version10

# Class V10Service

java.lang.Object
org.firebirdsql.gds.ng.AbstractFbAttachment<T>
org.firebirdsql.gds.ng.AbstractFbService<WireServiceConnection>
org.firebirdsql.gds.ng.wire.AbstractFbWireService
org.firebirdsql.gds.ng.wire.version10.V10Service

All Implemented Interfaces:
  `AutoCloseable`, `FbAttachment`, `FbService`, `ExceptionListenable`, `FbWireAttachment`, `FbWireService`

public class V10Service extends AbstractFbWireService implements FbWireService
`FbWireService` implementation for the V10 wire protocol

Since:
  3.0
Author:
  Mark Rotteveel

- ## Nested Class Summary

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

  `FbWireAttachment.AcceptPacket`

- ## Field Summary

  ### Fields inherited from class org.firebirdsql.gds.ng.wire.AbstractFbWireService

  `protocolDescriptor, wireOperations`

  ### Fields inherited from class org.firebirdsql.gds.ng.AbstractFbService

  `serviceListenerDispatcher`

  ### Fields inherited from class org.firebirdsql.gds.ng.AbstractFbAttachment

  `connection, exceptionListenerDispatcher`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `V10Service(WireServiceConnection connection, ProtocolDescriptor descriptor)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `afterAttachActions()`
  `void`
  `attach()`
  Attach to the attachment type.
  `final void`
  `authReceiveResponse(FbWireAttachment.AcceptPacket acceptPacket)`
  Receive authentication response from the server.
  `byte[]`
  `getServiceInfo(ServiceParameterBuffer serviceParameterBuffer, ServiceRequestBuffer serviceRequestBuffer, int maxBufferLength)`
  Performs a service info request (service query.
  `protected void`
  `internalDetach()`
  Actual implementation of service detach.
  `protected void`
  `processAttachResponse(GenericResponse genericResponse)`
  Processes the response from the server to the attach or create operation.
  `protected void`
  `sendAttachToBuffer(ServiceParameterBuffer spb)`
  Sends the buffer for op_service_attach
  `void`
  `startServiceAction(ServiceRequestBuffer serviceRequestBuffer)`
  Starts a service action.

  ### Methods inherited from class org.firebirdsql.gds.ng.wire.AbstractFbWireService

  `checkAttached, checkConnected, closeConnection, createServiceParameterBuffer, createServiceRequestBuffer, forceClose, getHandle, getWireOperations, getXdrIn, getXdrOut, getXdrStreamAccess, isAttached, readGenericResponse, setNetworkTimeout`

  ### Methods inherited from class org.firebirdsql.gds.ng.AbstractFbService

  `addServiceListener, close, getDescribeServiceRequestBuffer, getServiceInfo, getServiceInformationProcessor, getServiceWarningCallback, removeServiceListener`

  ### Methods inherited from class org.firebirdsql.gds.ng.AbstractFbAttachment

  `addExceptionListener, getDatatypeCoder, getEncoding, getEncodingFactory, getNetworkTimeout, getServerVersion, isLockedByCurrentThread, removeExceptionListener, requireNotAttached, safelyDetach, setAttached, setDetached, setServerVersion, withLock`

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

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

  ### Methods inherited from interface org.firebirdsql.gds.ng.listeners.ExceptionListenable

  `addExceptionListener, removeExceptionListener`

  ### Methods inherited from interface org.firebirdsql.gds.ng.FbAttachment

  `close, forceClose, getDatatypeCoder, getEncoding, getEncodingFactory, getNetworkTimeout, getServerVersion, isAttached, isLockedByCurrentThread, setNetworkTimeout, withLock`

  ### Methods inherited from interface org.firebirdsql.gds.ng.FbService

  `addServiceListener, createServiceParameterBuffer, createServiceRequestBuffer, getHandle, getServiceInfo, removeServiceListener`

  ### Methods inherited from interface org.firebirdsql.gds.ng.wire.FbWireAttachment

  `getWireOperations, getXdrStreamAccess, readGenericResponse`

- ## Constructor Details

  - ### V10Service

    public V10Service(WireServiceConnection connection, ProtocolDescriptor descriptor)

- ## Method Details

  - ### attach

    public void attach() throws SQLException
    Description copied from interface: `FbAttachment`
    Attach to the attachment type.
    Specified by:
      `attach` in interface `FbAttachment`
    Throws:
      `SQLException`

  - ### processAttachResponse

    protected void processAttachResponse(GenericResponse genericResponse)
    Processes the response from the server to the attach or create operation.
    Parameters:
      `genericResponse` - GenericResponse received from the server.

  - ### afterAttachActions

    protected void afterAttachActions() throws SQLException
    Throws:
      `SQLException`

  - ### sendAttachToBuffer

    protected void sendAttachToBuffer(ServiceParameterBuffer spb) throws SQLException, IOException
    Sends the buffer for op_service_attach
    Parameters:
      `spb` - Service parameter buffer
    Throws:
      `SQLException` - If the connection is not open
      `IOException` - For errors writing to the connection

  - ### internalDetach

    protected void internalDetach() throws SQLException
    Description copied from class: `AbstractFbService`
    Actual implementation of service detach.

    Implementations of this method should only be called from `AbstractFbService.close()`, and should not notify service listeners of the service `ServiceListener.detaching(FbService)` and `ServiceListener.detached(FbService)` events.

    Specified by:
      `internalDetach` in class `AbstractFbService<WireServiceConnection>`
    Throws:
      `SQLException`

  - ### getServiceInfo

    public byte[] getServiceInfo(ServiceParameterBuffer serviceParameterBuffer, ServiceRequestBuffer serviceRequestBuffer, int maxBufferLength) throws SQLException
    Description copied from interface: `FbService`
    Performs a service info request (service query.
    Specified by:
      `getServiceInfo` in interface `FbService`
    Parameters:
      `serviceParameterBuffer` - Service parameters (can be null)
      `serviceRequestBuffer` - Service request info
      `maxBufferLength` - Maximum response buffer length to use
    Returns:
      The response buffer (note: length is the actual length of the response, not `maxBufferLength`
    Throws:
      `SQLException` - For errors retrieving the information.

  - ### startServiceAction

    public void startServiceAction(ServiceRequestBuffer serviceRequestBuffer) throws SQLException
    Description copied from interface: `FbService`
    Starts a service action.
    Specified by:
      `startServiceAction` in interface `FbService`
    Parameters:
      `serviceRequestBuffer` - Service action request details
    Throws:
      `SQLException` - For errors starting the service action.

  - ### authReceiveResponse

    public final void authReceiveResponse(FbWireAttachment.AcceptPacket acceptPacket) throws IOException, SQLException
    Description copied from interface: `FbWireAttachment`
    Receive authentication response from the server.

    This method is only relevant for protocol V13 or higher.

    Specified by:
      `authReceiveResponse` in interface `FbWireAttachment`
    Parameters:
      `acceptPacket` - Packet with `op_cond_accept` data, or `null` when the data should be read from the connection.
    Throws:
      `IOException` - For errors reading the response from the connection.
      `SQLException` - For errors returned from the server, or when attempting to read.