Class V10AsynchronousChannel
- java.lang.Object
-
- org.firebirdsql.gds.ng.wire.version10.V10AsynchronousChannel
-
- All Implemented Interfaces:
FbWireAsynchronousChannel
public class V10AsynchronousChannel extends java.lang.Object implements FbWireAsynchronousChannel
Asynchronous channel implementation for the V10 wire protocol.- Since:
- 3.0
- Author:
- Mark Rotteveel
-
-
Constructor Summary
Constructors Constructor Description V10AsynchronousChannel(FbWireDatabase database)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addChannelListener(AsynchronousChannelListener listener)
Register a listener for this channel.void
cancelEvent(EventHandle eventHandle)
Cancels a registered event.void
close()
Disconnect the asynchronous channel.void
connect(java.lang.String hostName, int portNumber, int auxHandle)
Connects the asynchronous channel to the specified port.protected void
finalize()
java.nio.ByteBuffer
getEventBuffer()
java.nio.channels.SocketChannel
getSocketChannel()
boolean
isConnected()
void
processEventData()
Process the current event data in the buffer.void
queueEvent(EventHandle eventHandle)
Queues a wait for an event.void
removeChannelListener(AsynchronousChannelListener listener)
Remove a listener from this channelprotected LockCloseable
withLock()
-
-
-
Constructor Detail
-
V10AsynchronousChannel
public V10AsynchronousChannel(FbWireDatabase database)
-
-
Method Detail
-
withLock
protected final LockCloseable withLock()
- See Also:
FbAttachment.withLock()
-
connect
public void connect(java.lang.String hostName, int portNumber, int auxHandle) throws java.sql.SQLException
Description copied from interface:FbWireAsynchronousChannel
Connects the asynchronous channel to the specified port.- Specified by:
connect
in interfaceFbWireAsynchronousChannel
- Parameters:
hostName
- HostnameportNumber
- The port numberauxHandle
- Handle identifier for this asynchronous channel- Throws:
java.sql.SQLException
- For errors connecting, or if the connection is already established
-
close
public void close() throws java.sql.SQLException
Description copied from interface:FbWireAsynchronousChannel
Disconnect the asynchronous channel.Once closed, the connection can be reestablished using
FbWireAsynchronousChannel.connect(String, int, int)
.Calling
close
on a closed channel is a no-op; no exception should be thrown.- Specified by:
close
in interfaceFbWireAsynchronousChannel
- Throws:
java.sql.SQLException
- For errors closing the channel
-
isConnected
public boolean isConnected()
- Specified by:
isConnected
in interfaceFbWireAsynchronousChannel
- Returns:
true
if connected, otherwisefalse
-
addChannelListener
public void addChannelListener(AsynchronousChannelListener listener)
Description copied from interface:FbWireAsynchronousChannel
Register a listener for this channel.- Specified by:
addChannelListener
in interfaceFbWireAsynchronousChannel
- Parameters:
listener
- Listener
-
removeChannelListener
public void removeChannelListener(AsynchronousChannelListener listener)
Description copied from interface:FbWireAsynchronousChannel
Remove a listener from this channel- Specified by:
removeChannelListener
in interfaceFbWireAsynchronousChannel
- Parameters:
listener
- Listener
-
getSocketChannel
public java.nio.channels.SocketChannel getSocketChannel() throws java.sql.SQLException
- Specified by:
getSocketChannel
in interfaceFbWireAsynchronousChannel
- Returns:
- The socket channel associated with this asynchronous channel
- Throws:
java.sql.SQLException
- If not currently connected
-
getEventBuffer
public java.nio.ByteBuffer getEventBuffer()
- Specified by:
getEventBuffer
in interfaceFbWireAsynchronousChannel
- Returns:
- The byte buffer for event data
-
processEventData
public void processEventData()
Description copied from interface:FbWireAsynchronousChannel
Process the current event data in the buffer.This is only to be called by the
AsynchronousProcessor
. Implementations should be ready to deal with incomplete data in the event buffer (eg by not processing).- Specified by:
processEventData
in interfaceFbWireAsynchronousChannel
-
queueEvent
public void queueEvent(EventHandle eventHandle) throws java.sql.SQLException
Description copied from interface:FbWireAsynchronousChannel
Queues a wait for an event.- Specified by:
queueEvent
in interfaceFbWireAsynchronousChannel
- Parameters:
eventHandle
- Event handle- Throws:
java.sql.SQLException
-
cancelEvent
public void cancelEvent(EventHandle eventHandle) throws java.sql.SQLException
Description copied from interface:FbWireAsynchronousChannel
Cancels a registered event.- Specified by:
cancelEvent
in interfaceFbWireAsynchronousChannel
- Parameters:
eventHandle
- The event handle to cancel- Throws:
java.sql.SQLException
- For errors cancelling the event
-
finalize
protected void finalize() throws java.lang.Throwable
- Overrides:
finalize
in classjava.lang.Object
- Throws:
java.lang.Throwable
-
-