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 00038 namespace TMCDB 00039 { 00040 00044 class MCtestComponentImpl : 00045 public baci::CharacteristicComponentImpl, 00046 public POA_TMCDB::MCtestComponent 00047 { 00048 public: 00049 MCtestComponentImpl(const ACE_CString& name, 00050 maci::ContainerServices * containerServices); 00051 00052 ~MCtestComponentImpl(); 00053 00054 void execute(); 00055 00056 // componnet's life cycle 00057 void cleanUp(); 00058 00059 00060 // implementations of IDL's methods 00061 ACS::ROdoubleSeq_ptr doubleSeqProp (); 00062 00063 ACS::ROdouble_ptr doubleProp (); 00064 00065 void reset(); 00066 00067 private: 00068 00069 00070 baci::ROdouble *m_doubleProp_p; 00071 ACS::doubleSeq m_doubleSeqVal; 00072 ACS::Time m_time1; 00073 MCtestDevIOSeq<ACS::doubleSeq> *m_doubleSeqDevIO; 00074 00075 baci::ROdoubleSeq *m_doubleSeqProp_p; 00076 double m_doubleVal; 00077 ACS::Time m_time2; 00078 MCtestDevIO<double> *m_doubleDevIO; 00079 00080 00084 void operator=(const MCtestComponentImpl&); 00085 00086 };//class MCtestComponentImpl 00087 00088 00089 00090 };//namespace TMCDB 00091 00092 00093 #endif