• Classes
  • Modules
  • Namespaces
  • Files
  • Related Pages
  • File List
  • File Members

baciAlarmPattern.h

Go to the documentation of this file.
00001 #ifndef _baci_alarm_pattern_H_
00002 #define _baci_alarm_pattern_H_
00003 /*******************************************************************************
00004  * ALMA - Atacama Large Millimiter Array
00005  * (c) European Southern Observatory, 2003 
00006  *
00007  *This library is free software; you can redistribute it and/or
00008  *modify it under the terms of the GNU Lesser General Public
00009  *License as published by the Free Software Foundation; either
00010  *version 2.1 of the License, or (at your option) any later version.
00011  *
00012  *This library is distributed in the hope that it will be useful,
00013  *but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015  *Lesser General Public License for more details.
00016  *
00017  *You should have received a copy of the GNU Lesser General Public
00018  *License along with this library; if not, write to the Free Software
00019  *Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
00020  *
00021  * "@(#) $Id: baciAlarmPattern.h,v 1.2 2008/02/26 15:06:15 bjeram Exp $"
00022  *
00023  * who       when      what
00024  * --------  --------  ----------------------------------------------
00025  * oat       2008-02-25  created
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 /* AlarmEventStrategy implementation for pattern type */
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           // lastValue that       
00065           ACS::pattern lastValue_m;
00066 
00067           //size of pattern type in bits
00068           const unsigned short patternSize_m;
00069 
00070           // postion of bit 
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 }; //namespace baci
00088 
00089 #endif 

Generated on Thu Jan 12 2012 23:13:50 for ACS-10.0 C++ API by  doxygen 1.7.0