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

    Methods
    Modifier and Type | Method and 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` - Hostname
        `portNumber` - The port number
        `auxHandle` - 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, otherwise `false`

    - #### 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

Copyright © 2001-2021 Jaybird (Firebird JDBC/JCA) team. All rights reserved.