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
1.3.6