Listeners can be registered using the addListener() methods and receive an EventRegistration that will be used to unregister using the removeListener().
When a listener is detroyed it automaticaly unregister.
Sample usage:
Here is an example of using DataEventSession for registring a listener over matching entries:
// Prepare the session
EventSessionFactoryPtr factory( EventSessionFactory::getFactory(spaceProxy));
// create a session configuration
EventSessionConfigPtr config( EventSessionConfig::CreateSessionConfig(spaceProxy));
config->setComType(ComType::UNICAST); // or MULTIPLEX,MULTICAST
// creating a new DataEventSession
DataEventSessionPtr session (factory->newDataEventSession(config) );
// Create the listener using the class we defined
PersonNotifyListener listener;
// Register for notifications by adding the listener to the space with the Person template
Person personTemplate;
EventRegistrationPtr reg( session->addListener( &personTemplate, &listener, Lease::FOREVER, NotifyModifiers::NOTIFY_WRITE));
Public Member Functions | |
EventRegistrationPtr | addListener (const SqlQuery &sqlQuery, IRemoteEventListener *pListener, long long timeout=MAX_TIMEOUT, int actionTypes=NotifyModifiers::NOTIFY_ALL) |
Registers a listener with a space using a template. | |
EventRegistrationPtr | addListener (IEntry *pIEntryTemplate, IRemoteEventListener *pListener, long long timeout=MAX_TIMEOUT, int actionTypes=NotifyModifiers::NOTIFY_ALL) |
Registers a listener with a space using a template. | |
virtual void | close () |
Closes the session and unregisters all listeners. | |
void | removeListener (EventRegistrationPtr registration) |
Unregisters the listener from the space. |
EventRegistrationPtr DataEventSession::addListener | ( | const SqlQuery & | sqlQuery, | |
IRemoteEventListener * | pListener, | |||
long long | timeout = MAX_TIMEOUT , |
|||
int | actionTypes = NotifyModifiers::NOTIFY_ALL | |||
) |
Registers a listener with a space using a template.
sqlQuery | - SqlQuery object used for matching. | |
pListener | - user defined listener implementing IRemoteEventListener | |
timeout | - the time duration in which the listener will be receiving calls. Default value is MAX_TIMEOUT. | |
actionTypes | - the type of actions you wish to receive notification on, see NotifyModifiers. Default value is NotifyModifiers::NOTIFY_ALL. |
RemoteException | if the space has failed to perform the registration | |
TransactionException | if the transaction associated with this session has expired. |
EventRegistrationPtr DataEventSession::addListener | ( | IEntry * | pIEntryTemplate, | |
IRemoteEventListener * | pListener, | |||
long long | timeout = MAX_TIMEOUT , |
|||
int | actionTypes = NotifyModifiers::NOTIFY_ALL | |||
) |
Registers a listener with a space using a template.
pIEntryTemplate | - Pointer to an IEntry template used for matching. | |
pListener | - user defined listener implementing IRemoteEventListener | |
timeout | - the time duration in which the listener will be receiving calls. Default value is MAX_TIMEOUT. | |
actionTypes | - the type of actions you wish to receive notification on, see NotifyModifiers. Default value is NotifyModifiers::NOTIFY_ALL. |
RemoteException | if the space has failed to perform the registration | |
TransactionException | if the transaction associated with this session has expired. |
void DataEventSession::close | ( | void | ) | [virtual] |
Closes the session and unregisters all listeners.
RemoteException | if the remove space failed to remove the notification registration. | |
UnknownLeaseException | if the listeners lease has expired. |
Implements EventSession.
void DataEventSession::removeListener | ( | EventRegistrationPtr | registration | ) |
Unregisters the listener from the space.
registration | - the registration object received from the server when the listener was added. |
RemoteException | if the space has failed to unregister the listener. | |
UnknownLeaseException | if the lease of the registration is invalid. |