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

baciROpattern.h

Go to the documentation of this file.
00001 #ifndef _baciROpattern_H_
00002 #define _baciROpattern_H_
00003 
00004 /*******************************************************************
00005  * ALMA - Atacama Large Millimiter Array
00006  * (c) European Southern Observatory, 2003 
00007  *
00008  *This library is free software; you can redistribute it and/or
00009  *modify it under the terms of the GNU Lesser General Public
00010  *License as published by the Free Software Foundation; either
00011  *version 2.1 of the License, or (at your option) any later version.
00012  *
00013  *This library is distributed in the hope that it will be useful,
00014  *but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00016  *Lesser General Public License for more details.
00017  *
00018  *You should have received a copy of the GNU Lesser General Public
00019  *License along with this library; if not, write to the Free Software
00020  *Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
00021  *
00022  * "@(#) $Id: baciROpattern.h,v 1.111 2009/09/15 08:51:14 bjeram Exp $"
00023  *
00024  * who       when        what
00025  * --------  ----------  ----------------------------------------------
00026  * bjeram    2003/02/22  ROpattern is using templates
00027  * bjeram    2002/11/29  changed to Monitorpattern 
00028  * bjeram    2002/02/25  added support for DevIO 
00029  * msekoran  2001/03/09  modified
00030  */
00031 
00037 #ifndef __cplusplus
00038 #error This is a C++ include file and cannot be used from plain C
00039 #endif
00040 
00041 #include <baciPpatternImpl.h>
00042 #include <baciROdiscImpl_T.h>
00043 #include "baciAlarmSystemMonitorPattern.h"
00044 
00045 namespace baci {
00046 
00047     class ROpatternImpl;
00048 
00055     typedef ROpatternImpl ROpattern;
00059     class baci_EXPORT ROpatternImpl : public virtual POA_ACS::ROpattern,
00060                                       public ROdiscImpl<ACS_RO_T(pattern, ACS::pattern)>,
00061                                       public PpatternImpl
00062                                   
00063     {                    
00064       public:
00065         ROpatternImpl(const ACE_CString& name, BACIComponent *component_p, DevIO<ACS::pattern> *devIO=0, bool flagdeldevIO=false);
00066 
00067         ~ROpatternImpl();
00068 
00069 /* -------------------- [ RO interface ] -------------------- */
00070   
00071 // for the pattern type only the value low_on and high_on for the alarm are implemented (no hysteresis)
00072 
00073         virtual ACS::pattern alarm_mask ();
00074         
00075         virtual ACS::pattern alarm_trigger ();
00076 
00077         virtual ACS::Subscription_ptr 
00078             new_subscription_Alarm (ACS::Alarmpattern *cb,
00079                                     const ACS::CBDescIn & desc); 
00080 
00081 
00082       protected:
00083 
00088         virtual bool readCharacteristics();
00089 
00090 
00091       private:
00095         
00096         // RO
00098         ACS::pattern alarmMask_m;
00099         
00101         ACS::pattern alarmTrigger_m;                    
00102     };
00103 
00104 }; 
00105 
00106 #endif  /* baciROpattern */
00107 

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