- All Implemented Interfaces:
FbWireOperations
- Direct Known Subclasses:
V10WireOperations
- Since:
- 3.0
- Author:
- Mark Rotteveel
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.firebirdsql.gds.ng.wire.FbWireOperations
FbWireOperations.ProcessAttachCallback
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
AbstractWireOperations
(WireConnection<?, ?> connection, WarningMessageCallback defaultWarningMessageCallback) -
Method Summary
Modifier and TypeMethodDescriptionprotected final void
addServerKeys
(byte[] serverKeys) protected final void
final void
consumePackets
(int numberOfResponses, WarningMessageCallback warningCallback) Consumes packets notifying for warnings, but ignoring exceptions thrown from the packet.protected final IAttachProperties<?>
protected final ClientAuthBlock
protected final WireConnection<?,
?> protected final WarningMessageCallback
protected final Encoding
protected final List<KnownServerKey.PluginSpecificData>
protected final XdrInputStream
getXdrIn()
Gets the XdrInputStream.protected final XdrOutputStream
Gets the XdrOutputStream.final XdrStreamAccess
void
handleCryptKeyCallback
(DbCryptCallback dbCryptCallback) Handles the database encryption key callback.protected final Response
processOperation
(int operation) Reads the response based on the specified operation.final void
processResponse
(Response response) final void
processResponseWarnings
(Response response, WarningMessageCallback warningCallback) Checks if the response included a warning and signals that warning to the WarningMessageCallback.protected BatchCompletionResponse
Reads the batch completion response (op_batch_cs
) without reading the operation code itself.final GenericResponse
readGenericResponse
(WarningMessageCallback warningCallback) Convenience method to read a Response to a GenericResponsefinal int
Reads the next operation code, after processing deferred packets.final Response
readOperationResponse
(int operationCode, WarningMessageCallback warningCallback) Reads the response from the server when the operation code has already been read.final Response
readResponse
(WarningMessageCallback warningCallback) Reads the response from the server.final SqlResponse
readSqlResponse
(WarningMessageCallback warningCallback) Convenience method to read a Response to a SqlResponsefinal SQLException
Process the status vector and returns the associatedSQLException
instance.protected final SQLException
readStatusVector
(XdrInputStream xdrIn) Process the status vector fromxdrIn
and returns the associatedSQLException
instance.void
setNetworkTimeout
(int milliseconds) Sets the network timeout for this attachment.protected final LockCloseable
withLock()
final void
writeDirect
(byte[] data) Writes directly to theOutputStream
of the underlying connection.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.firebirdsql.gds.ng.wire.FbWireOperations
authReceiveResponse, completeDeferredActions, enqueueDeferredAction, processDeferredActions
-
Constructor Details
-
AbstractWireOperations
protected AbstractWireOperations(WireConnection<?, ?> connection, WarningMessageCallback defaultWarningMessageCallback)
-
-
Method Details
-
getXdrStreamAccess
- Specified by:
getXdrStreamAccess
in interfaceFbWireOperations
- Returns:
- Instance of
XdrStreamAccess
for this service.
-
getEncoding
-
getXdrIn
Gets the XdrInputStream.- Returns:
- Instance of XdrInputStream
- Throws:
SQLException
- If no connection is opened or when exceptions occur retrieving the InputStream
-
getXdrOut
Gets the XdrOutputStream.- Returns:
- Instance of XdrOutputStream
- Throws:
SQLException
- If no connection is opened or when exceptions occur retrieving the OutputStream
-
readStatusVector
Description copied from interface:FbWireOperations
Process the status vector and returns the associatedSQLException
instance.NOTE: This method returns the SQLException read from the status vector, and only throws SQLException when an error occurs processing the status vector.
- Specified by:
readStatusVector
in interfaceFbWireOperations
- Returns:
- SQLException from the status vector
- Throws:
SQLException
- for errors reading or processing the status vector
-
readStatusVector
Process the status vector fromxdrIn
and returns the associatedSQLException
instance.- Parameters:
xdrIn
- XDR input stream to read from- Returns:
- SQLException from the status vector
- Throws:
SQLException
- for errors reading or processing the status vector- See Also:
-
readResponse
public final Response readResponse(WarningMessageCallback warningCallback) throws SQLException, IOException Description copied from interface:FbWireOperations
Reads the response from the server.- Specified by:
readResponse
in interfaceFbWireOperations
- Parameters:
warningCallback
- Callback object for warnings,null
for default callback- Returns:
Response
read.- Throws:
SQLException
- For errors returned from the server, or when attempting to readIOException
- For errors reading the response from the connection.
-
readOperationResponse
public final Response readOperationResponse(int operationCode, WarningMessageCallback warningCallback) throws SQLException, IOException Description copied from interface:FbWireOperations
Reads the response from the server when the operation code has already been read.- Specified by:
readOperationResponse
in interfaceFbWireOperations
- Parameters:
operationCode
- The operation codewarningCallback
- Callback object for warnings,null
for default callback- Returns:
Response
read.- Throws:
SQLException
- For errors returned from the server, or when attempting to readIOException
- For errors reading the response from the connection.- See Also:
-
readNextOperation
Description copied from interface:FbWireOperations
Reads the next operation code, after processing deferred packets.In general, calling
FbWireOperations.readResponse(WarningMessageCallback)
or one of the specificreadXXXResponse
methods should be preferred to read the response code and the response body. Use this method only for reading custom responses, or if you need to process the response in a way that is not possible withFbWireOperations.readResponse(WarningMessageCallback)
.- Specified by:
readNextOperation
in interfaceFbWireOperations
- Returns:
- next operation
- Throws:
IOException
- for errors reading the operation from the connection
-
processOperation
Reads the response based on the specified operation.- Parameters:
operation
- Database operation- Returns:
- Response object for the operation
- Throws:
SQLException
- For errors reading the response from the connection.IOException
- For errors reading the response from the connection.
-
readBatchCompletionResponse
protected BatchCompletionResponse readBatchCompletionResponse(XdrInputStream xdrIn) throws SQLException, IOException Reads the batch completion response (op_batch_cs
) without reading the operation code itself.- Parameters:
xdrIn
- XDR input stream to read- Returns:
- batch completion response
- Throws:
SQLException
- for errors reading the response from the connectionSQLFeatureNotSupportedException
- when the protocol version does not support this responseIOException
- for errors reading the response from the connection- Since:
- 5
-
processResponse
- Specified by:
processResponse
in interfaceFbWireOperations
- Parameters:
response
- Response to process- Throws:
SQLException
- For errors returned from the server.
-
processResponseWarnings
public final void processResponseWarnings(Response response, WarningMessageCallback warningCallback) Checks if the response included a warning and signals that warning to the WarningMessageCallback.- Specified by:
processResponseWarnings
in interfaceFbWireOperations
- Parameters:
response
- Response to process
-
readGenericResponse
public final GenericResponse readGenericResponse(WarningMessageCallback warningCallback) throws SQLException, IOException Description copied from interface:FbWireOperations
Convenience method to read a Response to a GenericResponse- Specified by:
readGenericResponse
in interfaceFbWireOperations
- Parameters:
warningCallback
- Callback object for warnings,null
for 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
public final SqlResponse readSqlResponse(WarningMessageCallback warningCallback) throws SQLException, IOException Description copied from interface:FbWireOperations
Convenience method to read a Response to a SqlResponse- Specified by:
readSqlResponse
in interfaceFbWireOperations
- Parameters:
warningCallback
- Callback object for warnings,null
for 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
public void handleCryptKeyCallback(DbCryptCallback dbCryptCallback) throws IOException, SQLException Description copied from interface:FbWireOperations
Handles the database encryption key callback.- Specified by:
handleCryptKeyCallback
in interfaceFbWireOperations
- 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
-
consumePackets
Description copied from interface:FbWireOperations
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).
- Specified by:
consumePackets
in interfaceFbWireOperations
- Parameters:
numberOfResponses
- Number of responses to consume.warningCallback
- Callback for warnings
-
writeDirect
Description copied from interface:FbWireOperations
Writes directly to theOutputStream
of 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.- Specified by:
writeDirect
in interfaceFbWireOperations
- 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:
-
setNetworkTimeout
Description copied from interface:FbWireOperations
Sets the network timeout for this attachment.- Specified by:
setNetworkTimeout
in interfaceFbWireOperations
- 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 ofmilliseconds
is smaller than 0, or if setting the timeout fails.SQLFeatureNotSupportedException
- If this attachment doesn't support changing the network timeout.
-
withLock
-
addServerKeys
- Throws:
SQLException
-
clearServerKeys
protected final void clearServerKeys() -
getClientAuthBlock
-
getAttachProperties
- Returns:
- Immutable attach properties
-
getPluginSpecificData
-
getConnection
-
getDefaultWarningMessageCallback
-