Class FBEventManager

java.lang.Object
org.firebirdsql.event.FBEventManager
All Implemented Interfaces:
AutoCloseable, EventManager

public class FBEventManager extends Object implements EventManager
An EventManager implementation to listen for database events.
Author:
Gabriel Reid, Mark Rotteveel, Vasiliy Yashkov
  • Constructor Details

    • FBEventManager

      public FBEventManager()
    • FBEventManager

      public FBEventManager(GDSType gdsType)
  • Method Details

    • createFor

      public static EventManager createFor(Connection connection) throws SQLException
      Creates an EventManager for a connection.

      The created event manager does not allow setting the properties and will instead throw UnsupportedOperationException for the setters.

      The returned instance is not necessarily an implementation of FBEventManager.

      Parameters:
      connection - A connection that unwraps to FirebirdConnection
      Returns:
      An event manager
      Throws:
      SQLException - When connection does not unwrap to FirebirdConnection
      Since:
      3.0.7
    • connect

      public void connect() throws SQLException
      Description copied from interface: EventManager
      Make a connection with a database to listen for events.
      Specified by:
      connect in interface EventManager
      Throws:
      SQLException - If a database communication error occurs
    • close

      public void close() throws SQLException
      Description copied from interface: EventManager
      If connected, disconnects, otherwise does nothing.

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

      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface EventManager
      Throws:
      SQLException - For errors during disconnect
    • disconnect

      public void disconnect() throws SQLException
      Description copied from interface: EventManager
      Close the connection to the database.
      Specified by:
      disconnect in interface EventManager
      Throws:
      SQLException - If a database communication error occurs
      See Also:
    • isConnected

      public boolean isConnected()
      Specified by:
      isConnected in interface EventManager
      Returns:
      true when connected and able to listen for events
      See Also:
    • setUser

      public void setUser(String user)
      Description copied from interface: EventManager
      Sets the username for the connection to the database .
      Specified by:
      setUser in interface EventManager
      Parameters:
      user - for the connection to the database.
    • getUser

      public String getUser()
      Specified by:
      getUser in interface EventManager
      Returns:
      the username for the connection to the database.
    • setPassword

      public void setPassword(String password)
      Description copied from interface: EventManager
      Sets the password for the connection to the database.
      Specified by:
      setPassword in interface EventManager
      Parameters:
      password - for the connection to the database.
    • getPassword

      public String getPassword()
      Specified by:
      getPassword in interface EventManager
      Returns:
      the password for the connection to the database.
    • setDatabase

      public void setDatabase(String database)
      Description copied from interface: EventManager
      Sets the database path for the connection to the database.
      Specified by:
      setDatabase in interface EventManager
      Parameters:
      database - path for the connection to the database.
    • getDatabase

      public String getDatabase()
      Specified by:
      getDatabase in interface EventManager
      Returns:
      the database path for the connection to the database.
    • getHost

      public String getHost()
      Specified by:
      getHost in interface EventManager
      Returns:
      the host for the connection to the database.
    • setHost

      public void setHost(String host)
      Description copied from interface: EventManager
      Sets the host for the connection to the database.
      Specified by:
      setHost in interface EventManager
      Parameters:
      host - for the connection to the database.
    • getPort

      public int getPort()
      Specified by:
      getPort in interface EventManager
      Returns:
      the port for the connection to the database.
    • setPort

      public void setPort(int port)
      Description copied from interface: EventManager
      Sets the port for the connection to the database.
      Specified by:
      setPort in interface EventManager
      Parameters:
      port - for the connection to the database.
    • getWireCrypt

      public WireCrypt getWireCrypt()
      Description copied from interface: EventManager
      Get the wire encryption level.
      Specified by:
      getWireCrypt in interface EventManager
      Returns:
      Wire encryption level
    • setWireCrypt

      public void setWireCrypt(WireCrypt wireCrypt)
      Description copied from interface: EventManager
      Set the wire encryption level.
      Specified by:
      setWireCrypt in interface EventManager
      Parameters:
      wireCrypt - Wire encryption level (null not allowed)
    • getDbCryptConfig

      public String getDbCryptConfig()
      Description copied from interface: EventManager
      Get the database encryption plugin configuration.
      Specified by:
      getDbCryptConfig in interface EventManager
      Returns:
      Database encryption plugin configuration, meaning plugin specific
    • setDbCryptConfig

      public void setDbCryptConfig(String dbCryptConfig)
      Description copied from interface: EventManager
      Sets the database encryption plugin configuration.
      Specified by:
      setDbCryptConfig in interface EventManager
      Parameters:
      dbCryptConfig - Database encryption plugin configuration, meaning plugin specific
    • getAuthPlugins

      public String getAuthPlugins()
      Description copied from interface: EventManager
      Get the list of authentication plugins to try.
      Specified by:
      getAuthPlugins in interface EventManager
      Returns:
      comma-separated list of authentication plugins, or null for driver default
    • setAuthPlugins

      public void setAuthPlugins(String authPlugins)
      Description copied from interface: EventManager
      Sets the authentication plugins to try.

      Invalid names are skipped during authentication.

      Specified by:
      setAuthPlugins in interface EventManager
      Parameters:
      authPlugins - comma-separated list of authentication plugins, or null for driver default
    • getWaitTimeout

      public long getWaitTimeout()
      Description copied from interface: EventManager
      Get the poll timeout in milliseconds of the async thread to check whether it was stopped or not.

      Default value is 1000 (1 second).

      Specified by:
      getWaitTimeout in interface EventManager
      Returns:
      wait timeout in milliseconds
    • setWaitTimeout

      public void setWaitTimeout(long waitTimeout)
      Description copied from interface: EventManager
      Set the poll timeout in milliseconds of the async thread to check whether it was stopped or not.

      Default value is 1000 (1 second).

      Specified by:
      setWaitTimeout in interface EventManager
      Parameters:
      waitTimeout - wait timeout in milliseconds
    • addEventListener

      public void addEventListener(String eventName, EventListener listener) throws SQLException
      Description copied from interface: EventManager
      Register an EventListener that will be called when an event occurs.
      Specified by:
      addEventListener in interface EventManager
      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:
      SQLException - If a database access error occurs
    • removeEventListener

      public void removeEventListener(String eventName, EventListener listener) throws SQLException
      Description copied from interface: EventManager
      Remove an EventListener for a given event.
      Specified by:
      removeEventListener in interface EventManager
      Parameters:
      eventName - The name of the event for which the listener will be unregistered.
      listener - The EventListener that is to be unregistered
      Throws:
      SQLException - If a database access error occurs
    • waitForEvent

      public int waitForEvent(String eventName) throws InterruptedException, SQLException
      Description copied from interface: EventManager
      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.

      Specified by:
      waitForEvent in interface EventManager
      Parameters:
      eventName - The name of the event to wait for
      Returns:
      The number of occurences of the requested event
      Throws:
      InterruptedException - If interrupted while waiting
      SQLException - If a database access error occurs
    • waitForEvent

      public int waitForEvent(String eventName, int timeout) throws InterruptedException, SQLException
      Description copied from interface: EventManager
      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.

      Specified by:
      waitForEvent in interface EventManager
      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:
      InterruptedException - If interrupted while waiting
      SQLException - If a database access error occurs