Go to the documentation of this file.00001 #ifndef _baci_alarm_pattern_H_
00002 #define _baci_alarm_pattern_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00033 #ifndef __cplusplus
00034 #error This is a C++ include file and cannot be used from plain C
00035 #endif
00036
00037 #include <baciEvent.h>
00038 #include <ACSErrTypeAlarm.h>
00039
00040 #include "baciAlarm_T.h"
00041 #include "baciROpattern.h"
00042
00043 namespace baci {
00044
00045
00046
00047 class baci_EXPORT AlarmEventStrategyPattern : public AlarmEventStrategyDisc<ACS::pattern, ROpatternImpl, ACS::Alarmpattern>
00048 {
00049 public:
00050
00051 AlarmEventStrategyPattern(ROpatternImpl * property, EventDispatcher * eventDispatcher);
00052
00053 AlarmEventStrategyPattern(Callback_ptr callback_p,
00054 const CBDescIn& descIn,
00055 const ACS::TimeInterval& interval,
00056 ROpatternImpl * property,
00057 EventDispatcher * eventDispatcher);
00058
00059 virtual void check(BACIValue &value,
00060 const ACSErr::Completion & c,
00061 const ACS::CBDescOut & desc);
00062
00063 private:
00064
00065 ACS::pattern lastValue_m;
00066
00067
00068 const unsigned short patternSize_m;
00069
00070
00071 unsigned short bitPos_m;
00072
00073
00074 ACS::pattern alarmTrigger_m,
00075 alarmMask_m;
00079 void operator=(const AlarmEventStrategyPattern&);
00080
00084 AlarmEventStrategyPattern(const AlarmEventStrategyPattern&);
00085 };
00086
00087 };
00088
00089 #endif