Package org.firebirdsql.gds.ng.wire.version12

## Class V12Database

- java.lang.Object
- - org.firebirdsql.gds.ng.AbstractFbAttachment<T>
  - - org.firebirdsql.gds.ng.AbstractFbDatabase<WireDatabaseConnection>
    - - org.firebirdsql.gds.ng.wire.AbstractFbWireDatabase
      - - org.firebirdsql.gds.ng.wire.version10.V10Database
        - - org.firebirdsql.gds.ng.wire.version11.V11Database
          - - org.firebirdsql.gds.ng.wire.version12.V12Database

All Implemented Interfaces:
  `java.lang.AutoCloseable`, `FbAttachment`, `FbDatabase`, `ExceptionListenable`, `TransactionListener`, `FbWireAttachment`, `FbWireDatabase`

Direct Known Subclasses:
  `V13Database`

    public class V12Database
    extends V11Database

`FbWireDatabase` implementation for the version 12 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.AbstractFbWireDatabase

`protocolDescriptor, wireOperations`

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

`databaseListenerDispatcher`

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

`connection, exceptionListenerDispatcher`

### Constructor Summary

Constructors
`protected` `V12Database​(WireDatabaseConnection connection, ProtocolDescriptor descriptor)` Creates a V12Database instance.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `cancelOperation​(int kind)` Cancels the current operation.
`protected Encoding` `getFilenameEncoding​(DatabaseParameterBuffer dpb)` Gets the `Encoding` to use for the database filename.

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

`releaseObject`

### Methods inherited from class org.firebirdsql.gds.ng.wire.version10.V10Database

`afterAttachActions, attach, attachOrCreate, authReceiveResponse, createDatabase, createStatement, doReleaseObjectPacket, dropDatabase, executeImmediate, getBlrCalculator, getTransactionIdBuffer, initAsynchronousChannel, internalDetach, processAttachOrCreateResponse, processReleaseObjectResponse, reconnectTransaction, sendAttachOrCreateToBuffer, startTransaction`

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

`cancelEvent, checkAttached, checkConnected, closeConnection, consumePackets, countEvents, createBlobForInput, createBlobForOutput, createEventHandle, enqueueDeferredAction, finalize, forceClose, getDatabaseInfo, getHandle, getInfo, getWireOperations, getXdrIn, getXdrOut, getXdrStreamAccess, isAttached, queueEvent, readGenericResponse, readResponse, readSqlResponse, setNetworkTimeout`

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

`addDatabaseListener, addWeakDatabaseListener, close, createBlobParameterBuffer, createTransactionParameterBuffer, emptyRowDescriptor, getActiveTransactionCount, getConnectionDialect, getConnectionProperties, getDatabaseDialect, getDatabaseInfo, getDatabaseInformationProcessor, getDatabaseWarningCallback, getDescribeDatabaseInfoBlock, getOdsMajor, getOdsMinor, getParameterDescriptionInfoRequestItems, getStatementInfoRequestItems, removeDatabaseListener, setDatabaseDialect, setOdsMajor, setOdsMinor, transactionAdded, transactionStateChanged`

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

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

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

`clone, equals, 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.FbDatabase

`addDatabaseListener, addWeakDatabaseListener, cancelEvent, countEvents, createBlobForInput, createBlobForInput, createBlobForInput, createBlobForOutput, createBlobForOutput, createBlobForOutput, createBlobParameterBuffer, createEventHandle, createTransactionParameterBuffer, emptyRowDescriptor, getConnectionDialect, getConnectionProperties, getDatabaseDialect, getDatabaseInfo, getDatabaseInfo, getHandle, getOdsMajor, getOdsMinor, queueEvent, removeDatabaseListener`

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

`getWireOperations, getXdrStreamAccess, readGenericResponse`

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

`consumePackets, enqueueDeferredAction, getInfo, readResponse, readSqlResponse`

### Constructor Detail

#### V12Database

    protected V12Database​(WireDatabaseConnection connection,
                          ProtocolDescriptor descriptor)

Creates a V12Database 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

#### cancelOperation

    public void cancelOperation​(int kind)
                         throws java.sql.SQLException

Description copied from interface: `FbDatabase`
Cancels the current operation.

The cancellation types are:

`ISCConstants.fb_cancel_disable`
  disables execution of fb_cancel_raise requests for the specified attachment. It can be useful when your program is executing critical operations, such as cleanup, for example.
`ISCConstants.fb_cancel_enable`
  re-enables delivery of a cancel execution that was previously disabled. The 'cancel' state is effective by default, being initialized when the attachment is created.
`ISCConstants.fb_cancel_raise`
  cancels any activity related to the database handle. The effect will be that, as soon as possible, the engine will try to stop the running request and return an exception to the caller
`ISCConstants.fb_cancel_abort`
  forcibly close client side of connection. Useful if you need to close a connection urgently. All active transactions will be rolled back by the server. 'Success' is always returned to the application. Use with care!

Specified by:
  `cancelOperation` in interface `FbDatabase`
Overrides:
  `cancelOperation` in class `V10Database`
Parameters:
  `kind` - Cancellation type
Throws:
  `java.sql.SQLException` - For errors cancelling, or if the cancel operation is not supported.

#### getFilenameEncoding

    protected Encoding getFilenameEncoding​(DatabaseParameterBuffer dpb)

Gets the `Encoding` to use for the database filename.

For version 12 always returns the UTF8 encoding.

Overrides:
  `getFilenameEncoding` in class `V10Database`
Parameters:
  `dpb` - Database parameter buffer
Returns:
  Encoding
See Also:
  `V12ParameterConverter`