File indexing completed on 2025-02-21 10:00:28
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef COMPONENTMANAGER_H_
0012 #define COMPONENTMANAGER_H_
0013
0014 #include "GaudiKernel/CommonMessaging.h"
0015 #include "GaudiKernel/IComponentManager.h"
0016
0017 class ApplicationMgr;
0018
0019
0020
0021
0022
0023
0024
0025 class GAUDI_API ComponentManager : public CommonMessaging<implements<IComponentManager>> {
0026 public:
0027
0028
0029 ComponentManager( IInterface* application, const InterfaceID& baseIID );
0030
0031
0032 const InterfaceID& componentBaseInterface() const override;
0033
0034
0035
0036
0037 StatusCode queryInterface( const InterfaceID& iid, void** pinterface ) override;
0038
0039 SmartIF<ISvcLocator>& serviceLocator() const override {
0040 if ( !m_svcLocator ) m_svcLocator = m_application;
0041 return m_svcLocator;
0042 }
0043
0044
0045 StatusCode configure() override { return StatusCode::SUCCESS; }
0046
0047
0048 StatusCode initialize() override { return StatusCode::SUCCESS; }
0049
0050
0051 StatusCode start() override { return StatusCode::SUCCESS; }
0052
0053
0054 StatusCode stop() override { return StatusCode::SUCCESS; }
0055
0056
0057 StatusCode finalize() override { return StatusCode::SUCCESS; }
0058
0059
0060 StatusCode terminate() override { return StatusCode::SUCCESS; }
0061
0062
0063 StatusCode reinitialize() override { return StatusCode::SUCCESS; }
0064
0065
0066 StatusCode restart() override { return StatusCode::SUCCESS; }
0067
0068
0069 Gaudi::StateMachine::State FSMState() const override { return m_stateful->FSMState(); }
0070
0071
0072
0073 Gaudi::StateMachine::State targetFSMState() const override { return m_stateful->targetFSMState(); }
0074
0075 protected:
0076
0077 SmartIF<IInterface> m_application;
0078
0079
0080 SmartIF<IStateful> m_stateful;
0081
0082
0083 InterfaceID m_basicInterfaceId;
0084
0085
0086 mutable SmartIF<ISvcLocator> m_svcLocator;
0087
0088 friend ApplicationMgr;
0089 };
0090
0091 #endif