00001 #ifndef ACS_ALARM_PUBLISHER_H 00002 #define ACS_ALARM_PUBLISHER_H 00003 /******************************************************************************* 00004 * ALMA - Atacama Large Millimiter Array 00005 * (c) National Research Council of Canada, 2005 00006 * 00007 * This library is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2.1 of the License, or (at your option) any later version. 00011 * 00012 * This library is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with this library; if not, write to the Free Software 00019 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00020 * 00021 */ 00022 #include "AlarmSupplier.h" 00023 #include "ASIMessage.h" 00024 00025 namespace laserSource 00026 { 00027 /* 00028 * Concrete alarm publisher which uses ACS Notification Channel 00029 * for communication mechanism to send alarms to the laser alarm server. 00030 * The Notification-Service-related functionality is encapsulated in 00031 * a separate class (which is used by this class), AlarmSupplier. 00032 */ 00033 class AcsAlarmPublisher 00034 { 00035 public: 00036 AcsAlarmPublisher(std::string topicName); 00037 virtual ~AcsAlarmPublisher(); 00038 00039 /* 00040 * Method to publish an alarm to the laser alarm server. 00041 * @param msg the ASIMessage to publish. 00042 * @throw In case of error publishing the message 00043 */ 00044 virtual void publishAlarm(acsalarm::ASIMessage msg); 00045 00046 private: 00047 AlarmSupplier * alarmSupplier; 00048 00055 CosNaming::NamingContext_var getNamingService(); 00056 00064 static CosNaming::NamingContext_var naming_v; 00065 }; 00066 }; 00067 00068 #endif