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
AnEventManagerimplementation 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 voidaddEventListener(java.lang.String eventName, EventListener listener)Register an EventListener that will be called when an event occurs.voidclose()If connected, disconnects, otherwise does nothing.voidconnect()Make a connection with a database to listen for events.static EventManagercreateFor(java.sql.Connection connection)Creates anEventManagerfor a connection.voiddisconnect()Close the connection to the database.java.lang.StringgetAuthPlugins()Get the list of authentication plugins to try.java.lang.StringgetDatabase()java.lang.StringgetDbCryptConfig()Get the database encryption plugin configuration.java.lang.StringgetHost()java.lang.StringgetPassword()intgetPort()java.lang.StringgetUser()longgetWaitTimeout()Get the poll timeout in milliseconds of the async thread to check whether it was stopped or not.WireCryptgetWireCrypt()Get the wire encryption level.booleanisConnected()voidremoveEventListener(java.lang.String eventName, EventListener listener)Remove an EventListener for a given event.voidsetAuthPlugins(java.lang.String authPlugins)Sets the authentication plugins to try.voidsetDatabase(java.lang.String database)Sets the database path for the connection to the database.voidsetDbCryptConfig(java.lang.String dbCryptConfig)Sets the database encryption plugin configuration.voidsetHost(java.lang.String host)Sets the host for the connection to the database.voidsetPassword(java.lang.String password)Sets the password for the connection to the database.voidsetPort(int port)Sets the port for the connection to the database.voidsetUser(java.lang.String user)Sets the username for the connection to the database .voidsetWaitTimeout(long waitTimeout)Set the poll timeout in milliseconds of the async thread to check whether it was stopped or not.voidsetWireCrypt(WireCrypt wireCrypt)Set the wire encryption level.intwaitForEvent(java.lang.String eventName)Wait for the one-time occurrence of an event.intwaitForEvent(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 anEventManagerfor a connection.The created event manager does not allow setting the properties and will instead throw
UnsupportedOperationExceptionfor 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- Whenconnectiondoes not unwrap toFirebirdConnection- Since:
- 3.0.7
-
connect
public void connect() throws java.sql.SQLExceptionDescription copied from interface:EventManagerMake a connection with a database to listen for events.- Specified by:
connectin interfaceEventManager- Throws:
java.sql.SQLException- If a database communication error occurs
-
close
public void close() throws java.sql.SQLExceptionDescription copied from interface:EventManagerIf connected, disconnects, otherwise does nothing.Contrary to
EventManager.disconnect(), this method does not throwIllegalStateExceptionwhen not connected.- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfaceEventManager- Throws:
java.sql.SQLException- For errors during disconnect
-
disconnect
public void disconnect() throws java.sql.SQLExceptionDescription copied from interface:EventManagerClose the connection to the database.- Specified by:
disconnectin interfaceEventManager- Throws:
java.sql.SQLException- If a database communication error occurs- See Also:
EventManager.close()
-
isConnected
public boolean isConnected()
- Specified by:
isConnectedin interfaceEventManager- Returns:
truewhen 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:EventManagerSets the username for the connection to the database .- Specified by:
setUserin interfaceEventManager- Parameters:
user- for the connection to the database.
-
getUser
public java.lang.String getUser()
- Specified by:
getUserin interfaceEventManager- Returns:
- the username for the connection to the database.
-
setPassword
public void setPassword(java.lang.String password)
Description copied from interface:EventManagerSets the password for the connection to the database.- Specified by:
setPasswordin interfaceEventManager- Parameters:
password- for the connection to the database.
-
getPassword
public java.lang.String getPassword()
- Specified by:
getPasswordin interfaceEventManager- Returns:
- the password for the connection to the database.
-
setDatabase
public void setDatabase(java.lang.String database)
Description copied from interface:EventManagerSets the database path for the connection to the database.- Specified by:
setDatabasein interfaceEventManager- Parameters:
database- path for the connection to the database.
-
getDatabase
public java.lang.String getDatabase()
- Specified by:
getDatabasein interfaceEventManager- Returns:
- the database path for the connection to the database.
-
getHost
public java.lang.String getHost()
- Specified by:
getHostin interfaceEventManager- Returns:
- the host for the connection to the database.
-
setHost
public void setHost(java.lang.String host)
Description copied from interface:EventManagerSets the host for the connection to the database.- Specified by:
setHostin interfaceEventManager- Parameters:
host- for the connection to the database.
-
getPort
public int getPort()
- Specified by:
getPortin interfaceEventManager- Returns:
- the port for the connection to the database.
-
setPort
public void setPort(int port)
Description copied from interface:EventManagerSets the port for the connection to the database.- Specified by:
setPortin interfaceEventManager- Parameters:
port- for the connection to the database.
-
getWireCrypt
public WireCrypt getWireCrypt()
Description copied from interface:EventManagerGet the wire encryption level.- Specified by:
getWireCryptin interfaceEventManager- Returns:
- Wire encryption level
-
setWireCrypt
public void setWireCrypt(WireCrypt wireCrypt)
Description copied from interface:EventManagerSet the wire encryption level.- Specified by:
setWireCryptin interfaceEventManager- Parameters:
wireCrypt- Wire encryption level (nullnot allowed)
-
getDbCryptConfig
public java.lang.String getDbCryptConfig()
Description copied from interface:EventManagerGet the database encryption plugin configuration.- Specified by:
getDbCryptConfigin interfaceEventManager- Returns:
- Database encryption plugin configuration, meaning plugin specific
-
setDbCryptConfig
public void setDbCryptConfig(java.lang.String dbCryptConfig)
Description copied from interface:EventManagerSets the database encryption plugin configuration.- Specified by:
setDbCryptConfigin interfaceEventManager- Parameters:
dbCryptConfig- Database encryption plugin configuration, meaning plugin specific
-
getAuthPlugins
public java.lang.String getAuthPlugins()
Description copied from interface:EventManagerGet the list of authentication plugins to try.- Specified by:
getAuthPluginsin interfaceEventManager- Returns:
- comma-separated list of authentication plugins, or
nullfor driver default
-
setAuthPlugins
public void setAuthPlugins(java.lang.String authPlugins)
Description copied from interface:EventManagerSets the authentication plugins to try.Invalid names are skipped during authentication.
- Specified by:
setAuthPluginsin interfaceEventManager- Parameters:
authPlugins- comma-separated list of authentication plugins, ornullfor driver default
-
getWaitTimeout
public long getWaitTimeout()
Description copied from interface:EventManagerGet 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:
getWaitTimeoutin interfaceEventManager- Returns:
- wait timeout in milliseconds
-
setWaitTimeout
public void setWaitTimeout(long waitTimeout)
Description copied from interface:EventManagerSet 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:
setWaitTimeoutin interfaceEventManager- Parameters:
waitTimeout- wait timeout in milliseconds
-
addEventListener
public void addEventListener(java.lang.String eventName, EventListener listener) throws java.sql.SQLExceptionDescription copied from interface:EventManagerRegister an EventListener that will be called when an event occurs.- Specified by:
addEventListenerin 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.SQLExceptionDescription copied from interface:EventManagerRemove an EventListener for a given event.- Specified by:
removeEventListenerin 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.SQLExceptionDescription copied from interface:EventManagerWait for the one-time occurrence of an event.This method blocks indefinitely until the event identified by the value of
eventNameoccurs. The return value is the number of occurrences of the requested event.- Specified by:
waitForEventin 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.SQLExceptionDescription copied from interface:EventManagerWait for the one-time occurrence of an event.This method blocks for a maximum of
timeoutmilliseconds, waiting for the event identified byeventNameto occur. A timeout value of0means wait indefinitely.The return value is the number of occurences of the event in question, or
-1if the call timed out.- Specified by:
waitForEventin 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
1if the call timed out - Throws:
java.lang.InterruptedException- If interrupted while waitingjava.sql.SQLException- If a database access error occurs
-
-