Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

acsexmplLampImpl.h

Go to the documentation of this file.
00001 #ifndef acsexmplLampImpl_h
00002 #define acsexmplLampImpl_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 * "@(#) $Id: acsexmplLampImpl.h,v 1.96 2005/04/29 14:08:41 acaproni Exp $"
00024 *
00025 * who       when      what
00026 * --------  --------  ----------------------------------------------
00027 * acaproni 2004-04-06 Use smart pointers for properties
00028 * david 2002-07-02 added GNU license info
00029 * david 2002-06-16 Finished adding doxygen comments.
00030 * david 2002-06-13 Deleted typedefinition of Lamp::*ActionFunction as it is not used in this example.
00031 * david 2002-06-10 Added some doxygen comments to clean it up for documentation
00032 * gchiozzi 2002-01-28 cleaned up remaining "mount" strings and replaced with "acsexmpl"
00033 * gchiozzi 2001-02-15 Added declaration of get_interface() method for Object Explorer
00034 * gchiozzi 2001-02-15 created created standard header
00035 * msekoran 2001-03-10 integrated with new BACI; ALMA coding convention used; doc.
00036 */
00037 
00038 #ifndef __cplusplus
00039 #error This is a C++ include file and cannot be used from plain C
00040 #endif
00041 
00042 #include <baciCharacteristicComponentImpl.h>
00043 #include <acsexmplLampS.h>
00044 
00045 #include <baciRWdouble.h>
00046 
00048 #include <baciSmartPropertyPointer.h>
00049 
00050 using namespace baci;
00051 
00102 class Lamp: public CharacteristicComponentImpl,
00103             public virtual POA_acsexmplLamp::Lamp,
00104             public ActionImplementator
00105 {
00106   public:
00114     Lamp(
00115          const ACE_CString& name,
00116          maci::ContainerServices * containerServices);
00117     
00121     virtual ~Lamp();
00122    
00123     /* --------------- [ Action implementator interface ] -------------- */    
00147     virtual ActionRequest 
00148     invokeAction (int function,
00149                   BACIComponent *cob_p, 
00150                   const int &callbackID, 
00151                   const CBDescIn &descIn, 
00152                   BACIValue *value_p, 
00153                   Completion &completion, 
00154                   CBDescOut &descOut);
00155     
00178     virtual ActionRequest 
00179     onAction (BACIComponent *cob_p, 
00180               const int &callbackID,
00181               const CBDescIn &descIn, 
00182               BACIValue *value_p,
00183               Completion &completion, 
00184               CBDescOut &descOut);
00185     
00208     virtual ActionRequest 
00209     offAction (BACIComponent *cob_p, 
00210                const int &callbackID,
00211                const CBDescIn &descIn, 
00212                BACIValue *value_p,
00213                Completion &completion, 
00214                CBDescOut &descOut);
00215     
00216     
00217     /* --------------------- [ CORBA interface ] ----------------------*/
00232     virtual void 
00233     on (ACS::CBvoid_ptr cb,
00234         const ACS::CBDescIn &desc)
00235         throw (CORBA::SystemException);
00236     
00251     virtual void 
00252     off (ACS::CBvoid_ptr cb,
00253          const ACS::CBDescIn &desc)
00254         throw (CORBA::SystemException); 
00255     
00263     virtual ACS::RWdouble_ptr 
00264     brightness ()
00265         throw (CORBA::SystemException); 
00266     
00267   private:
00271      SmartPropertyPointer<RWdouble> m_brightness_sp;
00272 
00276     void operator=(const Lamp&);
00277     
00278 };
00279 
00280 #endif   /* acsexmplLampImpl_h */
00281 
00282 
00283 

Generated on Sun Oct 29 02:26:25 2006 for ACS C++ API by doxygen 1.3.6