Purpose of Alert Recipient Client
This example sets up the client to receive notification of alert events from the Event Server. Events might be sent as well as received by a single client. Refer to Section [xref text to replace] for other details which could be incorporated into this program.
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)
{
// Initialize the API.
// Application name = "alert recipient example"
// No application qualifier.
m_spd.SPDInitClient("alert recipient example", null);
// Register a callback to handle alert events.
// No passback data is specified.
m_spd.SPDHandleEvent(SPD.SPD_eventType.SPD_alarmEvent,
new SPD.SPD_eventCallback(alarmEventCB), null);
// Client enters event processing
Application.Run();
} // function: Main
// Callback which handles alert events
static void alarmEventCB(SPD.SPD_eventType type, // event type
SPD.SPD_event this_event, // event info
object passback)
{
// Handle alert events
if (type == SPD.SPD_eventType.SPD_alarmEvent)
{
SPD.SPD_alarmEvent alert = (SPD.SPD_alarmEvent)this_event.eventData;
// Display data that is common to all events
string.Format("class={0} name={1} appl={2} applqual={3}
severity={4} id={5} qual={6} text={7}", this_event.objectClass,
this_event.objectName, this_event.applicationName,
this_event.applicationQualifier, alert.severity.ToString(),
alert.alarmIdentifier, alert.alarmQualifier, alert.alarmText);
} // alert event
else
{
// If client only registered for alert event report, this is an
// error case, and may want to have error recovery steps.
// If client registered for multiple event reports with the same
// callback function, process other event types
} // not alert event
} // function: alarmEventCB
} // class: MyProgram
}// namespace: ClientSampleProgramData Flow Diagram
This illustration shows the flow of information for the alert recipient client.