00001
#ifndef _enumpropAlarm_H
00002
#define _enumpropAlarm_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
#ifndef __cplusplus
00015
#error This is a C++ include file and cannot be used from plain C
00016
#endif
00017
00018
#include <baciEvent.h>
00019
#include <baciRecoverableObject.h>
00020
#include <ACSErrTypeAlarmC.h>
00021
#include <acscommonC.h>
00022
00023
NAMESPACE_BEGIN(baci);
00024
00025 class MonitorenumpropEventDispatcher :
00026
public MonitorEventDispatcher<ACS::pattern, ACS::CBpattern, POA_ACS::CBpattern>
00027 {
00028
public:
00029 MonitorenumpropEventDispatcher(
const CBDescIn& descIn,
00030
const ACS::TimeInterval& interval,
00031 BACIProperty * property) :
00032 MonitorEventDispatcher<ACS::pattern, ACS::
CBpattern, POA_ACS::
CBpattern>(descIn, interval, property)
00033 {
00034 }
00035
00036 };
00037
00038
template <
class T,
class ROT,
class AlarmT>
00039 class AlarmenumpropEventStrategy :
public EventStrategy
00040 {
00041
public:
00042 static const int maxFailureCount;
00043
#ifdef MAKE_VXWORKS
00044
AlarmenumpropEventStrategy();
00045
#endif
00046
AlarmenumpropEventStrategy(ROT * property, EventDispatcher * eventDispatcher);
00047
00048
AlarmenumpropEventStrategy(
Callback_ptr callback,
00049
const CBDescIn& descIn,
00050
const ACS::TimeInterval& interval,
00051 ROT * property,
00052 EventDispatcher * eventDispatcher);
00053
00054
virtual ~AlarmenumpropEventStrategy();
00055
00056
bool failed();
00057
00058
void succeeded();
00059
00060 CORBA::Object_ptr
getCORBAReference()
const
00061
{
00062
return reference_mp;
00063 }
00064
00065 virtual bool isSuspended()
00066 {
00067
return suspended_m;
00068 }
00069
00070
virtual void check(BACIValue &value,
00071
const ACSErr::Completion & c,
00072
const ACS::CBDescOut & desc
00073
00074 );
00075
00076
00077
00078
virtual int getId(
void);
00079
virtual const char*
getName(
void);
00080
virtual char*
getObjectState(
void);
00081
virtual void setObjectState(
const char * state);
00082
00083
00084
00085
virtual void suspend ( );
00086
00087
virtual void resume ( ) ;
00088
00089
virtual void destroy ( ) ;
00090
00091
private:
00093 ACE_CString
name_m;
00094
00096 bool suspended_m;
00097
00099 int failureCount_m;
00100
00102 AlarmT *
callback_mp;
00103
00105 CBDescIn m_descIn;
00106
00108 ACS::TimeInterval
interval_m;
00109
00111 ROT *
property_mp;
00112
00114 EventDispatcher *
eventDispatcher_mp;
00115
00117 CORBA::Object_ptr
reference_mp;
00118
00120 int alarmRaised_m;
00121 };
00122
00123
#include "enumpropAlarm.i"
00124
NAMESPACE_END(baci);
00125
00126
#endif
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142