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.1 2011/05/23 19:31:44 javarias 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 <baciROpattern.h> 00039 #include <baciROstring.h> 00040 #include <baciROlongLong.h> 00041 #include <baciROuLongLong.h> 00042 #include <baciROdoubleSeq.h> 00043 #include <baciROfloatSeq.h> 00044 #include <baciROlongSeq.h> 00045 //#include <baciROstringSeq.h> 00046 #include <baciRWdouble.h> 00047 #include <baciRWfloat.h> 00048 #include <baciRWlong.h> 00049 #include <baciRWpattern.h> 00050 #include <baciRWstring.h> 00051 #include <baciRWlongLong.h> 00052 #include <baciRWuLongLong.h> 00053 #include <baciRWdoubleSeq.h> 00054 #include <baciRWfloatSeq.h> 00055 #include <baciRWlongSeq.h> 00056 00057 namespace TMCDB 00058 { 00059 00063 class MCtestPropertiesComponentImpl : 00064 public baci::CharacteristicComponentImpl, 00065 public POA_TMCDB::MCtestPropertiesComponent 00066 { 00067 public: 00068 MCtestPropertiesComponentImpl(const ACE_CString& name, 00069 maci::ContainerServices * containerServices); 00070 ~MCtestPropertiesComponentImpl(); 00071 00072 // componnet's life cycle 00073 void execute(); 00074 void cleanUp(); 00075 00076 // implementations of IDL's methods 00077 ACS::ROdouble_ptr doubleROProp(); 00078 ACS::ROfloat_ptr floatROProp(); 00079 ACS::ROlong_ptr longROProp(); 00080 ACS::ROpattern_ptr patternROProp(); 00081 ACS::ROstring_ptr stringROProp(); 00082 ACS::ROlongLong_ptr longLongROProp(); 00083 ACS::ROuLongLong_ptr uLongLongROProp(); 00084 ACS::ROdoubleSeq_ptr doubleSeqROProp(); 00085 ACS::ROfloatSeq_ptr floatSeqROProp(); 00086 ACS::ROlongSeq_ptr longSeqROProp(); 00087 ACS::RWdouble_ptr doubleRWProp(); 00088 ACS::RWfloat_ptr floatRWProp(); 00089 ACS::RWlong_ptr longRWProp(); 00090 ACS::RWpattern_ptr patternRWProp(); 00091 ACS::RWstring_ptr stringRWProp(); 00092 ACS::RWlongLong_ptr longLongRWProp(); 00093 ACS::RWuLongLong_ptr uLongLongRWProp(); 00094 ACS::RWdoubleSeq_ptr doubleSeqRWProp(); 00095 ACS::RWfloatSeq_ptr floatSeqRWProp(); 00096 ACS::RWlongSeq_ptr longSeqRWProp(); 00097 00098 void reset(); 00099 00100 private: 00101 //RO 00102 baci::ROdouble *m_doubleROProp_p; 00103 CORBA::Double m_doubleROVal; 00104 ACS::Time m_time1; 00105 DevIO<CORBA::Double> *m_doubleRODevIO; 00106 baci::ROfloat *m_floatROProp_p; 00107 CORBA::Float m_floatROVal; 00108 ACS::Time m_time2; 00109 DevIO<CORBA::Float> *m_floatRODevIO; 00110 baci::ROlong *m_longROProp_p; 00111 CORBA::Long m_longROVal; 00112 ACS::Time m_time3; 00113 DevIO<CORBA::Long> *m_longRODevIO; 00114 baci::ROpattern *m_patternROProp_p; 00115 ACS::pattern m_patternROVal; 00116 ACS::Time m_time5; 00117 DevIO<ACS::pattern> *m_patternRODevIO; 00118 baci::ROstring *m_stringROProp_p; 00119 ACE_CString m_stringROVal; 00120 ACS::Time m_time6; 00121 DevIO<ACE_CString> *m_stringRODevIO; 00122 baci::ROlongLong *m_longLongROProp_p; 00123 ACS::longLong m_longLongROVal; 00124 ACS::Time m_time7; 00125 DevIO<ACS::longLong> *m_longLongRODevIO; 00126 baci::ROuLongLong *m_uLongLongROProp_p; 00127 ACS::uLongLong m_uLongLongROVal; 00128 ACS::Time m_time8; 00129 DevIO<ACS::uLongLong> *m_uLongLongRODevIO; 00130 baci::ROdoubleSeq *m_doubleSeqROProp_p; 00131 ACS::doubleSeq m_doubleSeqROVal; 00132 ACS::Time m_time9; 00133 DevIO<ACS::doubleSeq> *m_doubleSeqRODevIO; 00134 baci::ROfloatSeq *m_floatSeqROProp_p; 00135 ACS::floatSeq m_floatSeqROVal; 00136 ACS::Time m_time10; 00137 DevIO<ACS::floatSeq> *m_floatSeqRODevIO; 00138 baci::ROlongSeq *m_longSeqROProp_p; 00139 ACS::longSeq m_longSeqROVal; 00140 ACS::Time m_time11; 00141 DevIO<ACS::longSeq> *m_longSeqRODevIO; 00142 //RW 00143 baci::RWdouble *m_doubleRWProp_p; 00144 CORBA::Double m_doubleRWVal; 00145 ACS::Time m_time17; 00146 DevIO<CORBA::Double> *m_doubleRWDevIO; 00147 baci::RWfloat *m_floatRWProp_p; 00148 CORBA::Float m_floatRWVal; 00149 ACS::Time m_time18; 00150 DevIO<CORBA::Float> *m_floatRWDevIO; 00151 baci::RWlong *m_longRWProp_p; 00152 CORBA::Long m_longRWVal; 00153 ACS::Time m_time19; 00154 DevIO<CORBA::Long> *m_longRWDevIO; 00155 baci::RWpattern *m_patternRWProp_p; 00156 ACS::pattern m_patternRWVal; 00157 ACS::Time m_time21; 00158 DevIO<ACS::pattern> *m_patternRWDevIO; 00159 baci::RWstring *m_stringRWProp_p; 00160 ACE_CString m_stringRWVal; 00161 ACS::Time m_time22; 00162 DevIO<ACE_CString> *m_stringRWDevIO; 00163 baci::RWlongLong *m_longLongRWProp_p; 00164 ACS::longLong m_longLongRWVal; 00165 ACS::Time m_time23; 00166 DevIO<ACS::longLong> *m_longLongRWDevIO; 00167 baci::RWuLongLong *m_uLongLongRWProp_p; 00168 ACS::uLongLong m_uLongLongRWVal; 00169 ACS::Time m_time24; 00170 DevIO<ACS::uLongLong> *m_uLongLongRWDevIO; 00171 baci::RWdoubleSeq *m_doubleSeqRWProp_p; 00172 ACS::doubleSeq m_doubleSeqRWVal; 00173 ACS::Time m_time25; 00174 DevIO<ACS::doubleSeq> *m_doubleSeqRWDevIO; 00175 baci::RWfloatSeq *m_floatSeqRWProp_p; 00176 ACS::floatSeq m_floatSeqRWVal; 00177 ACS::Time m_time26; 00178 DevIO<ACS::floatSeq> *m_floatSeqRWDevIO; 00179 baci::RWlongSeq *m_longSeqRWProp_p; 00180 ACS::longSeq m_longSeqRWVal; 00181 ACS::Time m_time27; 00182 DevIO<ACS::longSeq> *m_longSeqRWDevIO; 00186 void operator=(const MCtestPropertiesComponentImpl&); 00187 00188 };//class MCtestComponentImpl 00189 00190 };//namespace TMCDB 00191 00192 00193 #endif