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

acscomponentImpl.h

Go to the documentation of this file.
00001 #ifndef acscomponentImpl_H
00002 #define acscomponentImpl_H
00003 
00004 /************************************************************************
00005 * E.S.O. - ACS project
00006 *
00007 * "@(#) $Id: acscomponentImpl.h,v 1.30 2006/10/03 21:51:44 gchiozzi Exp $"
00008 *
00009 * who       when        what
00010 * --------  ----------  -------------------------------------------------
00011 * rcirami   2003/08/28  created
00012 
00013 */
00014 
00015 #ifndef __cplusplus
00016 #error This is a C++ include file and cannot be used from plain C
00017 #endif
00018 
00019 #include "acsutil.h"
00020 #include "logging.h"
00021 #include "loggingLoggable.h"
00022 
00023 #include <acscomponentS.h>
00024 #include <acscomponentC.h>
00025 #include <acsContainerServices.h>
00026 #include <acsErrTypeLifeCycle.h>
00027 #include "lokiSmartPtr.h" 
00028 
00029 namespace acscomponent {
00030 
00036 class ACSComponentImpl : public virtual PortableServer::RefCountServantBase,
00037                          public virtual POA_ACS::ACSComponent,
00038                          public Logging::Loggable
00039 {
00040  public:
00041 
00051   ACSComponentImpl(
00052     const ACE_CString& name,
00053     maci::ContainerServices *containerServices);
00054   
00060   virtual ~ACSComponentImpl();
00061 
00072   PortableServer::POA_var getPOA() { return m_containerServices_p->getPOA(); }
00073   
00074 /* ------------------ [ ACSComponent interface ] ------------------ */
00075   
00087   virtual char * name ()
00088       throw (CORBA::SystemException);
00089  
00098   virtual ::ACS::ComponentStates componentState ()
00099     throw (CORBA::SystemException);
00100 
00101     /*************** Life Cycle methods ***************/
00102 
00103 
00118     virtual void initialize()
00119       throw (ACSErr::ACSbaseExImpl);
00120 
00133     virtual void execute()
00134       throw (ACSErr::ACSbaseExImpl);
00135     
00150     virtual void cleanUp();
00151 
00165     virtual void aboutToAbort();
00166     
00172     virtual void __execute()
00173         throw (ACSErr::ACSbaseExImpl);
00174     
00180     virtual void __aboutToAbort();
00181     
00187     virtual void __cleanUp();
00188     
00195     virtual void __initialize()
00196         throw (ACSErr::ACSbaseExImpl);
00197 
00207     maci::ContainerServices *getContainerServices();
00208 
00209  private:
00210 
00213     ACE_CString m_name;
00214 
00217     //std::auto_ptr<maci::ContainerServices> m_containerServices_p;
00218     Loki::SmartPtr<maci::ContainerServices> m_containerServices_p;
00219 
00220 };  
00221 
00222 } // namespace acscomponent
00223 
00224 
00225 #endif
00226 

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