Package org.firebirdsql.gds.ng.wire
Interface FbWireOperations
- All Known Implementing Classes:
AbstractWireOperations,V10WireOperations,V11WireOperations,V13WireOperations,V15WireOperations
public interface FbWireOperations
Common connection operations shared by database and service handles
- Since:
- 3.0
- Author:
- Mark Rotteveel
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionvoidauthReceiveResponse(FbWireAttachment.AcceptPacket acceptPacket, DbCryptCallback dbCryptCallback, FbWireOperations.ProcessAttachCallback processAttachCallback) Receive authentication response from the server.voidconsumePackets(int numberOfResponses, WarningMessageCallback warningCallback) Consumes packets notifying for warnings, but ignoring exceptions thrown from the packet.voidenqueueDeferredAction(DeferredAction deferredAction) Enqueue a deferred action.voidhandleCryptKeyCallback(DbCryptCallback dbCryptCallback) Handles the database encryption key callback.voidProcesses any deferred actions.voidprocessResponse(Response response) voidprocessResponseWarnings(Response response, WarningMessageCallback warningCallback) Checks if the response included a warning and signals that warning to the WarningMessageCallback.readGenericResponse(WarningMessageCallback callback) Convenience method to read a Response to a GenericResponsereadOperationResponse(int operationCode, WarningMessageCallback callback) Reads the response from the server when the operation code has already been read.readResponse(WarningMessageCallback callback) Reads the response from the server.readSingleResponse(WarningMessageCallback warningCallback) Reads the response from the server.readSqlResponse(WarningMessageCallback callback) Convenience method to read a Response to a SqlResponseProcess the status vector and returns the associatedSQLExceptioninstance.voidsetNetworkTimeout(int milliseconds) Sets the network timeout for this attachment.voidwriteDirect(byte[] data) Writes directly to theOutputStreamof the underlying connection.
-
Method Details
-
getXdrStreamAccess
XdrStreamAccess getXdrStreamAccess()- Returns:
- Instance of
XdrStreamAccessfor this service.
-
readStatusVector
Process the status vector and returns the associatedSQLExceptioninstance.NOTE: This method returns the SQLException read from the status vector, and only throws SQLException when an error occurs processing the status ector.
- Returns:
- SQLException from the status vector
- Throws:
SQLException- for errors reading or processing the status vector
-
readResponse
Reads the response from the server.- Parameters:
callback- Callback object for warnings,nullfor default callback- Returns:
Responseread.- Throws:
SQLException- For errors returned from the server, or when attempting to readIOException- For errors reading the response from the connection.
-
readOperationResponse
Response readOperationResponse(int operationCode, WarningMessageCallback callback) throws SQLException, IOException Reads the response from the server when the operation code has already been read.- Parameters:
operationCode- The operation codecallback- Callback object for warnings,nullfor default callback- Returns:
Responseread.- Throws:
SQLException- For errors returned from the server, or when attempting to readIOException- For errors reading the response from the connection.- See Also:
-
readGenericResponse
GenericResponse readGenericResponse(WarningMessageCallback callback) throws SQLException, IOException Convenience method to read a Response to a GenericResponse- Parameters:
callback- Callback object for warnings,nullfor default callback- Returns:
- GenericResponse
- Throws:
SQLException- For errors returned from the server, or when attempting to read.IOException- For errors reading the response from the connection.
-
readSqlResponse
Convenience method to read a Response to a SqlResponse- Parameters:
callback- Callback object for warnings,nullfor default callback- Returns:
- SqlResponse
- Throws:
SQLException- For errors returned from the server, or when attempting to read.IOException- For errors reading the response from the connection.
-
handleCryptKeyCallback
Handles the database encryption key callback.- Parameters:
dbCryptCallback- Database encryption callback plugin- Throws:
IOException- For errors reading data from the socketSQLException- For database errorsSQLFeatureNotSupportedException- If this protocol version does not support crypt key callbacks- Since:
- 4.0
-
enqueueDeferredAction
Enqueue a deferred action.FbDatabase implementations that do not support deferred actions are allowed to throw an
UnsupportedOperationException- Parameters:
deferredAction- Deferred action
-
consumePackets
Consumes packets notifying for warnings, but ignoring exceptions thrown from the packet.This method should only be used inside the implementation if either packets need to be ignored, or to ensure that there is no backlog of packets (eg when an exception occurs during processing of multiple package responses).
- Parameters:
numberOfResponses- Number of responses to consume.warningCallback- Callback for warnings
-
processDeferredActions
void processDeferredActions()Processes any deferred actions. Protocol versions that do not support deferred actions should simply do nothing. -
readSingleResponse
Response readSingleResponse(WarningMessageCallback warningCallback) throws SQLException, IOException Reads the response from the server.- Parameters:
warningCallback- Callback object for signalling warnings,nullto register warning on the default callback- Returns:
- Response
- Throws:
SQLException- For errors returned from the server, or when attempting to readIOException- For errors reading the response from the connection.
-
processResponse
- Parameters:
response- Response to process- Throws:
SQLException- For errors returned from the server.
-
processResponseWarnings
Checks if the response included a warning and signals that warning to the WarningMessageCallback.- Parameters:
response- Response to process
-
writeDirect
Writes directly to theOutputStreamof the underlying connection.Use of this method might lead to hard to find race conditions in the protocol. It is currently only used to allow
FbDatabase.cancelOperation(int)to work.- Parameters:
data- Data to write- Throws:
IOException- If there is no socket, the socket is closed, or for errors writing to the socket.- See Also:
-
authReceiveResponse
void authReceiveResponse(FbWireAttachment.AcceptPacket acceptPacket, DbCryptCallback dbCryptCallback, FbWireOperations.ProcessAttachCallback processAttachCallback) throws IOException, SQLException Receive authentication response from the server.This method is only relevant for protocol V13 or higher.
- Parameters:
acceptPacket- Packet withop_cond_acceptdata, ornullwhen the data should be read from the connection.dbCryptCallback- Database encryption callback (ignored by protocols v12 and lower)processAttachCallback- Callback for processing the final attach response- Throws:
IOException- For errors reading the response from the connection.SQLException- For errors returned from the server, or when attempting to read.
-
setNetworkTimeout
Sets the network timeout for this attachment.- Parameters:
milliseconds- Timeout in milliseconds; 0 means no timeout. If the attachment doesn't support milliseconds, it should round up to the nearest second.- Throws:
SQLException- If this attachment is closed, the value ofmillisecondsis smaller than 0, or if setting the timeout fails.SQLFeatureNotSupportedException- If this attachment doesn't support changing the network timeout.
-