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

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.32 2008/10/09 19:01:13 bjeram 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 
00097   virtual ::ACS::ComponentStates componentState ();
00098 
00099     /*************** Life Cycle methods ***************/
00100 
00101 
00116     virtual void initialize();
00117 
00130     virtual void execute();
00131 
00146     virtual void cleanUp();
00147 
00161     virtual void aboutToAbort();
00162 
00168     virtual void __execute();
00169 
00175     virtual void __aboutToAbort();
00176 
00182     virtual void __cleanUp();
00183 
00190     virtual void __initialize();
00191 
00201     maci::ContainerServices *getContainerServices();
00202 
00203  private:
00204 
00207     ACE_CString m_name;
00208 
00211     //std::auto_ptr<maci::ContainerServices> m_containerServices_p;
00212     Loki::SmartPtr<maci::ContainerServices> m_containerServices_p;
00213 
00214 };
00215 
00216 } // namespace acscomponent
00217 
00218 
00219 #endif
00220 

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