org.firebirdsql.gds.ng.wire

## Class AbstractFbWireService

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

- All Implemented Interfaces:
    java.lang.AutoCloseable, FbAttachment, FbService, ExceptionListenable, FbWireAttachment, FbWireService
  Direct Known Subclasses:
    V10Service

      public abstract class AbstractFbWireService
      extends AbstractFbService<WireServiceConnection>
      implements FbWireService

  Abstract service implementation for the 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
    Modifier and Type | Field and Description
    --- | ---
    `protected ProtocolDescriptor` | `protocolDescriptor`
    `protected FbWireOperations` | `wireOperations`

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

      `connection, exceptionListenerDispatcher`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `AbstractFbWireService(WireServiceConnection connection, ProtocolDescriptor descriptor)` Creates an AbstractFbWireDatabase instance.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `checkAttached()` Checks if a physical connection to the server is established and if the connection is attached to a database.
    `protected void` | `checkConnected()` Checks if a physical connection to the server is established.
    `ServiceParameterBuffer` | `createServiceParameterBuffer()` Creates an empty `ServiceParameterBuffer`.
    `ServiceRequestBuffer` | `createServiceRequestBuffer()`
    `protected XdrInputStream` | `getXdrIn()` Gets the XdrInputStream.
    `protected XdrOutputStream` | `getXdrOut()` Gets the XdrOutputStream.
    `XdrStreamAccess` | `getXdrStreamAccess()`
    `boolean` | `isAttached()` Current attachment status.
    `GenericResponse` | `readGenericResponse(WarningMessageCallback warningCallback)` Convenience method to read a Response to a GenericResponse

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

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

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

      `addExceptionListener, createDbCryptCallback, getDatatypeCoder, getEncoding, getEncodingFactory, getServerVersion, getServerVersionInformation, getSynchronizationObject, removeExceptionListener, safelyDetach, setAttached, setDetached, setServerVersion`

    - ### 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.FbService

      `addServiceListener, getHandle, getServiceInfo, getServiceInfo, removeServiceListener, startServiceAction`

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

      `authReceiveResponse`

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

      `attach, close, getDatatypeCoder, getEncoding, getEncodingFactory, getServerVersion, getSynchronizationObject`

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

      `addExceptionListener, removeExceptionListener`

- - ### Field Detail

    - #### protocolDescriptor

          protected final ProtocolDescriptor protocolDescriptor

    - #### wireOperations

          protected final FbWireOperations wireOperations

  - ### Constructor Detail

    - #### AbstractFbWireService

          protected AbstractFbWireService(WireServiceConnection connection,
                               ProtocolDescriptor descriptor)

      Creates an AbstractFbWireDatabase instance.
      Parameters:
        `connection` - A WireConnection with an established connection to the server.
        `descriptor` - The ProtocolDescriptor that created this connection (this is used for creating further dependent objects).

  - ### Method Detail

    - #### createServiceParameterBuffer

          public final ServiceParameterBuffer createServiceParameterBuffer()

      Description copied from interface: `FbService`
      Creates an empty `ServiceParameterBuffer`.

      Attach expects a service parameter buffer to have the version as the first item. This needs to be added explicitly.

      Specified by:
        `createServiceParameterBuffer` in interface `FbService`
      Returns:
        Service

    - #### createServiceRequestBuffer

          public final ServiceRequestBuffer createServiceRequestBuffer()

      Specified by:
        `createServiceRequestBuffer` in interface `FbService`
      Returns:
        An empty service request buffer

    - #### isAttached

          public final boolean isAttached()

      Description copied from interface: `FbAttachment`
      Current attachment status.
      Specified by:
        `isAttached` in interface `FbAttachment`
      Overrides:
        `isAttached` in class `AbstractFbAttachment<WireServiceConnection>`
      Returns:
        `true` if connected to the server and attached to a database or service, `false` otherwise.

    - #### checkConnected

          protected final void checkConnected()
                                       throws java.sql.SQLException

      Checks if a physical connection to the server is established.
      Specified by:
        `checkConnected` in class `AbstractFbAttachment<WireServiceConnection>`
      Throws:
        `java.sql.SQLException` - If not connected.

    - #### checkAttached

          protected final void checkAttached()
                                      throws java.sql.SQLException

      Checks if a physical connection to the server is established and if the connection is attached to a database.

      This method calls `checkConnected()`, so it is not necessary to call both.

      Throws:
        `java.sql.SQLException` - If the database not connected or attached.

    - #### getXdrIn

          protected final XdrInputStream getXdrIn()
                                           throws java.sql.SQLException

      Gets the XdrInputStream.
      Returns:
        Instance of XdrInputStream
      Throws:
        `java.sql.SQLException` - If no connection is opened or when exceptions occur retrieving the InputStream

    - #### getXdrOut

          protected final XdrOutputStream getXdrOut()
                                             throws java.sql.SQLException

      Gets the XdrOutputStream.
      Returns:
        Instance of XdrOutputStream
      Throws:
        `java.sql.SQLException` - If no connection is opened or when exceptions occur retrieving the OutputStream

    - #### readGenericResponse

          public final GenericResponse readGenericResponse(WarningMessageCallback warningCallback)
                                                    throws java.sql.SQLException,
                                                           java.io.IOException

      Description copied from interface: `FbWireAttachment`
      Convenience method to read a Response to a GenericResponse
      Specified by:
        `readGenericResponse` in interface `FbWireAttachment`
      Parameters:
        `warningCallback` - Callback object for warnings, `null` for default callback
      Returns:
        GenericResponse
      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.

    - #### getXdrStreamAccess

          public final XdrStreamAccess getXdrStreamAccess()

      Specified by:
        `getXdrStreamAccess` in interface `FbWireAttachment`
      Returns:
        Instance of `XdrStreamAccess` for this attachment.

Copyright © 2001-2021 Jaybird (Firebird JDBC/JCA) team. All rights reserved.