00001
#ifndef _ALARM_SYSTEM_MONITOR_H
00002
#define _ALARM_SYSTEM_MONITOR_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
00028
00029
00030
00031
00032
00033
#ifndef __cplusplus
00034
#error This is a C++ include file and cannot be used from plain C
00035
#endif
00036
00037
#include <AlarmSystemInterface.h>
00038
00039
namespace baci
00040 {
00041
00047
template<
class TPROP>
00048 class baci_EXPORT AlarmSystemMonitor :
public EventStrategy
00049 {
00050
public:
00051
00052 AlarmSystemMonitor(TPROP * property,
EventDispatcher * eventDispatcher);
00053
00054
virtual ~AlarmSystemMonitor();
00055
00056
bool failed();
00057
void succeeded();
00058
00059 virtual bool isSuspended() {
return false; }
00060
00061
00062 virtual int getId(
void){
return -1; }
00063
00064 virtual const char* getName(
void){
return ""; }
00065
00066 virtual char* getObjectState(
void){
return ""; }
00067
00068 virtual void setObjectState(
const char * state){}
00069
00070 virtual void suspend () {}
00071
00072 virtual void resume () {}
00073
00074 virtual void destroy () {}
00075
00076
virtual void check(
BACIValue &val,
00077
const ACSErr::Completion & c,
00078
const ACS::CBDescOut & desc )=0;
00079
00083
void sendAlarm(std::string family, std::string member,
int code,
bool active);
00084
00085
private:
00086
00087 ACE_CString name_m;
00088
00089 bool suspended_m;
00090
00091 int failureCount_m;
00092
00093 CBDescIn desc_mIn;
00094
00095 ACS::TimeInterval interval_m;
00096
00097 EventDispatcher * eventDispatcher_mp;
00098
00102
void operator=(
const AlarmSystemMonitor&);
00103
00107 AlarmSystemMonitor(
const AlarmSystemMonitor&);
00108
00109
00110
protected:
00111
00112 auto_ptr<acsalarm::AlarmSystemInterface> alarmSource_map;
00113
00114 TPROP *property_mp;
00115
00116 int alarmRaised_m;
00117 };
00118
00119 }
00120
00121
#endif