• Classes
  • Modules
  • Namespaces
  • Files
  • Related Pages
  • File List
  • File Members

AcsAlarmPublisher.h

Go to the documentation of this file.
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

Generated on Mon May 4 2015 08:27:41 for ACS-2015.4 C++ API by  doxygen 1.7.0