Purpose of Monitoring Event State Client
This example illustrates a client that monitors the state of the Event Server for specific events. The Event Server has various internal components that handle the routing of events. A client program can register a callback to track the availability of these internal components based upon the event type.
Code
void eventStateCallback (
SPD_eventTypeTP,
SPD_eventStateTP,
SPD_passbackTP
);
main (
int argc,
char **argv
)
{
/* Initialize the API.
Application name = "event state example".
No application qualifier.
*/
SPD_InitClient("event state example", NULL);
/* Monitor the state of alarm events */
SPD_MonitorEventState(SPD_alarmEventCN, eventStateCallback,
NULL);
/* Monitor the state of log events */
SPD_MonitorEventState(SPD_logEventCN, eventStateCallback, NULL);
}
/* Callback which handles event state changes */
void eventStateCallback(
SPD_eventTypeTP event, /* Type of event */
SPD_eventStateTP state, /* New state of event */
SPD_passbackTP passback /* Passback data */
)
{
switch (event) {
case SPD_alarmEventCN:
switch (state) {
case SPD_eventUpCN:
/* Alarm events are up, i.e., they may be sent and
received.
*/
break;
case SPD_eventDownCN:
/* Alarm events are down, i.e., it is not possible
to send or receive them.
*/
break;
}
case SPD_logEventCN:
switch (state) {
case SPD_eventUpCN:
/* Log events are up, i.e., it is possible
to log a message with Operations Sentinel (SPO) logging.
*/
break;
case SPD_eventDownCN:
/* Log events are down, i.e., it is not possible
to log a message with Operations Sentinel (SPO) logging.
*/
break;
}
}
}