00001 #ifndef BACIALARMSYSTEMMONITORPATTERN_H_ 00002 #define BACIALARMSYSTEMMONITORPATTERN_H_ 00003 00004 #ifndef __cplusplus 00005 #error This is a C++ include file and cannot be used from plain C 00006 #endif 00007 00008 #include "baciAlarmSystemMonitorDisc_T.h" 00009 #include "baciROpattern.h" 00010 00011 namespace baci 00012 { 00013 00014 class ROpatternImpl; 00018 class baci_EXPORT AlarmSystemMonitorPattern : public AlarmSystemMonitorDisc<ACS::pattern, ROpatternImpl> 00019 { 00020 public: 00021 00022 AlarmSystemMonitorPattern(ROpatternImpl* property, EventDispatcher * eventDispatcher); 00023 00024 virtual ~AlarmSystemMonitorPattern(); 00025 00026 virtual void check(BACIValue &val, 00027 const ACSErr::Completion & c, 00028 const ACS::CBDescOut & desc ); 00029 00030 protected: 00031 //we need specia version for pattern 00032 virtual void clearAlarm(); 00033 00034 private: 00035 // lastValue that 00036 ACS::pattern lastValue_m; 00037 00038 //size of pattern type in bits 00039 const unsigned short patternSize_m; 00040 00041 // postion of bit 00042 unsigned short bitPos_m; 00043 00044 00045 ACS::pattern alarmTrigger_m, 00046 alarmMask_m; 00047 00048 // descriptions for bits 00049 ACS::stringSeq *bitDescriptions_mp; 00050 00051 // length of bitDescriptions (=number of bit descriptions) 00052 unsigned long bitDescLength_m; 00053 00057 void operator=(const AlarmSystemMonitorPattern&); 00058 00062 AlarmSystemMonitorPattern(const AlarmSystemMonitorPattern&); 00063 00064 };//class AlarmSystemMonitorPattern 00065 00066 }//namespace baci 00067 #endif /*BACIALARMSYSTEMPATTERN_H_*/