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