Go to the documentation of this file.00001 #ifndef AlarmTestMountMultiThreadedImpl_h
00002 #define AlarmTestMountMultiThreadedImpl_h
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
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                         
00073                         acsalarm::AlarmSystemInterface* alarmSource;
00074 
00075                         ACE_Thread_Mutex mutex;
00076 
00077                         bool stopped;
00078         };
00079 };
00080 
00081 #endif