ALMA Computing Group

acsexmplMountImpl.h

Go to the documentation of this file.
00001 #ifndef acsexmplMountImpl_h 00002 #define acsexmplMountImpl_h 00003 /******************************************************************************* 00004 * ALMA - Atacama Large Millimiter Array 00005 * (c) European Southern Observatory, 2002 00006 * Copyright by ESO (in the framework of the ALMA collaboration) 00007 * and Cosylab 2002, All rights reserved 00008 * 00009 * This library is free software; you can redistribute it and/or 00010 * modify it under the terms of the GNU Lesser General Public 00011 * License as published by the Free Software Foundation; either 00012 * version 2.1 of the License, or (at your option) any later version. 00013 * 00014 * This library is distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00017 * Lesser General Public License for more details. 00018 * 00019 * You should have received a copy of the GNU Lesser General Public 00020 * License along with this library; if not, write to the Free Software 00021 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00022 * 00023 * 00024 * "@(#) $Id: acsexmplMountImpl.h,v 1.100 2008/10/01 04:30:47 cparedes Exp $" 00025 * 00026 * who when what 00027 * -------- -------- ---------------------------------------------- 00028 * acaproni 2004-04-06 Use of smart pointer for properties 00029 * david 2002-07-02 added GNU license info 00030 * bjeram 2002-06-25 added const ACS::CBDescIn & desc, 00031 * david 2002-06-10 Added doxygen specific comments 00032 * blopez 2002-04-05 Modified for ACSDO usage 00033 * gchiozzi 2002-01-28 cleaned up remaining "mount" strings and replaced with "acsexmpl" 00034 * almamgr 2002-01-22 Replaced old include files with new axsexmpl... files 00035 * msekoran 2001-06-23 minor changes to work with acsutil module 00036 * msekoran 2001-04-03 new baci 00037 * gchiozzi 2001-02-15 Added declaration of get_interface() method for Object Explorer 00038 * gchiozzi 2001-02-15 created standard header 00039 */ 00040 00041 #ifndef __cplusplus 00042 #error This is a C++ include file and cannot be used from plain C 00043 #endif 00044 00046 #include <baciCharacteristicComponentImpl.h> 00047 #include <acsexmplExport.h> 00048 00050 #include <acsexmplMountS.h> 00051 00053 #include <baciROdouble.h> 00054 00056 #include <baciSmartPropertyPointer.h> 00057 00063 00068 00121 class acsexmpl_EXPORT Mount: public baci::CharacteristicComponentImpl, //Standard component superclass 00122 public virtual POA_MOUNT_ACS::Mount, //CORBA servant stub 00123 public baci::ActionImplementator //Asynchronous method helper class 00124 { 00125 public: 00133 Mount( 00134 ACE_CString name, 00135 maci::ContainerServices * containerServices); 00136 00140 virtual ~Mount(); 00141 00142 /* --------------- [ Action implementator interface ] -------------- */ 00166 virtual baci::ActionRequest 00167 invokeAction (int function, 00168 baci::BACIComponent *component_p, 00169 const int &callbackID, 00170 const CBDescIn &descIn, 00171 baci::BACIValue *value_p, 00172 Completion &completion, 00173 CBDescOut &descOut); 00174 00197 virtual baci::ActionRequest 00198 obstarAction (baci::BACIComponent *component_p, 00199 const int &callbackID, 00200 const CBDescIn &descIn, 00201 baci::BACIValue *value_p, 00202 Completion &completion, 00203 CBDescOut &descOut); 00204 00227 virtual baci::ActionRequest 00228 objfixAction (baci::BACIComponent *component_p, 00229 const int &callbackID, 00230 const CBDescIn &descIn, 00231 baci::BACIValue *value_p, 00232 Completion &completion, 00233 CBDescOut &descOut); 00234 00235 /* --------------------- [ CORBA interface ] ----------------------*/ 00260 virtual void 00261 obstar (CORBA::Double ra, 00262 CORBA::Double dec, 00263 CORBA::Double pmRa, 00264 CORBA::Double pmDec, 00265 CORBA::Double radVel, 00266 CORBA::Double par, 00267 MOUNT_ACS::Mount::coordType type, 00268 ACS::CBvoid_ptr callBack, 00269 const ACS::CBDescIn &desc); 00270 00290 virtual void 00291 objfix (CORBA::Double az, 00292 CORBA::Double elev, 00293 ACS::CBvoid_ptr callBack, 00294 const ACS::CBDescIn &desc); 00295 00304 virtual ACS::ROdouble_ptr 00305 cmdAz (); 00306 00315 virtual ACS::ROdouble_ptr 00316 cmdEl (); 00317 00326 virtual ACS::ROdouble_ptr 00327 actAz (); 00328 00337 virtual ACS::ROdouble_ptr 00338 actEl (); 00339 00340 private: 00364 typedef baci::ActionRequest (Mount::*ActionFunction)(baci::BACIComponent *component_p, 00365 const int &callbackID, 00366 const CBDescIn &descIn, 00367 baci::BACIValue *value_p, 00368 Completion &completion, 00369 CBDescOut &descOut); 00370 00376 ActionFunction m_actions[2]; 00377 00381 baci::SmartPropertyPointer<baci::ROdouble> m_cmdAz_sp; 00382 00386 baci::SmartPropertyPointer<baci::ROdouble> m_cmdEl_sp; 00387 00391 baci::SmartPropertyPointer<baci::ROdouble> m_actAz_sp; 00392 00396 baci::SmartPropertyPointer<baci::ROdouble> m_actEl_sp; 00397 00401 void operator=(const Mount&); 00402 }; 00403 /*\@}*/ 00404 /*\@}*/ 00405 00406 #endif