Class FBEventManager
- java.lang.Object
-
- org.firebirdsql.event.FBEventManager
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,EventManager
public class FBEventManager extends java.lang.Object implements EventManager
AnEventManager
implementation to listen for database events.- Author:
- Gabriel Reid, Mark Rotteveel, Vasiliy Yashkov
-
-
Constructor Summary
Constructors Constructor Description FBEventManager()
FBEventManager(GDSType gdsType)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method 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.static EventManager
createFor(java.sql.Connection connection)
Creates anEventManager
for a connection.void
disconnect()
Close the connection to the database.java.lang.String
getAuthPlugins()
Get the list of authentication plugins to try.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
setAuthPlugins(java.lang.String authPlugins)
Sets the authentication plugins to try.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.
-
-
-
Constructor Detail
-
FBEventManager
public FBEventManager()
-
FBEventManager
public FBEventManager(GDSType gdsType)
-
-
Method Detail
-
createFor
public static EventManager createFor(java.sql.Connection connection) throws java.sql.SQLException
Creates anEventManager
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 toFirebirdConnection
- Returns:
- An event manager
- Throws:
java.sql.SQLException
- Whenconnection
does not unwrap toFirebirdConnection
- Since:
- 3.0.7
-
connect
public void connect() throws java.sql.SQLException
Description copied from interface:EventManager
Make a connection with a database to listen for events.- Specified by:
connect
in interfaceEventManager
- Throws:
java.sql.SQLException
- If a database communication error occurs
-
close
public void close() throws java.sql.SQLException
Description copied from interface:EventManager
If connected, disconnects, otherwise does nothing.Contrary to
EventManager.disconnect()
, this method does not throwIllegalStateException
when not connected.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfaceEventManager
- Throws:
java.sql.SQLException
- For errors during disconnect
-
disconnect
public void disconnect() throws java.sql.SQLException
Description copied from interface:EventManager
Close the connection to the database.- Specified by:
disconnect
in interfaceEventManager
- Throws:
java.sql.SQLException
- If a database communication error occurs- See Also:
EventManager.close()
-
isConnected
public boolean isConnected()
- Specified by:
isConnected
in interfaceEventManager
- Returns:
true
when connected and able to listen for events- See Also:
EventManager.connect()
,EventManager.disconnect()
-
setUser
public void setUser(java.lang.String user)
Description copied from interface:EventManager
Sets the username for the connection to the database .- Specified by:
setUser
in interfaceEventManager
- Parameters:
user
- for the connection to the database.
-
getUser
public java.lang.String getUser()
- Specified by:
getUser
in interfaceEventManager
- Returns:
- the username for the connection to the database.
-
setPassword
public void setPassword(java.lang.String password)
Description copied from interface:EventManager
Sets the password for the connection to the database.- Specified by:
setPassword
in interfaceEventManager
- Parameters:
password
- for the connection to the database.
-
getPassword
public java.lang.String getPassword()
- Specified by:
getPassword
in interfaceEventManager
- Returns:
- the password for the connection to the database.
-
setDatabase
public void setDatabase(java.lang.String database)
Description copied from interface:EventManager
Sets the database path for the connection to the database.- Specified by:
setDatabase
in interfaceEventManager
- Parameters:
database
- path for the connection to the database.
-
getDatabase
public java.lang.String getDatabase()
- Specified by:
getDatabase
in interfaceEventManager
- Returns:
- the database path for the connection to the database.
-
getHost
public java.lang.String getHost()
- Specified by:
getHost
in interfaceEventManager
- Returns:
- the host for the connection to the database.
-
setHost
public void setHost(java.lang.String host)
Description copied from interface:EventManager
Sets the host for the connection to the database.- Specified by:
setHost
in interfaceEventManager
- Parameters:
host
- for the connection to the database.
-
getPort
public int getPort()
- Specified by:
getPort
in interfaceEventManager
- 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 interfaceEventManager
- 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 interfaceEventManager
- Returns:
- Wire encryption level
-
setWireCrypt
public void setWireCrypt(WireCrypt wireCrypt)
Description copied from interface:EventManager
Set the wire encryption level.- Specified by:
setWireCrypt
in interfaceEventManager
- Parameters:
wireCrypt
- Wire encryption level (null
not allowed)
-
getDbCryptConfig
public java.lang.String getDbCryptConfig()
Description copied from interface:EventManager
Get the database encryption plugin configuration.- Specified by:
getDbCryptConfig
in interfaceEventManager
- Returns:
- Database encryption plugin configuration, meaning plugin specific
-
setDbCryptConfig
public void setDbCryptConfig(java.lang.String dbCryptConfig)
Description copied from interface:EventManager
Sets the database encryption plugin configuration.- Specified by:
setDbCryptConfig
in interfaceEventManager
- Parameters:
dbCryptConfig
- Database encryption plugin configuration, meaning plugin specific
-
getAuthPlugins
public java.lang.String getAuthPlugins()
Description copied from interface:EventManager
Get the list of authentication plugins to try.- Specified by:
getAuthPlugins
in interfaceEventManager
- Returns:
- comma-separated list of authentication plugins, or
null
for driver default
-
setAuthPlugins
public void setAuthPlugins(java.lang.String authPlugins)
Description copied from interface:EventManager
Sets the authentication plugins to try.Invalid names are skipped during authentication.
- Specified by:
setAuthPlugins
in interfaceEventManager
- Parameters:
authPlugins
- comma-separated list of authentication plugins, ornull
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 interfaceEventManager
- 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 interfaceEventManager
- Parameters:
waitTimeout
- wait timeout in milliseconds
-
addEventListener
public void addEventListener(java.lang.String eventName, EventListener listener) throws java.sql.SQLException
Description copied from interface:EventManager
Register an EventListener that will be called when an event occurs.- Specified by:
addEventListener
in interfaceEventManager
- Parameters:
eventName
- The name of the event for which the listener will be notifiedlistener
- The EventListener that will be called when the given event occurs- Throws:
java.sql.SQLException
- If a database access error occurs
-
removeEventListener
public void removeEventListener(java.lang.String eventName, EventListener listener) throws java.sql.SQLException
Description copied from interface:EventManager
Remove an EventListener for a given event.- Specified by:
removeEventListener
in interfaceEventManager
- 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
public int waitForEvent(java.lang.String eventName) throws java.lang.InterruptedException, java.sql.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 interfaceEventManager
- 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 waitingjava.sql.SQLException
- If a database access error occurs
-
waitForEvent
public int waitForEvent(java.lang.String eventName, int timeout) throws java.lang.InterruptedException, java.sql.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 byeventName
to occur. A timeout value of0
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 interfaceEventManager
- Parameters:
eventName
- The name of the event to wait fortimeout
- 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 waitingjava.sql.SQLException
- If a database access error occurs
-
-