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

AlarmTestMountMultiThreadedImpl.h

Go to the documentation of this file.
00001 #ifndef AlarmTestMountMultiThreadedImpl_h
00002 #define AlarmTestMountMultiThreadedImpl_h
00003 /*******************************************************************************
00004 *    ALMA - Atacama Large Millimiter Array
00005 *    (c) European Southern Observatory, 2002
00006 *    Copyright by ESO (in the framework of the ALMA collaboration)
00007 *    and Cosylab 2002, All rights reserved
00008 *
00009 *    This library is free software; you can redistribute it and/or
00010 *    modify it under the terms of the GNU Lesser General Public
00011 *    License as published by the Free Software Foundation; either
00012 *    version 2.1 of the License, or (at your option) any later version.
00013 *
00014 *    This library is distributed in the hope that it will be useful,
00015 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
00016 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00017 *    Lesser General Public License for more details.
00018 *
00019 *    You should have received a copy of the GNU Lesser General Public
00020 *    License along with this library; if not, write to the Free Software
00021 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
00022 
00023 */
00024 
00025 #ifndef __cplusplus
00026 #error This is a C++ include file and cannot be used from plain C
00027 #endif
00028 
00030 #include <acscomponentImpl.h>
00031 
00033 #include <testCppAlarmSourceComponentsS.h>
00034 #include "AlarmSystemInterface.h"
00035 #include "ace/Task.h"
00036 
00037 using std::string;
00038 
00039 namespace testalarmsystem
00040 {
00041         class AlarmTestMountMultiThreadedImpl: public acscomponent::ACSComponentImpl,     
00042                              public virtual POA_testalarmsystem::AlarmTestMountMultiThreaded
00043         {
00044                 public:
00048                         AlarmTestMountMultiThreadedImpl(const ACE_CString &name,maci::ContainerServices * containerServices);
00049 
00053                         virtual ~AlarmTestMountMultiThreadedImpl();
00054 
00055                         void faultMount(CORBA::Long threads, CORBA::Long numFaultsPerThread, CORBA::Long mountNum);
00056                         void terminate_faultMount();
00057     
00058 
00063                         void sendAlarmLongHand(std::string& fFamily, std::string& fMember, int code, bool active, string & threadName);
00064                         void sendAlarmLongHand(std::string& fFamily, std::string& fMember, int code, bool active);
00065                         void sendAlarmShortHand(std::string& fFamily, std::string& fMember, int code, bool active);
00066                         void sendAlarmShortHandWithoutProperties(std::string& fFamily, std::string& fMember, int code, bool active);
00067                         void sendAlarmControlStyle();
00068 
00069                         void stop() { stopped = true; }
00070 
00071                 private:
00072                         // the AlarmSystemInterface
00073                         acsalarm::AlarmSystemInterface* alarmSource;
00074 
00075                         ACE_Thread_Mutex mutex;
00076 
00077                         bool stopped;
00078         };
00079 };
00080 
00081 #endif 

Generated on Thu Jan 12 2012 23:13:50 for ACS-10.0 C++ API by  doxygen 1.7.0