java.lang.Object
org.firebirdsql.gds.ng.AbstractFbAttachment<T>
org.firebirdsql.gds.ng.AbstractFbService<WireServiceConnection>
org.firebirdsql.gds.ng.wire.AbstractFbWireService
- All Implemented Interfaces:
AutoCloseable,FbAttachment,FbService,ExceptionListenable,FbWireAttachment,FbWireService
- Direct Known Subclasses:
V10Service
public abstract class AbstractFbWireService
extends AbstractFbService<WireServiceConnection>
implements FbWireService
Abstract service implementation for the wire protocol.
- Since:
- 3.0
- Author:
- Mark Rotteveel
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.firebirdsql.gds.ng.wire.FbWireAttachment
FbWireAttachment.AcceptPacket -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final ProtocolDescriptorprotected final FbWireOperationsFields inherited from class org.firebirdsql.gds.ng.AbstractFbService
serviceListenerDispatcherFields inherited from class org.firebirdsql.gds.ng.AbstractFbAttachment
connection, exceptionListenerDispatcher -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractFbWireService(WireServiceConnection connection, ProtocolDescriptor descriptor) Creates an AbstractFbWireDatabase instance. -
Method Summary
Modifier and TypeMethodDescriptionprotected final voidChecks if a physical connection to the server is established and if the connection is attached to a database.protected final voidChecks if a physical connection to the server is established.protected final voidCloses the WireConnection associated with this connection.final ServiceParameterBufferCreates an emptyServiceParameterBuffer.final ServiceRequestBuffervoidForces the connection to close without proper detach or cleanup.final intfinal FbWireOperationsprotected final XdrInputStreamgetXdrIn()Gets the XdrInputStream.protected final XdrOutputStreamGets the XdrOutputStream.final XdrStreamAccessfinal booleanCurrent attachment status.final GenericResponsereadGenericResponse(WarningMessageCallback warningCallback) Convenience method to read a Response to a GenericResponsevoidsetNetworkTimeout(int milliseconds) Sets the network timeout for this attachment.Methods inherited from class org.firebirdsql.gds.ng.AbstractFbService
addServiceListener, close, getDescribeServiceRequestBuffer, getServiceInfo, getServiceInformationProcessor, getServiceWarningCallback, internalDetach, removeServiceListenerMethods inherited from class org.firebirdsql.gds.ng.AbstractFbAttachment
addExceptionListener, getDatatypeCoder, getEncoding, getEncodingFactory, getNetworkTimeout, getServerVersion, isLockedByCurrentThread, removeExceptionListener, requireNotAttached, safelyDetach, setAttached, setDetached, setServerVersion, withLockMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.firebirdsql.gds.ng.listeners.ExceptionListenable
addExceptionListener, removeExceptionListenerMethods inherited from interface org.firebirdsql.gds.ng.FbAttachment
attach, close, getDatatypeCoder, getEncoding, getEncodingFactory, getNetworkTimeout, getServerVersion, isLockedByCurrentThread, withLockMethods inherited from interface org.firebirdsql.gds.ng.FbService
addServiceListener, getServiceInfo, getServiceInfo, removeServiceListener, startServiceActionMethods inherited from interface org.firebirdsql.gds.ng.wire.FbWireAttachment
authReceiveResponse
-
Field Details
-
protocolDescriptor
-
wireOperations
-
-
Constructor Details
-
AbstractFbWireService
Creates an AbstractFbWireDatabase instance.- Parameters:
connection- A WireConnection with an established connection to the server.descriptor- The ProtocolDescriptor that created this connection (this is used for creating further dependent objects).
-
-
Method Details
-
getHandle
public final int getHandle()- Specified by:
getHandlein interfaceFbAttachment- Specified by:
getHandlein interfaceFbService- Returns:
- The service handle value
-
forceClose
Description copied from class:AbstractFbAttachmentForces the connection to close without proper detach or cleanup.If a given implementation does not support this, then this method should call
FbAttachment.close().Default implementation, calls
FbAttachment.close()- Specified by:
forceClosein interfaceFbAttachment- Overrides:
forceClosein classAbstractFbAttachment<WireServiceConnection>- Throws:
SQLException- For problems closing the connection.
-
createServiceParameterBuffer
Description copied from interface:FbServiceCreates an emptyServiceParameterBuffer.Attach expects a service parameter buffer to have the version as the first item. This needs to be added explicitly.
- Specified by:
createServiceParameterBufferin interfaceFbService- Returns:
- Service
-
createServiceRequestBuffer
- Specified by:
createServiceRequestBufferin interfaceFbService- Returns:
- An empty service request buffer
-
isAttached
public final boolean isAttached()Description copied from interface:FbAttachmentCurrent attachment status.- Specified by:
isAttachedin interfaceFbAttachment- Overrides:
isAttachedin classAbstractFbAttachment<WireServiceConnection>- Returns:
trueif connected to the server and attached to a database or service,falseotherwise.
-
checkConnected
Checks if a physical connection to the server is established.- Specified by:
checkConnectedin classAbstractFbAttachment<WireServiceConnection>- Throws:
SQLException- If not connected.
-
checkAttached
Checks if a physical connection to the server is established and if the connection is attached to a database.This method calls
checkConnected(), so it is not necessary to call both.- Throws:
SQLException- If the database not connected or attached.
-
setNetworkTimeout
Description copied from interface:FbAttachmentSets the network timeout for this attachment.- Specified by:
setNetworkTimeoutin interfaceFbAttachment- 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.
-
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
-
readGenericResponse
public final GenericResponse readGenericResponse(WarningMessageCallback warningCallback) throws SQLException, IOException Description copied from interface:FbWireAttachmentConvenience method to read a Response to a GenericResponse- Specified by:
readGenericResponsein interfaceFbWireAttachment- Parameters:
warningCallback- 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.
-
getXdrStreamAccess
- Specified by:
getXdrStreamAccessin interfaceFbWireAttachment- Returns:
- Instance of
XdrStreamAccessfor this attachment.
-
getWireOperations
- Specified by:
getWireOperationsin interfaceFbWireAttachment- Returns:
- Instance of
FbWireOperationsfor this attachment.
-
closeConnection
Closes the WireConnection associated with this connection.- Throws:
IOException- For errors closing the connection.
-