// Copyright 2005-2007 THALES, BAE Systems, Raytheon #ifndef __ALMAS_DataModel_DEF #define __ALMAS_DataModel_DEF typedef long ALMAS_AlertIDType; typedef long ALMAS_TemplateIDType; typedef long ALMAS_TimeoutType; typedef long long ALMAS_DateTimeType; // long long to be EVoT compatible typedef struct { unsigned long MaxSize; unsigned long LengthUsed; [size_is(MaxSize), length_is(LengthUsed), unique] byte *pValue;} ALMAS_ByteSequence; typedef struct { unsigned long MaxSize; unsigned long LengthUsed; [size_is(MaxSize), length_is(LengthUsed), unique] LPSTR *pValue;} ALMAS_StringSet; typedef enum { Action = 1, Warning, Information, Situation} ALMAS_CategoryType; typedef enum { Raised = 1, Routed, Received, Acknowledged, Handled, Cancelled} ALMAS_StateType; typedef enum { Actual = 1, Exercise, System, Test} ALMAS_StatusType; typedef enum { PublicScope = 1, RestrictedScope, PrivateScope} ALMAS_ScopeType; typedef enum { CancelOnly = 1, NotifyOnly, CancelWithNotify} ALMAS_TimeoutActionType; typedef enum { AckByNone = 1, AckByAnyone, AckByAll} ALMAS_AckModelType; typedef struct { boolean Success; short Reason; LPSTR Description; } ALMAS_CallStatus; typedef struct { LPSTR AlternativeAction; short ActioneePriority; } ALMAS_ValidAlertResponseType; typedef struct { LPSTR RKType; LPSTR RKParentType; ALMAS_ValidAlertResponseType ValidResponse; } ALMAS_ReceiverKindType; typedef struct { unsigned long MaxSize; unsigned long LengthUsed; [size_is(MaxSize), length_is(LengthUsed), unique] ALMAS_ReceiverKindType *pValue;} ALMAS_ReceiverKindTypeSet; typedef struct { LPSTR DataType; LPSTR DataTag; LPSTR DataValue; } ALMAS_DynamicMessageDataType; typedef struct { unsigned long MaxSize; unsigned long LengthUsed; [size_is(MaxSize), length_is(LengthUsed), unique] ALMAS_DynamicMessageDataType *pValue;} ALMAS_DynamicMessageDataTypeSet; typedef struct { LPSTR MessageText; LPSTR MessageLanguage; } ALMAS_StaticMessageType; typedef struct { unsigned long MaxSize; unsigned long LengthUsed; [size_is(MaxSize), length_is(LengthUsed), unique] ALMAS_StaticMessageType *pValue;} ALMAS_StaticMessageTypeSet; typedef struct { LPSTR Name; ALMAS_ByteSequence Value; } ALMAS_AlertDataExtraAttributesType; typedef struct { unsigned long MaxSize; unsigned long LengthUsed; [size_is(MaxSize), length_is(LengthUsed), unique] ALMAS_AlertDataExtraAttributesType *pValue;} ALMAS_AlertDataExtraAttributesTypeSet; typedef struct { ALMAS_TemplateIDType TemplateID; ALMAS_CategoryType Category; short Priority; ALMAS_StatusType Status; ALMAS_ScopeType Scope; ALMAS_TimeoutType Timeout; boolean ConfirmationRequired; LPSTR SecondaryGrouping; boolean Persistent; boolean ReliablyDistributed; ALMAS_TimeoutActionType TimeoutAction; ALMAS_AckModelType AcknowledgementModel; ALMAS_StaticMessageTypeSet StaticMessages; ALMAS_DynamicMessageDataTypeSet DynamicMessages; ALMAS_AlertDataExtraAttributesTypeSet ExtraAttributes;} ALMAS_AlertDataType; typedef struct { boolean Inhibited; boolean RaiseToAll; ALMAS_AlertDataType AlertData; ALMAS_ReceiverKindTypeSet ReceiverKinds; } ALMAS_AlertTemplateType; typedef struct { boolean Acknowledged; boolean Routed; boolean Actioned; boolean ReceiverIsActionee; LPSTR AlternativeAction; LPSTR ReceiverID; ALMAS_AlertIDType AlertID; } ALMAS_AlertReportType; typedef struct { LPSTR ReceiverID; ALMAS_ReceiverKindType ReceiverKind; } ALMAS_AvailableAlertReceiverType; typedef struct { unsigned long MaxSize; unsigned long LengthUsed; [size_is(MaxSize), length_is(LengthUsed), unique] ALMAS_AvailableAlertReceiverType *pValue; } ALMAS_AvailableAlertReceiverTypeSet; typedef struct { ALMAS_AlertIDType AlertID; ALMAS_DateTimeType RaisingTime; ALMAS_StateType CurrentState; LPSTR ProducerID; ALMAS_AlertDataType AlertData; ALMAS_AvailableAlertReceiverTypeSet Receivers; } ALMAS_Alert; #endif // Copyright 2005-2008 THALES, BAE Systems, Raytheon import “ALMAS_DataModel.idl” #ifndef __ALMAS_Client_DEF #define __ALMAS_Client_DEF [object,uuid(...),pointer_default(unique)] interface IALMAS_Receiver: IUnknown { HRESULT ALMAS_Client_StateChangeNotification ( [in] ALMAS_AlertIDType AlertID, [in] ALMAS_StateType NewState); HRESULT ALMAS_Client_AlertDataNotification (// alert ID is embedded within info [in] ALMAS_Alert AlertInfo, [out] ALMAS_AlertReportType *Report); }; [object,uuid(...),pointer_default(unique)] interface IALMAS_NotificationListener: IUnknown { HRESULT AlertDistributionNotification ( [in] ALMAS_AlertIDType AlertID, [in] ALMAS_CallStatus Status); }; #endif // Copyright 2005-2008 THALES, BAE Systems, Raytheon import “ALMAS_Client.idl” import “ALMAS_DataModel.idl” #ifndef __ALMAS_Management_DEF #define __ALMAS_Management_DEF typedef struct { unsigned long MaxSize; unsigned long LengthUsed; [size_is(MaxSize), length_is(LengthUsed), unique] ALMAS_Alert *pValue;} ALMAS_AlertSet; typedef struct { unsigned long MaxSize; unsigned long LengthUsed; [size_is(MaxSize), length_is(LengthUsed), unique] ALMAS_TemplateIDType *pValue;} ALMAS_TemplateIDTypeSet; [object,uuid(...),pointer_default(unique)] interface IALMAS_Manager : IUnknown { HRESULT _get_ALMAS_SystemID ([out] LPSTR * ALMAS_SystemID); HRESULT _put_ALMAS_SystemID ([in] LPSTR * ALMAS_SystemID); // alert retrieval methods HRESULT GetAlert ( [in] ALMAS_AlertIDType AlertID, [out] ALMAS_Alert *Alert, [out] ALMAS_CallStatus *Status); HRESULT GetAlerts ( [in] LPSTR Filter, [out] ALMAS_AlertSet *AlertSet, [out] ALMAS_CallStatus *Status); // ALMAS-wide control methods HRESULT SetAlertInhibited ( [out] ALMAS_CallStatus *Status, [in] ALMAS_TemplateIDType TemplateID, [in] boolean Inhibition); HRESULT UpdateDynamicMessageData ( [out] ALMAS_CallStatus *Status, [in] ALMAS_AlertIDType AlertID, [in] LPSTR ObjectValue, [in] ALMAS_DynamicMessageDataType OldValue); HRESULT RegisterNotificationListener ( [out] ALMAS_CallStatus *Status, [in] IALMAS_NotificationListener *Handle); // Template management methods HRESULT GetTemplate ( [out] ALMAS_AlertTemplateType *AlertTeplate, [in] ALMAS_TemplateIDType TemplateID, [out] ALMAS_CallStatus *Status); HRESULT GetAllTemplateIDs ( [out] ALMAS_CallStatus *Status, [in] LPSTR Filter, [out] ALMAS_TemplateIDTypeSet *TemplateIDSet); }; [object,uuid(...),pointer_default(unique)] interface IALMAS_ManagerExtensions : IALMAS_Manager { HRESULT RemoveAlertsWithDynamicData ( [out] ALMAS_CallStatus *CallStatus, [in] LPSTR CancellerID, [in] ALMAS_DynamicMessageDataType ObjectInfo); HRESULT AttachCategorisationRule ( [out] ALMAS_CallStatus *Status, [in] ALMAS_AlertIDType AlertID, [in] long RuleID); HRESULT DetachCategorisationRule ( [out] ALMAS_CallStatus *Status, [in] ALMAS_AlertIDType AlertID, [in] long RuleID); }; [object,uuid(...),pointer_default(unique)] interface IALMAS_Producer : IUnknown { HRESULT RaiseAlertFromOverrides ( [out] ALMAS_AlertIDType *AlertID, [in] LPSTR ProducerID, [in] ALMAS_TemplateIDType TemplateID, [in] LPSTR Message, [in] LPSTR MessageLanguage, [in] ALMAS_CategoryType Category, [in] ALMAS_StatusType AlertStatus, [in] ALMAS_ScopeType Scope, [in] ALMAS_TimeoutType Timeout, [in] boolean ConfirmationRequired, [in] ALMAS_DynamicMessageDataTypeSet DynamicMessageData, [in] ALMAS_ReceiverKindTypeSet AlertReceivers, [in] short Priority, [in] ALMAS_TimeoutActionType TimeoutAction, [in] ALMAS_AckModelType AcknowledgementModel, [out] ALMAS_CallStatus *Status); HRESULT RaiseAlertFromData ( [out] ALMAS_AlertIDType *AlertID, [in] LPSTR ProducerID, [in] ALMAS_AlertDataType AlertData, [out] ALMAS_CallStatus *Status); HRESULT RaiseAlertFromTemplate ( [out] ALMAS_AlertIDType *AlertID, [in] LPSTR ProducerID, [in] ALMAS_TemplateIDType TemplateID, [out] ALMAS_CallStatus *Status); HRESULT UpdateAlert ( [out] ALMAS_CallStatus *CallStatus, [in] ALMAS_AlertIDType AlertID, [in] LPSTR ProducerID, [in] ALMAS_AlertDataType AlertData); HRESULT CancelAlert ( [out] ALMAS_CallStatus *CallStatus, [in] ALMAS_AlertIDType AlertID, [in] LPSTR CancellerID, [in] LPSTR CancellationReason); }; [object,uuid(...),pointer_default(unique)] interface IALMAS_Responder : IUnknown { HRESULT RegisterReceiver ( [out] ALMAS_CallStatus *CallStatus, [in] IALMAS_Receiver *Handle, [in] ALMAS_AvailableAlertReceiverType Receiver); HRESULT Unregister ( [out] ALMAS_CallStatus *CallStatus, [in] LPSTR ReceiverID); HRESULT AcknowledgeAlert ( [out] ALMAS_CallStatus *CallStatus, [in] ALMAS_AlertIDType AlertID, [in] LPSTR ReceiverID); HRESULT HandleAlert ( [out] ALMAS_CallStatus *CallStatus, [in] ALMAS_AlertIDType AlertID, [in] LPSTR ReceiverID); HRESULT ConfirmReceipt ( [out] ALMAS_CallStatus *CallStatus, [in] ALMAS_AlertIDType AlertID, [in] LPSTR ReceiverID); }; [object,uuid(...),pointer_default(unique)] interface IALMAS_ResponderExtensions : IALMAS_Responder { HRESULT SetLanguage ( [out] ALMAS_CallStatus *CallStatus, [in] LPSTR ReceiverID, [in] LPSTR Language); HRESULT GetFilledMessageText ( [out] ALMAS_CallStatus *CallStatus, [in] ALMAS_AlertIDType AlertID, [out] LPSTR MessageText); }; [object,uuid(...),pointer_default(unique)] interface IALMAS_Configuration : IUnknown { HRESULT LoadReceiverHierarchy ( [out] ALMAS_CallStatus *CallStatus, [in] LPSTR Filename); HRESULT LoadTemplateSet ( [out] ALMAS_CallStatus *CallStatus, [in] LPSTR Filename); HRESULT LoadConfiguration ( [out] ALMAS_CallStatus *CallStatus, [in] LPSTR Filename); }; #endif