Package org.firebirdsql.gds.ng.wire
Class AbstractFbWireService
- java.lang.Object
-
- org.firebirdsql.gds.ng.AbstractFbAttachment<T>
-
- org.firebirdsql.gds.ng.AbstractFbService<WireServiceConnection>
-
- org.firebirdsql.gds.ng.wire.AbstractFbWireService
-
- All Implemented Interfaces:
java.lang.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
Fields Modifier and Type Field Description protected ProtocolDescriptorprotocolDescriptorprotected FbWireOperationswireOperations-
Fields inherited from class org.firebirdsql.gds.ng.AbstractFbService
serviceListenerDispatcher
-
Fields inherited from class org.firebirdsql.gds.ng.AbstractFbAttachment
connection, exceptionListenerDispatcher
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractFbWireService(WireServiceConnection connection, ProtocolDescriptor descriptor)Creates an AbstractFbWireDatabase instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcheckAttached()Checks if a physical connection to the server is established and if the connection is attached to a database.protected voidcheckConnected()Checks if a physical connection to the server is established.protected voidcloseConnection()Closes the WireConnection associated with this connection.ServiceParameterBuffercreateServiceParameterBuffer()Creates an emptyServiceParameterBuffer.ServiceRequestBuffercreateServiceRequestBuffer()protected voidfinalize()voidforceClose()Forces the connection to close without proper detach or cleanup.intgetHandle()protected XdrInputStreamgetXdrIn()Gets the XdrInputStream.protected XdrOutputStreamgetXdrOut()Gets the XdrOutputStream.XdrStreamAccessgetXdrStreamAccess()booleanisAttached()Current attachment status.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, removeServiceListener
-
Methods inherited from class org.firebirdsql.gds.ng.AbstractFbAttachment
addExceptionListener, getDatatypeCoder, getEncoding, getEncodingFactory, getNetworkTimeout, getServerVersion, getServerVersionInformation, isLockedByCurrentThread, removeExceptionListener, safelyDetach, setAttached, setDetached, setServerVersion, withLock
-
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.firebirdsql.gds.ng.listeners.ExceptionListenable
addExceptionListener, removeExceptionListener
-
Methods inherited from interface org.firebirdsql.gds.ng.FbAttachment
attach, close, getDatatypeCoder, getEncoding, getEncodingFactory, getNetworkTimeout, getServerVersion, isLockedByCurrentThread, withLock
-
Methods inherited from interface org.firebirdsql.gds.ng.FbService
addServiceListener, getServiceInfo, getServiceInfo, removeServiceListener, startServiceAction
-
Methods inherited from interface org.firebirdsql.gds.ng.wire.FbWireAttachment
authReceiveResponse
-
-
-
-
Field Detail
-
protocolDescriptor
protected final ProtocolDescriptor protocolDescriptor
-
wireOperations
protected final FbWireOperations wireOperations
-
-
Constructor Detail
-
AbstractFbWireService
protected AbstractFbWireService(WireServiceConnection connection, ProtocolDescriptor descriptor)
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 Detail
-
getHandle
public final int getHandle()
- Specified by:
getHandlein interfaceFbAttachment- Specified by:
getHandlein interfaceFbService- Returns:
- The service handle value
-
forceClose
public void forceClose() throws java.sql.SQLExceptionDescription 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:
java.sql.SQLException- For problems closing the connection.
-
createServiceParameterBuffer
public final ServiceParameterBuffer 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
public final ServiceRequestBuffer 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
protected final void checkConnected() throws java.sql.SQLExceptionChecks if a physical connection to the server is established.- Specified by:
checkConnectedin classAbstractFbAttachment<WireServiceConnection>- Throws:
java.sql.SQLException- If not connected.
-
checkAttached
protected final void checkAttached() throws java.sql.SQLExceptionChecks 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:
java.sql.SQLException- If the database not connected or attached.
-
setNetworkTimeout
public void setNetworkTimeout(int milliseconds) throws java.sql.SQLExceptionDescription 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:
java.sql.SQLException- If this attachment is closed, the value ofmillisecondsis smaller than 0, or if setting the timeout fails.java.sql.SQLFeatureNotSupportedException- If this attachment doesn't support (changing) the network timeout.
-
getXdrIn
protected final XdrInputStream getXdrIn() throws java.sql.SQLException
Gets the XdrInputStream.- Returns:
- Instance of XdrInputStream
- Throws:
java.sql.SQLException- If no connection is opened or when exceptions occur retrieving the InputStream
-
getXdrOut
protected final XdrOutputStream getXdrOut() throws java.sql.SQLException
Gets the XdrOutputStream.- Returns:
- Instance of XdrOutputStream
- Throws:
java.sql.SQLException- If no connection is opened or when exceptions occur retrieving the OutputStream
-
readGenericResponse
public final GenericResponse readGenericResponse(WarningMessageCallback warningCallback) throws java.sql.SQLException, java.io.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:
java.sql.SQLException- For errors returned from the server, or when attempting to read.java.io.IOException- For errors reading the response from the connection.
-
getXdrStreamAccess
public final XdrStreamAccess getXdrStreamAccess()
- Specified by:
getXdrStreamAccessin interfaceFbWireAttachment- Returns:
- Instance of
XdrStreamAccessfor this attachment.
-
closeConnection
protected final void closeConnection() throws java.io.IOExceptionCloses the WireConnection associated with this connection.- Throws:
java.io.IOException- For errors closing the connection.
-
finalize
protected void finalize() throws java.lang.Throwable- Overrides:
finalizein classjava.lang.Object- Throws:
java.lang.Throwable
-
-