org.firebirdsql.event

## Interface EventManager

- All Superinterfaces:
    java.lang.AutoCloseable
  All Known Implementing Classes:
    FBEventManager

      public interface EventManager
      extends java.lang.AutoCloseable

  An interface for registering `EventListener` instances to listen for database events.
  Author:
    Gabriel Reid, Mark Rotteveel

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addEventListener(java.lang.String eventName, EventListener listener)` Register an EventListener that will be called when an event occurs.
    `void` | `close()` If connected, disconnects, otherwise does nothing.
    `void` | `connect()` Make a connection with a database to listen for events.
    `void` | `disconnect()` Close the connection to the database.
    `java.lang.String` | `getDatabase()`
    `java.lang.String` | `getDbCryptConfig()` Get the database encryption plugin configuration.
    `java.lang.String` | `getHost()`
    `java.lang.String` | `getPassword()`
    `int` | `getPort()`
    `java.lang.String` | `getUser()`
    `long` | `getWaitTimeout()` Get the poll timeout in milliseconds of the async thread to check whether it was stopped or not.
    `WireCrypt` | `getWireCrypt()` Get the wire encryption level.
    `boolean` | `isConnected()`
    `void` | `removeEventListener(java.lang.String eventName, EventListener listener)` Remove an EventListener for a given event.
    `void` | `setDatabase(java.lang.String database)` Sets the database path for the connection to the database.
    `void` | `setDbCryptConfig(java.lang.String dbCryptConfig)` Sets the database encryption plugin configuration.
    `void` | `setHost(java.lang.String host)` Sets the host for the connection to the database.
    `void` | `setPassword(java.lang.String password)` Sets the password for the connection to the database.
    `void` | `setPort(int port)` Sets the port for the connection to the database.
    `void` | `setUser(java.lang.String user)` Sets the username for the connection to the database .
    `void` | `setWaitTimeout(long waitTimeout)` Set the poll timeout in milliseconds of the async thread to check whether it was stopped or not.
    `void` | `setWireCrypt(WireCrypt wireCrypt)` Set the wire encryption level.
    `int` | `waitForEvent(java.lang.String eventName)` Wait for the one-time occurrence of an event.
    `int` | `waitForEvent(java.lang.String eventName, int timeout)` Wait for the one-time occurrence of an event.

- - ### Method Detail

    - #### connect

          void connect()
                throws java.sql.SQLException

      Make a connection with a database to listen for events.
      Throws:
        `java.sql.SQLException` - If a database communication error occurs
        `java.lang.IllegalStateException` - If already connected

    - #### close

          void close()
              throws java.sql.SQLException

      If connected, disconnects, otherwise does nothing.

      Contrary to `disconnect()`, this method does not throw `IllegalStateException` when not connected.

      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      Throws:
        `java.sql.SQLException` - For errors during disconnect
      Since:
        3.0.7

    - #### disconnect

          void disconnect()
                   throws java.sql.SQLException

      Close the connection to the database.
      Throws:
        `java.sql.SQLException` - If a database communication error occurs
        `java.lang.IllegalStateException` - If not currently connected
      See Also:
        `close()`

    - #### isConnected

          boolean isConnected()

      Returns:
        `true` when connected and able to listen for events
      See Also:
        `connect()`, `disconnect()`

    - #### setUser

          void setUser(java.lang.String user)

      Sets the username for the connection to the database .
      Parameters:
        `user` - for the connection to the database.

    - #### getUser

          java.lang.String getUser()

      Returns:
        the username for the connection to the database.

    - #### setPassword

          void setPassword(java.lang.String password)

      Sets the password for the connection to the database.
      Parameters:
        `password` - for the connection to the database.

    - #### getPassword

          java.lang.String getPassword()

      Returns:
        the password for the connection to the database.

    - #### setDatabase

          void setDatabase(java.lang.String database)

      Sets the database path for the connection to the database.
      Parameters:
        `database` - path for the connection to the database.

    - #### getDatabase

          java.lang.String getDatabase()

      Returns:
        the database path for the connection to the database.

    - #### getHost

          java.lang.String getHost()

      Returns:
        the host for the connection to the database.

    - #### setHost

          void setHost(java.lang.String host)

      Sets the host for the connection to the database.
      Parameters:
        `host` - for the connection to the database.

    - #### getPort

          int getPort()

      Returns:
        the port for the connection to the database.

    - #### setPort

          void setPort(int port)

      Sets the port for the connection to the database.
      Parameters:
        `port` - for the connection to the database.

    - #### getWireCrypt

          WireCrypt getWireCrypt()

      Get the wire encryption level.
      Returns:
        Wire encryption level
      Since:
        3.0.4

    - #### setWireCrypt

          void setWireCrypt(WireCrypt wireCrypt)

      Set the wire encryption level.
      Parameters:
        `wireCrypt` - Wire encryption level (`null` not allowed)
      Since:
        3.0.4

    - #### getDbCryptConfig

          java.lang.String getDbCryptConfig()

      Get the database encryption plugin configuration.
      Returns:
        Database encryption plugin configuration, meaning plugin specific
      Since:
        3.0.4

    - #### setDbCryptConfig

          void setDbCryptConfig(java.lang.String dbCryptConfig)

      Sets the database encryption plugin configuration.
      Parameters:
        `dbCryptConfig` - Database encryption plugin configuration, meaning plugin specific
      Since:
        3.0.4

    - #### getWaitTimeout

          long getWaitTimeout()

      Get the poll timeout in milliseconds of the async thread to check whether it was stopped or not.

      Default value is 1000 (1 second).

      Returns:
        wait timeout in milliseconds

    - #### setWaitTimeout

          void setWaitTimeout(long waitTimeout)

      Set the poll timeout in milliseconds of the async thread to check whether it was stopped or not.

      Default value is 1000 (1 second).

      Parameters:
        `waitTimeout` - wait timeout in milliseconds

    - #### addEventListener

          void addEventListener(java.lang.String eventName,
                                EventListener listener)
                         throws java.sql.SQLException

      Register an EventListener that will be called when an event occurs.
      Parameters:
        `eventName` - The name of the event for which the listener will be notified
        `listener` - The EventListener that will be called when the given event occurs
      Throws:
        `java.sql.SQLException` - If a database access error occurs

    - #### removeEventListener

          void removeEventListener(java.lang.String eventName,
                                   EventListener listener)
                            throws java.sql.SQLException

      Remove an EventListener for a given event.
      Parameters:
        `eventName` - The name of the event for which the listener will be unregistered.
        `listener` - The EventListener that is to be unregistered
      Throws:
        `java.sql.SQLException` - If a database access error occurs

    - #### waitForEvent

          int waitForEvent(java.lang.String eventName)
                    throws java.lang.InterruptedException,
                           java.sql.SQLException

      Wait for the one-time occurrence of an event.

      This method blocks indefinitely until the event identified by the value of `eventName` occurs. The return value is the number of occurrences of the requested event.

      Parameters:
        `eventName` - The name of the event to wait for
      Returns:
        The number of occurences of the requested event
      Throws:
        `java.lang.InterruptedException` - If interrupted while waiting
        `java.sql.SQLException` - If a database access error occurs

    - #### waitForEvent

          int waitForEvent(java.lang.String eventName,
                           int timeout)
                    throws java.lang.InterruptedException,
                           java.sql.SQLException

      Wait for the one-time occurrence of an event.

      This method blocks for a maximum of `timeout` milliseconds, waiting for the event identified by `eventName` to occur. A timeout value of `0` means wait indefinitely.

      The return value is the number of occurences of the event in question, or `-1` if the call timed out.

      Parameters:
        `eventName` - The name of the event to wait for
        `timeout` - The maximum number of milliseconds to wait
      Returns:
        The number of occurrences of the requested event, or `1` if the call timed out
      Throws:
        `java.lang.InterruptedException` - If interrupted while waiting
        `java.sql.SQLException` - If a database access error occurs

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