Package org.firebirdsql.gds.ng.wire
Interface ProtocolDescriptor
-
- All Known Implementing Classes:
AbstractProtocolDescriptor
,Version10Descriptor
,Version11Descriptor
,Version12Descriptor
,Version13Descriptor
,Version15Descriptor
,Version16Descriptor
,Version18Descriptor
public interface ProtocolDescriptor
Descriptor of protocol information.The driver maintains a list of default protocol descriptors that are loaded using a
ServiceLoader
from the fileMETA-INF/services/org.firebirdsql.gds.ng.wire.ProtocolDescriptor
Protocol 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:
true
when zlib wire compression is supported
-
getWeight
int getWeight()
- Returns:
- Preference weight
-
createDatabase
FbWireDatabase createDatabase(WireDatabaseConnection connection)
CreateFbWireDatabase
implementation for this protocol.- Parameters:
connection
- WireDatabaseConnection to this database- Returns:
- FbWireDatabase implementation
-
createService
FbWireService createService(WireServiceConnection connection)
CreateFbWireService
implementation for this protocol.- Parameters:
connection
- WireServiceConnection to this service- Returns:
- FbWireService implementation
-
createTransaction
FbWireTransaction createTransaction(FbWireDatabase database, int transactionHandle, TransactionState initialState)
CreateFbTransaction
implementation for this protocol.- Parameters:
database
- FbWireDatabase of the current databasetransactionHandle
- Transaction handleinitialState
- Initial transaction state (eitherTransactionState.ACTIVE
orTransactionState.PREPARED
).- Returns:
- FbTransaction implementation
-
createStatement
FbWireStatement createStatement(FbWireDatabase database)
CreateFbStatement
implementation for this protocol.- Parameters:
database
- FbWireDatabase of the current database- Returns:
- FbStatement implementation
-
createDatabaseParameterBuffer
DatabaseParameterBuffer createDatabaseParameterBuffer(WireDatabaseConnection connection) throws java.sql.SQLException
CreateDatabaseParameterBuffer
implementation 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 attachServiceParameterBuffer
implementation 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)
CreateBlrCalculator
implementation 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 outputFbWireBlob
implementation 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 inputFbWireBlob
implementation 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 anFbWireOperations
implementation for this protocol version.- Parameters:
connection
- WireConnection instance (non-null
)defaultWarningMessageCallback
- default warning message callback (non-null
)- Returns:
- Wire operations implementation
-
-