00001 #ifndef acsexmplMountImpl_h
00002 #define acsexmplMountImpl_h
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
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
00058 using namespace baci;
00059
00112 class acsexmpl_EXPORT Mount: public CharacteristicComponentImpl,
00113 public virtual POA_MOUNT_ACS::Mount,
00114 public ActionImplementator
00115 {
00116 public:
00124 Mount(
00125 ACE_CString name,
00126 maci::ContainerServices * containerServices);
00127
00131 virtual ~Mount();
00132
00133
00157 virtual ActionRequest
00158 invokeAction (int function,
00159 BACIComponent *component_p,
00160 const int &callbackID,
00161 const CBDescIn &descIn,
00162 BACIValue *value_p,
00163 Completion &completion,
00164 CBDescOut &descOut);
00165
00188 virtual ActionRequest
00189 obstarAction (BACIComponent *component_p,
00190 const int &callbackID,
00191 const CBDescIn &descIn,
00192 BACIValue *value_p,
00193 Completion &completion,
00194 CBDescOut &descOut);
00195
00218 virtual ActionRequest
00219 objfixAction (BACIComponent *component_p,
00220 const int &callbackID,
00221 const CBDescIn &descIn,
00222 BACIValue *value_p,
00223 Completion &completion,
00224 CBDescOut &descOut);
00225
00226
00251 virtual void
00252 obstar (CORBA::Double ra,
00253 CORBA::Double dec,
00254 CORBA::Double pmRa,
00255 CORBA::Double pmDec,
00256 CORBA::Double radVel,
00257 CORBA::Double par,
00258 MOUNT_ACS::Mount::coordType type,
00259 ACS::CBvoid_ptr callBack,
00260 const ACS::CBDescIn &desc)
00261 throw (CORBA::SystemException);
00262
00282 virtual void
00283 objfix (CORBA::Double az,
00284 CORBA::Double elev,
00285 ACS::CBvoid_ptr callBack,
00286 const ACS::CBDescIn &desc)
00287 throw (CORBA::SystemException);
00288
00297 virtual ACS::ROdouble_ptr
00298 cmdAz ()
00299 throw (CORBA::SystemException);
00300
00309 virtual ACS::ROdouble_ptr
00310 cmdEl ()
00311 throw (CORBA::SystemException);
00312
00321 virtual ACS::ROdouble_ptr
00322 actAz ()
00323 throw (CORBA::SystemException);
00324
00333 virtual ACS::ROdouble_ptr
00334 actEl ()
00335 throw (CORBA::SystemException);
00336
00337 private:
00361 typedef ActionRequest (Mount::*ActionFunction)(BACIComponent *component_p,
00362 const int &callbackID,
00363 const CBDescIn &descIn,
00364 BACIValue *value_p,
00365 Completion &completion,
00366 CBDescOut &descOut);
00367
00373 ActionFunction m_actions[2];
00374
00378 SmartPropertyPointer<ROdouble> m_cmdAz_sp;
00379
00383 SmartPropertyPointer<ROdouble> m_cmdEl_sp;
00384
00388 SmartPropertyPointer<ROdouble> m_actAz_sp;
00389
00393 SmartPropertyPointer<ROdouble> m_actEl_sp;
00394
00398 void operator=(const Mount&);
00399 };
00400
00401 #endif