Package org.firebirdsql.gds.ng.wire
Interface FbWireAsynchronousChannel
-
- All Known Implementing Classes:
V10AsynchronousChannel
public interface FbWireAsynchronousChannel
Interface for the asynchronous channel used for event notification.- Since:
- 3.0
- Author:
- Mark Rotteveel
-
-
Method Summary
All Methods Instance Methods Abstract 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.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 channel
-
-
-
Method Detail
-
connect
void connect(java.lang.String hostName, int portNumber, int auxHandle) throws java.sql.SQLException
Connects the asynchronous channel to the specified port.- 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
void close() throws java.sql.SQLException
Disconnect the asynchronous channel.Once closed, the connection can be reestablished using
connect(String, int, int)
.Calling
close
on a closed channel is a no-op; no exception should be thrown.- Throws:
java.sql.SQLException
- For errors closing the channel
-
isConnected
boolean isConnected()
- Returns:
true
if connected, otherwisefalse
-
addChannelListener
void addChannelListener(AsynchronousChannelListener listener)
Register a listener for this channel.- Parameters:
listener
- Listener
-
removeChannelListener
void removeChannelListener(AsynchronousChannelListener listener)
Remove a listener from this channel- Parameters:
listener
- Listener
-
getSocketChannel
java.nio.channels.SocketChannel getSocketChannel() throws java.sql.SQLException
- Returns:
- The socket channel associated with this asynchronous channel
- Throws:
java.sql.SQLException
- If not currently connected
-
getEventBuffer
java.nio.ByteBuffer getEventBuffer()
- Returns:
- The byte buffer for event data
-
processEventData
void processEventData()
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).
-
queueEvent
void queueEvent(EventHandle eventHandle) throws java.sql.SQLException
Queues a wait for an event.- Parameters:
eventHandle
- Event handle- Throws:
java.sql.SQLException
-
cancelEvent
void cancelEvent(EventHandle eventHandle) throws java.sql.SQLException
Cancels a registered event.- Parameters:
eventHandle
- The event handle to cancel- Throws:
java.sql.SQLException
- For errors cancelling the event
-
-