• Classes
  • Modules
  • Namespaces
  • Files
  • Related Pages
  • File List
  • File Members

acsexmplSlowMountImpl.h

Go to the documentation of this file.
00001 #ifndef acsexmplSlowMountImpl_h
00002 #define acsexmplSlowMountImpl_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: acsexmplSlowMountImpl.h,v 1.8 2008/10/01 04:30:47 cparedes Exp $"
00025 *
00026 * who       when      what
00027 * --------  --------  ----------------------------------------------
00028 * acaproni 2004-09-66 Created from acsexmplMountImpl.h
00029 */
00030 
00031 #ifndef __cplusplus
00032 #error This is a C++ include file and cannot be used from plain C
00033 #endif
00034 
00036 #include <baciCharacteristicComponentImpl.h>
00037 #include <acsexmplExport.h>
00038 
00040 #include <acsexmplMountS.h>
00041 
00043 #include <baciROdouble.h>
00044 
00046 #include <baciSmartPropertyPointer.h>
00047 
00107 class acsexmpl_EXPORT SlowMount: public baci::CharacteristicComponentImpl,     //Standard component superclass
00108                              public virtual POA_MOUNT_ACS::Mount,   //CORBA servant stub
00109                              public baci::ActionImplementator    //Asynchronous method helper class
00110 {
00111   public:
00118     SlowMount(
00119         ACE_CString name,
00120             maci::ContainerServices * containerServices);
00121     
00125     virtual ~SlowMount();
00126     
00127     /* --------------- [ Action implementator interface ] -------------- */
00151     virtual baci::ActionRequest 
00152     invokeAction (int function,
00153                   baci::BACIComponent *component_p, 
00154                   const int &callbackID, 
00155                   const CBDescIn &descIn, 
00156                   baci::BACIValue *value_p, 
00157                   Completion &completion, 
00158                   CBDescOut &descOut);
00159     
00182     virtual baci::ActionRequest 
00183     obstarAction (baci::BACIComponent *component_p, 
00184                   const int &callbackID,
00185                   const CBDescIn &descIn, 
00186                   baci::BACIValue *value_p,
00187                   Completion &completion, 
00188                   CBDescOut &descOut);
00189         
00212     virtual baci::ActionRequest 
00213     objfixAction (baci::BACIComponent *component_p, 
00214                   const int &callbackID,
00215                   const CBDescIn &descIn, 
00216                   baci::BACIValue *value_p,
00217                   Completion &completion, 
00218                   CBDescOut &descOut);
00219     
00220     /* --------------------- [ CORBA interface ] ----------------------*/   
00245     virtual void 
00246     obstar (CORBA::Double ra,
00247             CORBA::Double dec,
00248             CORBA::Double pmRa,
00249             CORBA::Double pmDec,
00250             CORBA::Double radVel,
00251             CORBA::Double par,
00252             MOUNT_ACS::Mount::coordType type,
00253             ACS::CBvoid_ptr callBack,
00254             const ACS::CBDescIn &desc);
00255     
00275     virtual void 
00276     objfix (CORBA::Double az,
00277             CORBA::Double elev,
00278             ACS::CBvoid_ptr callBack,
00279             const ACS::CBDescIn &desc);
00280     
00289     virtual ACS::ROdouble_ptr 
00290     cmdAz ();
00291     
00300     virtual ACS::ROdouble_ptr 
00301     cmdEl ();
00302     
00311     virtual ACS::ROdouble_ptr 
00312     actAz ();
00313     
00322     virtual ACS::ROdouble_ptr 
00323     actEl ();
00324     
00325   private:
00349     typedef baci::ActionRequest (SlowMount::*ActionFunction)(baci::BACIComponent *component_p, 
00350                                                    const int &callbackID,
00351                                                    const CBDescIn &descIn, 
00352                                                    baci::BACIValue *value_p,
00353                                                    Completion &completion, 
00354                                                    CBDescOut &descOut);
00355     
00361     ActionFunction m_actions[2];
00362     
00366     baci::SmartPropertyPointer<baci::ROdouble> m_cmdAz_sp;
00367 
00371     baci::SmartPropertyPointer<baci::ROdouble> m_cmdEl_sp;
00372 
00376     baci::SmartPropertyPointer<baci::ROdouble> m_actAz_sp;
00377 
00381     baci::SmartPropertyPointer<baci::ROdouble> m_actEl_sp;
00382 
00386     void operator=(const SlowMount&);
00387 };
00388 /*\@}*/
00389 /*\@}*/ 
00390 
00391 #endif 

Generated on Thu Jan 12 2012 23:13:50 for ACS-10.0 C++ API by  doxygen 1.7.0