00001 #ifndef ACS_ALARM_PUBLISHER_H 00002 #define ACS_ALARM_PUBLISHER_H 00003 00004 #include "AlarmSupplier.h" 00005 #include "ASIMessage.h" 00006 00007 namespace laserSource 00008 { 00009 /* 00010 * Concrete alarm publisher which uses ACS Notification Channel 00011 * for communication mechanism to send alarms to the laser alarm server. 00012 * The Notification-Service-related functionality is encapsulated in 00013 * a separate class (which is used by this class), AlarmSupplier. 00014 */ 00015 class AcsAlarmPublisher 00016 { 00017 public: 00018 AcsAlarmPublisher(std::string topicName); 00019 virtual ~AcsAlarmPublisher(); 00020 00021 /* 00022 * Method to publish an alarm to the laser alarm server. 00023 * @param msg the ASIMessage to publish. 00024 * @throw In case of error publishing the message 00025 */ 00026 virtual void publishAlarm(acsalarm::ASIMessage msg); 00027 00028 private: 00029 AlarmSupplier * alarmSupplier; 00030 00037 CosNaming::NamingContext_var getNamingService(); 00038 00046 static CosNaming::NamingContext_var naming_v; 00047 }; 00048 }; 00049 00050 #endif