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: MCtestComponentImpl.h,v 1.1 2011/01/19 21:20:41 tstaig 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 <baciROdoubleSeq.h> 00036 #include <baciROdouble.h> 00037 #include <baciRWlongSeq.h> 00038 #include <baciRWlong.h> 00039 #include <baciROpattern.h> 00040 00041 namespace TMCDB 00042 { 00043 00047 class MCtestComponentImpl : 00048 public baci::CharacteristicComponentImpl, 00049 public POA_TMCDB::MCtestComponent 00050 { 00051 public: 00052 MCtestComponentImpl(const ACE_CString& name, 00053 maci::ContainerServices * containerServices); 00054 00055 ~MCtestComponentImpl(); 00056 00057 void execute(); 00058 00059 // componnet's life cycle 00060 void cleanUp(); 00061 00062 00063 // implementations of IDL's methods 00064 ACS::ROdoubleSeq_ptr doubleSeqProp (); 00065 ACS::ROdouble_ptr doubleProp (); 00066 00067 ACS::RWlongSeq_ptr longSeqProp (); 00068 ACS::RWlong_ptr longProp (); 00069 00070 ACS::ROpattern_ptr patternProp (); 00071 00072 void reset(); 00073 00074 private: 00075 00076 00077 baci::ROdouble *m_doubleProp_p; 00078 ACS::doubleSeq m_doubleSeqVal; 00079 ACS::Time m_time1; 00080 MCtestDevIOSeq<ACS::doubleSeq> *m_doubleSeqDevIO; 00081 00082 baci::ROdoubleSeq *m_doubleSeqProp_p; 00083 double m_doubleVal; 00084 ACS::Time m_time2; 00085 MCtestDevIO<double> *m_doubleDevIO; 00086 00087 00088 baci::RWlongSeq *m_longSeqProp_p; 00089 ACS::longSeq m_longSeqVal; 00090 ACS::Time m_time3; 00091 MCtestDevIOSeq<ACS::longSeq> *m_longSeqDevIO; 00092 00093 baci::RWlong *m_longProp_p; 00094 int m_longVal; 00095 ACS::Time m_time4; 00096 MCtestDevIO<int> *m_longDevIO; 00097 00098 baci::ROpattern *m_patternProp_p; 00099 ACS::pattern m_patternVal; 00100 ACS::Time m_time5; 00101 MCtestDevIO<ACS::pattern> *m_patternDevIO; 00102 00103 00107 void operator=(const MCtestComponentImpl&); 00108 00109 };//class MCtestComponentImpl 00110 00111 00112 00113 };//namespace TMCDB 00114 00115 00116 #endif