Package org.firebirdsql.gds.ng.wire
Interface ProtocolDescriptor
-
- All Known Implementing Classes:
AbstractProtocolDescriptor,Version10Descriptor,Version11Descriptor,Version12Descriptor,Version13Descriptor,Version15Descriptor,Version16Descriptor,Version18Descriptor
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
-
-
-
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)
Create anFbWireOperationsimplementation for this protocol version.- Parameters:
connection- WireConnection instance (non-null)defaultWarningMessageCallback- default warning message callback (non-null)- Returns:
- Wire operations implementation
-
-