00001 #ifndef MC_TESTCOMPONENT_IMPL_H 00002 #define MC_TESTCOMPONENT_IMPL_H 00003 /******************************************************************************* 00004 * ALMA - Atacama Large Millimiter Array 00005 * (c) European Southern Observatory, 2009 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: MCtestAlarmsComponentImpl.h,v 1.2 2012/10/10 09:48:53 bjeram Exp $" 00022 * 00023 * who when what 00024 * -------- -------- ---------------------------------------------- 00025 * bjeram 2009-02-11 created 00026 */ 00027 00028 #ifndef __cplusplus 00029 #error This is a C++ include file and cannot be used from plain C 00030 #endif 00031 00032 #include "MCtestComponentS.h" 00033 #include "MCtestDevIO.h" 00034 #include <baciCharacteristicComponentImpl.h> 00035 #include <baciROdouble.h> 00036 #include <baciROfloat.h> 00037 #include <baciROlong.h> 00038 #include <baciROuLong.h> 00039 #include <baciROlongLong.h> 00040 #include <baciROuLongLong.h> 00041 #include <baciROboolean.h> 00042 #include <baciROdoubleSeq.h> 00043 #include <baciROfloatSeq.h> 00044 #include <baciROlongSeq.h> 00045 #include <baciROuLongSeq.h> 00046 #include <baciRObooleanSeq.h> 00047 #include <enumpropROImpl.h> 00048 00049 namespace TMCDB 00050 { 00054 class MCtestAlarmsComponentImpl : 00055 public baci::CharacteristicComponentImpl, 00056 public POA_TMCDB::MCtestAlarmsComponent 00057 { 00058 public: 00059 MCtestAlarmsComponentImpl(const ACE_CString& name, maci::ContainerServices * containerServices); 00060 ~MCtestAlarmsComponentImpl(); 00061 00062 // componnet's life cycle 00063 void execute(); 00064 void cleanUp(); 00065 00066 // implementations of IDL's methods 00067 ACS::ROdouble_ptr doubleROProp(); 00068 ACS::ROfloat_ptr floatROProp(); 00069 ACS::ROlong_ptr longROProp(); 00070 ACS::ROuLong_ptr uLongROProp(); 00071 ACS::ROlongLong_ptr longLongROProp(); 00072 ACS::ROuLongLong_ptr uLongLongROProp(); 00073 ACS::ROboolean_ptr booleanROProp(); 00074 ACS::ROdoubleSeq_ptr doubleSeqROProp(); 00075 ACS::ROfloatSeq_ptr floatSeqROProp(); 00076 ACS::ROlongSeq_ptr longSeqROProp(); 00077 ACS::ROuLongSeq_ptr uLongSeqROProp(); 00078 ACS::RObooleanSeq_ptr booleanSeqROProp(); 00079 ROEnumTest_ptr EnumTestROProp(); 00080 void reset(); 00081 void increase(); 00082 void decrease(); 00083 00084 private: 00085 baci::ROdouble *m_doubleROProp_p; 00086 CORBA::Double m_doubleROVal; 00087 ACS::Time m_time1; 00088 DevIO<CORBA::Double> *m_doubleRODevIO; 00089 baci::ROfloat *m_floatROProp_p; 00090 CORBA::Float m_floatROVal; 00091 ACS::Time m_time2; 00092 DevIO<CORBA::Float> *m_floatRODevIO; 00093 baci::ROlong *m_longROProp_p; 00094 CORBA::Long m_longROVal; 00095 ACS::Time m_time3; 00096 DevIO<CORBA::Long> *m_longRODevIO; 00097 baci::ROuLong *m_uLongROProp_p; 00098 ACS::uLong m_uLongROVal; 00099 ACS::Time m_time4; 00100 DevIO<ACS::uLong> *m_uLongRODevIO; 00101 baci::ROlongLong *m_longLongROProp_p; 00102 ACS::longLong m_longLongROVal; 00103 ACS::Time m_time5; 00104 DevIO<ACS::longLong> *m_longLongRODevIO; 00105 baci::ROuLongLong *m_uLongLongROProp_p; 00106 ACS::uLongLong m_uLongLongROVal; 00107 ACS::Time m_time6; 00108 DevIO<ACS::uLongLong> *m_uLongLongRODevIO; 00109 baci::ROboolean *m_booleanROProp_p; 00110 CORBA::Boolean m_booleanROVal; 00111 ACS::Time m_time7; 00112 DevIO<CORBA::Boolean> *m_booleanRODevIO; 00113 baci::ROdoubleSeq *m_doubleSeqROProp_p; 00114 ACS::doubleSeq m_doubleSeqROVal; 00115 ACS::Time m_time8; 00116 DevIO<ACS::doubleSeq> *m_doubleSeqRODevIO; 00117 baci::ROfloatSeq *m_floatSeqROProp_p; 00118 ACS::floatSeq m_floatSeqROVal; 00119 ACS::Time m_time9; 00120 DevIO<ACS::floatSeq> *m_floatSeqRODevIO; 00121 baci::ROlongSeq *m_longSeqROProp_p; 00122 ACS::longSeq m_longSeqROVal; 00123 ACS::Time m_time10; 00124 DevIO<ACS::longSeq> *m_longSeqRODevIO; 00125 baci::ROuLongSeq *m_uLongSeqROProp_p; 00126 ACS::uLongSeq m_uLongSeqROVal; 00127 ACS::Time m_time11; 00128 DevIO<ACS::uLongSeq> *m_uLongSeqRODevIO; 00129 baci::RObooleanSeq *m_booleanSeqROProp_p; 00130 ACS::booleanSeq m_booleanSeqROVal; 00131 ACS::Time m_time12; 00132 DevIO<ACS::booleanSeq> *m_booleanSeqRODevIO; 00133 ROEnumImpl<ACS_ENUM_T(EnumTest), POA_TMCDB::ROEnumTest> *m_EnumTestROProp_p; 00134 EnumTest m_EnumTestROVal; 00135 ACS::Time m_time13; 00136 DevIO<EnumTest> *m_EnumTestRODevIO; 00137 00141 void operator=(const MCtestAlarmsComponentImpl&); 00142 };//class MCtestAlarmsComponentImpl 00143 };//namespace TMCDB 00144 00145 00146 #endif