ComponentManager.h
Go to the documentation of this file.
1 #ifndef COMPONENTMANAGER_H_
2 #define COMPONENTMANAGER_H_
3 
4 #include "GaudiKernel/IComponentManager.h"
5 #include "GaudiKernel/CommonMessaging.h"
6 #include "GaudiKernel/HashMap.h"
7 
14 class GAUDI_API ComponentManager: public CommonMessaging<implements1<IComponentManager> > {
15 public:
16 
19  ComponentManager(IInterface *application, const InterfaceID &baseIID);
20 
22  virtual const InterfaceID& componentBaseInterface() const;
23 
25  virtual ~ComponentManager();
26 
30  StatusCode queryInterface(const InterfaceID& iid, void** pinterface);
31 
32  virtual SmartIF<ISvcLocator>& serviceLocator() const {
33  if (!m_svcLocator) m_svcLocator = m_application;
34  return m_svcLocator;
35  }
36 
38  virtual StatusCode configure() {return StatusCode::SUCCESS;}
39 
41  virtual StatusCode initialize() {return StatusCode::SUCCESS;}
42 
44  virtual StatusCode start() {return StatusCode::SUCCESS;}
45 
47  virtual StatusCode stop() {return StatusCode::SUCCESS;}
48 
50  virtual StatusCode finalize() {return StatusCode::SUCCESS;}
51 
53  virtual StatusCode terminate() {return StatusCode::SUCCESS;}
54 
55 
57  virtual StatusCode reinitialize() {return StatusCode::SUCCESS;}
58 
60  virtual StatusCode restart() {return StatusCode::SUCCESS;}
61 
63  virtual Gaudi::StateMachine::State FSMState() const {return m_stateful->FSMState();}
64 
67  virtual Gaudi::StateMachine::State targetFSMState() const {return m_stateful->targetFSMState();}
68 
69 protected:
70 
72  SmartIF<IInterface> m_application;
73 
75  SmartIF<IStateful> m_stateful;
76 
78  InterfaceID m_basicInterfaceId;
79 
81  mutable SmartIF<ISvcLocator> m_svcLocator;
82 
83 };
84 
85 
86 #endif /* COMPONENTMANAGER_H_ */
def initialize()
Definition: AnalysisTest.py:12
Base class for a component manager.
#define GAUDI_API
Definition: Kernel.h:108
virtual SmartIF< ISvcLocator > & serviceLocator() const =0
Needed to locate the message service.
State
Allowed states for classes implementing the state machine (ApplicationMgr, Algorithm, Service, AlgTool).
Definition: StateMachine.h:12
Interface ID class.
Definition: IInterface.h:55
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:30
Definition of the basic interface.
Definition: IInterface.h:160
Templated class to add the standard messaging functionalities.
tuple start
Definition: IOTest.py:88