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: MCtestPropertiesComponentImpl.h,v 1.2 2012/10/10 09:48:54 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 <baciROpattern.h> 00040 #include <baciROstring.h> 00041 #include <baciROlongLong.h> 00042 #include <baciROuLongLong.h> 00043 #include <baciROboolean.h> 00044 #include <baciROdoubleSeq.h> 00045 #include <baciROfloatSeq.h> 00046 #include <baciROlongSeq.h> 00047 #include <baciROuLongSeq.h> 00048 #include <baciRObooleanSeq.h> 00049 //#include <baciROstringSeq.h> 00050 #include <enumpropROImpl.h> 00051 #include <baciRWdouble.h> 00052 #include <baciRWfloat.h> 00053 #include <baciRWlong.h> 00054 #include <baciRWuLong.h> 00055 #include <baciRWpattern.h> 00056 #include <baciRWstring.h> 00057 #include <baciRWlongLong.h> 00058 #include <baciRWuLongLong.h> 00059 #include <baciRWboolean.h> 00060 #include <baciRWdoubleSeq.h> 00061 #include <baciRWfloatSeq.h> 00062 #include <baciRWlongSeq.h> 00063 #include <baciRWuLongSeq.h> 00064 #include <baciRWbooleanSeq.h> 00065 #include <enumpropRWImpl.h> 00066 00067 namespace TMCDB 00068 { 00069 00073 class MCtestPropertiesComponentImpl : 00074 public baci::CharacteristicComponentImpl, 00075 public POA_TMCDB::MCtestPropertiesComponent 00076 { 00077 public: 00078 MCtestPropertiesComponentImpl(const ACE_CString& name, 00079 maci::ContainerServices * containerServices); 00080 ~MCtestPropertiesComponentImpl(); 00081 00082 // componnet's life cycle 00083 void execute(); 00084 void cleanUp(); 00085 00086 // implementations of IDL's methods 00087 ACS::ROdouble_ptr doubleROProp(); 00088 ACS::ROfloat_ptr floatROProp(); 00089 ACS::ROlong_ptr longROProp(); 00090 ACS::ROuLong_ptr uLongROProp(); 00091 ACS::ROpattern_ptr patternROProp(); 00092 ACS::ROstring_ptr stringROProp(); 00093 ACS::ROlongLong_ptr longLongROProp(); 00094 ACS::ROuLongLong_ptr uLongLongROProp(); 00095 ACS::ROboolean_ptr booleanROProp(); 00096 ACS::ROdoubleSeq_ptr doubleSeqROProp(); 00097 ACS::ROfloatSeq_ptr floatSeqROProp(); 00098 ACS::ROlongSeq_ptr longSeqROProp(); 00099 ACS::ROuLongSeq_ptr uLongSeqROProp(); 00100 ACS::RObooleanSeq_ptr booleanSeqROProp(); 00101 ROEnumTest_ptr EnumTestROProp(); 00102 ACS::RWdouble_ptr doubleRWProp(); 00103 ACS::RWfloat_ptr floatRWProp(); 00104 ACS::RWlong_ptr longRWProp(); 00105 ACS::RWuLong_ptr uLongRWProp(); 00106 ACS::RWpattern_ptr patternRWProp(); 00107 ACS::RWstring_ptr stringRWProp(); 00108 ACS::RWlongLong_ptr longLongRWProp(); 00109 ACS::RWuLongLong_ptr uLongLongRWProp(); 00110 ACS::RWboolean_ptr booleanRWProp(); 00111 ACS::RWdoubleSeq_ptr doubleSeqRWProp(); 00112 ACS::RWfloatSeq_ptr floatSeqRWProp(); 00113 ACS::RWlongSeq_ptr longSeqRWProp(); 00114 ACS::RWuLongSeq_ptr uLongSeqRWProp(); 00115 ACS::RWbooleanSeq_ptr booleanSeqRWProp(); 00116 RWEnumTest_ptr EnumTestRWProp(); 00117 00118 void reset(); 00119 00120 private: 00121 //RO 00122 baci::ROdouble *m_doubleROProp_p; 00123 CORBA::Double m_doubleROVal; 00124 ACS::Time m_time1; 00125 DevIO<CORBA::Double> *m_doubleRODevIO; 00126 baci::ROfloat *m_floatROProp_p; 00127 CORBA::Float m_floatROVal; 00128 ACS::Time m_time2; 00129 DevIO<CORBA::Float> *m_floatRODevIO; 00130 baci::ROlong *m_longROProp_p; 00131 CORBA::Long m_longROVal; 00132 ACS::Time m_time3; 00133 DevIO<CORBA::Long> *m_longRODevIO; 00134 baci::ROuLong *m_uLongROProp_p; 00135 ACS::uLong m_uLongROVal; 00136 ACS::Time m_time4; 00137 DevIO<ACS::uLong> *m_uLongRODevIO; 00138 baci::ROpattern *m_patternROProp_p; 00139 ACS::pattern m_patternROVal; 00140 ACS::Time m_time5; 00141 DevIO<ACS::pattern> *m_patternRODevIO; 00142 baci::ROstring *m_stringROProp_p; 00143 ACE_CString m_stringROVal; 00144 ACS::Time m_time6; 00145 DevIO<ACE_CString> *m_stringRODevIO; 00146 baci::ROlongLong *m_longLongROProp_p; 00147 ACS::longLong m_longLongROVal; 00148 ACS::Time m_time7; 00149 DevIO<ACS::longLong> *m_longLongRODevIO; 00150 baci::ROuLongLong *m_uLongLongROProp_p; 00151 ACS::uLongLong m_uLongLongROVal; 00152 ACS::Time m_time8; 00153 DevIO<ACS::uLongLong> *m_uLongLongRODevIO; 00154 baci::ROboolean *m_booleanROProp_p; 00155 CORBA::Boolean m_booleanROVal; 00156 ACS::Time m_time9; 00157 DevIO<CORBA::Boolean> *m_booleanRODevIO; 00158 baci::ROdoubleSeq *m_doubleSeqROProp_p; 00159 ACS::doubleSeq m_doubleSeqROVal; 00160 ACS::Time m_time10; 00161 DevIO<ACS::doubleSeq> *m_doubleSeqRODevIO; 00162 baci::ROfloatSeq *m_floatSeqROProp_p; 00163 ACS::floatSeq m_floatSeqROVal; 00164 ACS::Time m_time11; 00165 DevIO<ACS::floatSeq> *m_floatSeqRODevIO; 00166 baci::ROlongSeq *m_longSeqROProp_p; 00167 ACS::longSeq m_longSeqROVal; 00168 ACS::Time m_time12; 00169 DevIO<ACS::longSeq> *m_longSeqRODevIO; 00170 baci::ROuLongSeq *m_uLongSeqROProp_p; 00171 ACS::uLongSeq m_uLongSeqROVal; 00172 ACS::Time m_time13; 00173 DevIO<ACS::uLongSeq> *m_uLongSeqRODevIO; 00174 baci::RObooleanSeq *m_booleanSeqROProp_p; 00175 ACS::booleanSeq m_booleanSeqROVal; 00176 ACS::Time m_time14; 00177 DevIO<ACS::booleanSeq> *m_booleanSeqRODevIO; 00178 ROEnumImpl<ACS_ENUM_T(EnumTest), POA_TMCDB::ROEnumTest> *m_EnumTestROProp_p; 00179 EnumTest m_EnumTestROVal; 00180 ACS::Time m_time15; 00181 DevIO<EnumTest> *m_EnumTestRODevIO; 00182 //RW 00183 baci::RWdouble *m_doubleRWProp_p; 00184 CORBA::Double m_doubleRWVal; 00185 ACS::Time m_time16; 00186 DevIO<CORBA::Double> *m_doubleRWDevIO; 00187 baci::RWfloat *m_floatRWProp_p; 00188 CORBA::Float m_floatRWVal; 00189 ACS::Time m_time17; 00190 DevIO<CORBA::Float> *m_floatRWDevIO; 00191 baci::RWlong *m_longRWProp_p; 00192 CORBA::Long m_longRWVal; 00193 ACS::Time m_time18; 00194 DevIO<CORBA::Long> *m_longRWDevIO; 00195 baci::RWuLong *m_uLongRWProp_p; 00196 ACS::uLong m_uLongRWVal; 00197 ACS::Time m_time19; 00198 DevIO<ACS::uLong> *m_uLongRWDevIO; 00199 baci::RWpattern *m_patternRWProp_p; 00200 ACS::pattern m_patternRWVal; 00201 ACS::Time m_time20; 00202 DevIO<ACS::pattern> *m_patternRWDevIO; 00203 baci::RWstring *m_stringRWProp_p; 00204 ACE_CString m_stringRWVal; 00205 ACS::Time m_time21; 00206 DevIO<ACE_CString> *m_stringRWDevIO; 00207 baci::RWlongLong *m_longLongRWProp_p; 00208 ACS::longLong m_longLongRWVal; 00209 ACS::Time m_time22; 00210 DevIO<ACS::longLong> *m_longLongRWDevIO; 00211 baci::RWuLongLong *m_uLongLongRWProp_p; 00212 ACS::uLongLong m_uLongLongRWVal; 00213 ACS::Time m_time23; 00214 DevIO<ACS::uLongLong> *m_uLongLongRWDevIO; 00215 baci::RWboolean *m_booleanRWProp_p; 00216 CORBA::Boolean m_booleanRWVal; 00217 ACS::Time m_time24; 00218 DevIO<CORBA::Boolean> *m_booleanRWDevIO; 00219 baci::RWdoubleSeq *m_doubleSeqRWProp_p; 00220 ACS::doubleSeq m_doubleSeqRWVal; 00221 ACS::Time m_time25; 00222 DevIO<ACS::doubleSeq> *m_doubleSeqRWDevIO; 00223 baci::RWfloatSeq *m_floatSeqRWProp_p; 00224 ACS::floatSeq m_floatSeqRWVal; 00225 ACS::Time m_time26; 00226 DevIO<ACS::floatSeq> *m_floatSeqRWDevIO; 00227 baci::RWlongSeq *m_longSeqRWProp_p; 00228 ACS::longSeq m_longSeqRWVal; 00229 ACS::Time m_time27; 00230 DevIO<ACS::longSeq> *m_longSeqRWDevIO; 00231 baci::RWuLongSeq *m_uLongSeqRWProp_p; 00232 ACS::uLongSeq m_uLongSeqRWVal; 00233 ACS::Time m_time28; 00234 DevIO<ACS::uLongSeq> *m_uLongSeqRWDevIO; 00235 baci::RWbooleanSeq *m_booleanSeqRWProp_p; 00236 ACS::booleanSeq m_booleanSeqRWVal; 00237 ACS::Time m_time29; 00238 DevIO<ACS::booleanSeq> *m_booleanSeqRWDevIO; 00239 RWEnumImpl<ACS_ENUM_T(EnumTest), POA_TMCDB::RWEnumTest> *m_EnumTestRWProp_p; 00240 EnumTest m_EnumTestRWVal; 00241 ACS::Time m_time30; 00242 DevIO<EnumTest> *m_EnumTestRWDevIO; 00246 void operator=(const MCtestPropertiesComponentImpl&); 00247 00248 };//class MCtestComponentImpl 00249 00250 };//namespace TMCDB 00251 00252 00253 #endif