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 ProtocolDescriptor
protocolDescriptor
protected FbWireOperations
wireOperations
-
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 protected
AbstractFbWireService(WireServiceConnection connection, ProtocolDescriptor descriptor)
Creates an AbstractFbWireDatabase instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
checkAttached()
Checks if a physical connection to the server is established and if the connection is attached to a database.protected void
checkConnected()
Checks if a physical connection to the server is established.protected void
closeConnection()
Closes the WireConnection associated with this connection.ServiceParameterBuffer
createServiceParameterBuffer()
Creates an emptyServiceParameterBuffer
.ServiceRequestBuffer
createServiceRequestBuffer()
protected void
finalize()
void
forceClose()
Forces the connection to close without proper detach or cleanup.int
getHandle()
protected XdrInputStream
getXdrIn()
Gets the XdrInputStream.protected XdrOutputStream
getXdrOut()
Gets the XdrOutputStream.XdrStreamAccess
getXdrStreamAccess()
boolean
isAttached()
Current attachment status.GenericResponse
readGenericResponse(WarningMessageCallback warningCallback)
Convenience method to read a Response to a GenericResponsevoid
setNetworkTimeout(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:
getHandle
in interfaceFbAttachment
- Specified by:
getHandle
in interfaceFbService
- Returns:
- The service handle value
-
forceClose
public void forceClose() throws java.sql.SQLException
Description copied from class:AbstractFbAttachment
Forces 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:
forceClose
in interfaceFbAttachment
- Overrides:
forceClose
in classAbstractFbAttachment<WireServiceConnection>
- Throws:
java.sql.SQLException
- For problems closing the connection.
-
createServiceParameterBuffer
public final ServiceParameterBuffer createServiceParameterBuffer()
Description copied from interface:FbService
Creates an emptyServiceParameterBuffer
.Attach expects a service parameter buffer to have the version as the first item. This needs to be added explicitly.
- Specified by:
createServiceParameterBuffer
in interfaceFbService
- Returns:
- Service
-
createServiceRequestBuffer
public final ServiceRequestBuffer createServiceRequestBuffer()
- Specified by:
createServiceRequestBuffer
in interfaceFbService
- Returns:
- An empty service request buffer
-
isAttached
public final boolean isAttached()
Description copied from interface:FbAttachment
Current attachment status.- Specified by:
isAttached
in interfaceFbAttachment
- Overrides:
isAttached
in classAbstractFbAttachment<WireServiceConnection>
- Returns:
true
if connected to the server and attached to a database or service,false
otherwise.
-
checkConnected
protected final void checkConnected() throws java.sql.SQLException
Checks if a physical connection to the server is established.- Specified by:
checkConnected
in classAbstractFbAttachment<WireServiceConnection>
- Throws:
java.sql.SQLException
- If not connected.
-
checkAttached
protected final void checkAttached() throws java.sql.SQLException
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:
java.sql.SQLException
- If the database not connected or attached.
-
setNetworkTimeout
public void setNetworkTimeout(int milliseconds) throws java.sql.SQLException
Description copied from interface:FbAttachment
Sets the network timeout for this attachment.- Specified by:
setNetworkTimeout
in 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 ofmilliseconds
is 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:FbWireAttachment
Convenience method to read a Response to a GenericResponse- Specified by:
readGenericResponse
in interfaceFbWireAttachment
- Parameters:
warningCallback
- Callback object for warnings,null
for 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:
getXdrStreamAccess
in interfaceFbWireAttachment
- Returns:
- Instance of
XdrStreamAccess
for this attachment.
-
closeConnection
protected final void closeConnection() throws java.io.IOException
Closes the WireConnection associated with this connection.- Throws:
java.io.IOException
- For errors closing the connection.
-
finalize
protected void finalize() throws java.lang.Throwable
- Overrides:
finalize
in classjava.lang.Object
- Throws:
java.lang.Throwable
-
-