00001 #ifndef ALARM_SYSTEM_INTERFACE_PROXY_H 00002 #define ALARM_SYSTEM_INTERFACE_PROXY_H 00003 00004 #include "AlarmSystemInterface.h" 00005 #include "AcsAlarmPublisher.h" 00006 00007 namespace laserSource 00008 { 00009 class CERNAlarmSystemInterfaceProxy : public acsalarm::AlarmSystemInterface 00010 { 00011 public: 00012 CERNAlarmSystemInterfaceProxy(); 00013 CERNAlarmSystemInterfaceProxy(std::string theSourceName); 00014 virtual ~CERNAlarmSystemInterfaceProxy(); 00015 virtual void close(); 00016 00017 protected: 00018 bool publishMessage(acsalarm::ASIMessage msg); 00019 00020 private: 00021 // initialization logic used by the constructors 00022 void init(); 00023 00024 // pointer to our publisher object 00025 laserSource::AcsAlarmPublisher * laserPublisher; 00026 00027 // smart ptr to the logger 00028 Logging::Logger::LoggerSmartPtr myLoggerSmartPtr; 00029 }; 00030 }; 00031 #endif 00032