| # Gaudi Framework, version v21r6 |

Home |  | Generated: 11 Nov 2009

# ComponentManager.h

Go to the documentation of this file.

    00001 #ifndef COMPONENTMANAGER_H_
    00002 #define COMPONENTMANAGER_H_
    00003
    00004 #include "GaudiKernel/IComponentManager.h"
    00005 #include "GaudiKernel/CommonMessaging.h"
    00006 #include "GaudiKernel/HashMap.h"
    00007
    00014 class GAUDI_API ComponentManager: public CommonMessaging<implements1<IComponentManager> > {
    00015 public:
    00016
    00019   ComponentManager(IInterface *application, const InterfaceID &baseIID);
    00020
    00022   virtual const InterfaceID& componentBaseInterface() const;
    00023
    00025   virtual ~ComponentManager();
    00026
    00030   StatusCode queryInterface(const InterfaceID& iid, void** pinterface);
    00031
    00032   virtual SmartIF<ISvcLocator>& serviceLocator() const {
    00033     if (!m_svcLocator) m_svcLocator = m_application;
    00034     return m_svcLocator;
    00035   }
    00036
    00038   virtual StatusCode configure() {return StatusCode::SUCCESS;}
    00039
    00041   virtual StatusCode initialize() {return StatusCode::SUCCESS;}
    00042
    00044   virtual StatusCode start() {return StatusCode::SUCCESS;}
    00045
    00047   virtual StatusCode stop() {return StatusCode::SUCCESS;}
    00048
    00050   virtual StatusCode finalize() {return StatusCode::SUCCESS;}
    00051
    00053   virtual StatusCode terminate() {return StatusCode::SUCCESS;}
    00054
    00055
    00057   virtual StatusCode reinitialize() {return StatusCode::SUCCESS;}
    00058
    00060   virtual StatusCode restart() {return StatusCode::SUCCESS;}
    00061
    00063   virtual Gaudi::StateMachine::State FSMState() const {return m_stateful->FSMState();}
    00064
    00067   virtual Gaudi::StateMachine::State targetFSMState() const {return m_stateful->targetFSMState();}
    00068
    00069 protected:
    00070
    00072   SmartIF<IInterface> m_application;
    00073
    00075   SmartIF<IStateful> m_stateful;
    00076
    00078   InterfaceID m_basicInterfaceId;
    00079
    00081   mutable SmartIF<ISvcLocator> m_svcLocator;
    00082
    00083 };
    00084
    00085
    00086 #endif /* COMPONENTMANAGER_H_ */