Monitoring Event State

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

using System;
using Spo.SPDlib;
using System.Windows.Forms;
namespace ExamplesOfAPIUsage
{
    class MyAlertPrgram
    {
        // create a SPD class instance
        static SPD m_spd = new SPD();
        // Additional class member attributes declaration...
        [STAThread]
        static void Main(string[] args)
        {
            //string caller = "Main()";
            // Initialize the API.
            // Application name = "event state example"
            // No application qualifier.
            m_spd.SPDInitClient("event state example", null);
            // Monitor the state of alert events 
            m_spd.SPDMonitorEventState(SPD.SPD_eventType.SPD_alarmEvent, 
               new SPD.SPD_eventStateCallback(stateChgEventCB), null);
            // Monitor the state of log events 
            m_spd.SPDMonitorEventState(SPD.SPD_eventType.SPD_logEvent, new 
               SPD.SPD_eventStateCallback(stateChgEventCB), null);
            // Client enters event processing
            Application.Run();
        } // function: Main
        // Callback which handles event state changes
        static void stateChgEventCB(SPD.SPD_eventType type, 	// event type
                            SPD.SPD_eventStateType status,	// event info
                            object passback)
        {
            switch (type)
            {
                case SPD.SPD_eventType.SPD_alarmEvent:
                    switch (status)
                    {
                        case SPD.SPD_eventStateType.SPD_eventUp:
                            // alert events are up, i.e., they may be sent and 
                            //   received.
                            break;
                        case SPD.SPD_eventStateType.SPD_eventDown:
                            // alert events are down, i.e., it is not possible to 
                            //   send or receive them.
                            break;
                    } // end of switch (status)
                    break;
                case SPD.SPD_eventType.SPD_logEvent:
                    switch (status)
                    {
                        case SPD.SPD_eventStateType.SPD_eventUp:
                            // Log events are up, i.e., it is possible to log a 
                            // message with Operations Sentinel logging.
                            break;
                        case SPD.SPD_eventStateType.SPD_eventDown:
                            // Log events are down, i.e., it is not possible to log
                            // a message with Operations Sentinel logging.
                            break;
                    } // end of switch (status)
                    break;
            } // end of switch (type)
        } // function: stateChgEventCB
    } // class: MyProgram
}// namespace: ClientSampleProgram