Package org.firebirdsql.gds.ng.wire
Interface ProtocolDescriptor
-
- All Known Implementing Classes:
AbstractProtocolDescriptor,Version10Descriptor,Version11Descriptor,Version12Descriptor,Version13Descriptor,Version15Descriptor,Version16Descriptor
public interface ProtocolDescriptorDescriptor of protocol information.The driver maintains a list of default protocol descriptors that are loaded using a
ServiceLoaderfrom the fileMETA-INF/services/org.firebirdsql.gds.ng.wire.ProtocolDescriptorProtocol descriptors loaded this way are required to adhere to the following rules:
- They provide a no-arg constructor
- All instances of a specific implementation class created with the no-arg constructor have the
same
Object.hashCode(). - All instances of a specific implementation class created with the no-arg constructor are considered equal to
each other by the
Object.equals(Object)implementation
- Since:
- 3.0
- Author:
- Mark Rotteveel
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description FbWireAsynchronousChannelcreateAsynchronousChannel(FbWireDatabase database)Create a disconnected asynchronous channel.ServiceParameterBuffercreateAttachServiceParameterBuffer(WireServiceConnection connection)Create an attachServiceParameterBufferimplementation and populate it with supported properties for this protocol version.BlrCalculatorcreateBlrCalculator(FbWireDatabase database)CreateBlrCalculatorimplementation for this protocol version.FbWireDatabasecreateDatabase(WireDatabaseConnection connection)CreateFbWireDatabaseimplementation for this protocol.DatabaseParameterBuffercreateDatabaseParameterBuffer(WireDatabaseConnection connection)CreateDatabaseParameterBufferimplementation and populate it with supported properties for this protocol version.FbWireBlobcreateInputBlob(FbWireDatabase database, FbWireTransaction transaction, BlobParameterBuffer blobParameterBuffer, long blobId)Create an inputFbWireBlobimplementation for this protocol version.FbWireBlobcreateOutputBlob(FbWireDatabase database, FbWireTransaction transaction, BlobParameterBuffer blobParameterBuffer)Create an outputFbWireBlobimplementation for this protocol version.FbWireServicecreateService(WireServiceConnection connection)CreateFbWireServiceimplementation for this protocol.ServiceParameterBuffercreateServiceParameterBuffer(WireServiceConnection connection)Creates a normalServiceParameterBuffer.ServiceRequestBuffercreateServiceRequestBuffer(WireServiceConnection connection)FbWireStatementcreateStatement(FbWireDatabase database)CreateFbStatementimplementation for this protocol.FbWireTransactioncreateTransaction(FbWireDatabase database, int transactionHandle, TransactionState initialState)CreateFbTransactionimplementation for this protocol.FbWireOperationscreateWireOperations(WireConnection<?,?> connection, WarningMessageCallback defaultWarningMessageCallback, java.lang.Object syncObject)Create anFbWireOperationsimplementation for this protocol version.intgetArchitecture()intgetMaximumType()intgetMinimumType()intgetVersion()intgetWeight()booleansupportsWireCompression()
-
-
-
Method Detail
-
getVersion
int getVersion()
- Returns:
- The protocol version
-
getArchitecture
int getArchitecture()
- Returns:
- Protocol architecture
-
getMinimumType
int getMinimumType()
- Returns:
- Minimum supported protocol type
-
getMaximumType
int getMaximumType()
- Returns:
- Maximum supported protocol type
-
supportsWireCompression
boolean supportsWireCompression()
- Returns:
truewhen zlib wire compression is supported
-
getWeight
int getWeight()
- Returns:
- Preference weight
-
createDatabase
FbWireDatabase createDatabase(WireDatabaseConnection connection)
CreateFbWireDatabaseimplementation for this protocol.- Parameters:
connection- WireDatabaseConnection to this database- Returns:
- FbWireDatabase implementation
-
createService
FbWireService createService(WireServiceConnection connection)
CreateFbWireServiceimplementation for this protocol.- Parameters:
connection- WireServiceConnection to this service- Returns:
- FbWireService implementation
-
createTransaction
FbWireTransaction createTransaction(FbWireDatabase database, int transactionHandle, TransactionState initialState)
CreateFbTransactionimplementation for this protocol.- Parameters:
database- FbWireDatabase of the current databasetransactionHandle- Transaction handleinitialState- Initial transaction state (eitherTransactionState.ACTIVEorTransactionState.PREPARED).- Returns:
- FbTransaction implementation
-
createStatement
FbWireStatement createStatement(FbWireDatabase database)
CreateFbStatementimplementation for this protocol.- Parameters:
database- FbWireDatabase of the current database- Returns:
- FbStatement implementation
-
createDatabaseParameterBuffer
DatabaseParameterBuffer createDatabaseParameterBuffer(WireDatabaseConnection connection) throws java.sql.SQLException
CreateDatabaseParameterBufferimplementation and populate it with supported properties for this protocol version.- Parameters:
connection- Connection- Returns:
- DatabaseParameterBuffer implementation
- Throws:
java.sql.SQLException
-
createAttachServiceParameterBuffer
ServiceParameterBuffer createAttachServiceParameterBuffer(WireServiceConnection connection) throws java.sql.SQLException
Create an attachServiceParameterBufferimplementation and populate it with supported properties for this protocol version.- Parameters:
connection- Connection- Returns:
- ServiceParameterBuffer implementation for attach
- Throws:
java.sql.SQLException
-
createServiceParameterBuffer
ServiceParameterBuffer createServiceParameterBuffer(WireServiceConnection connection)
Creates a normalServiceParameterBuffer.- Parameters:
connection- Connection- Returns:
- ServiceParameterBuffer implementation
-
createServiceRequestBuffer
ServiceRequestBuffer createServiceRequestBuffer(WireServiceConnection connection)
- Returns:
- An empty service request buffer
-
createBlrCalculator
BlrCalculator createBlrCalculator(FbWireDatabase database)
CreateBlrCalculatorimplementation for this protocol version.- Parameters:
database- FbWireDatabase of the current database- Returns:
- BlrCalculator implementation
-
createOutputBlob
FbWireBlob createOutputBlob(FbWireDatabase database, FbWireTransaction transaction, BlobParameterBuffer blobParameterBuffer)
Create an outputFbWireBlobimplementation for this protocol version.- Parameters:
database- FbWireDatabase of the current databasetransaction- FbWireTransaction to associate with the blobblobParameterBuffer- Blob Parameter Buffer- Returns:
- FbWireBlob implementation
-
createInputBlob
FbWireBlob createInputBlob(FbWireDatabase database, FbWireTransaction transaction, BlobParameterBuffer blobParameterBuffer, long blobId)
Create an inputFbWireBlobimplementation for this protocol version.- Parameters:
database- FbWireDatabase of the current databasetransaction- FbWireTransaction to associate with the blobblobParameterBuffer- Blob Parameter BufferblobId- Blob Id (must be non-zero for input blob)- Returns:
- FbWireBlob implementation
-
createAsynchronousChannel
FbWireAsynchronousChannel createAsynchronousChannel(FbWireDatabase database)
Create a disconnected asynchronous channel.- Parameters:
database- The parent database handle.- Returns:
- Asynchronous channel implementation
-
createWireOperations
FbWireOperations createWireOperations(WireConnection<?,?> connection, WarningMessageCallback defaultWarningMessageCallback, java.lang.Object syncObject)
Create anFbWireOperationsimplementation for this protocol version.- Parameters:
connection- WireConnection instancedefaultWarningMessageCallback- Default warning message callbacksyncObject- Object to use for synchronization- Returns:
- Wire operations implementation
-
-