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, 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.