Gaudi Framework, version v25r2

Home   Generated: Wed Jun 4 2014
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ApplicationMgr.h
Go to the documentation of this file.
1 #ifndef GAUDI_APPLICATIONMGR_H
2 #define GAUDI_APPLICATIONMGR_H
3 
4 #include "GaudiKernel/Kernel.h"
10 #include "GaudiKernel/IAlgorithm.h"
13 #include "GaudiKernel/Service.h"
16 
17 // STL include files
18 #include <list>
19 #include <vector>
20 
21 // Forward declarations
22 class ISvcLocator;
23 class ServiceManager;
24 class AlgorithmManager;
25 class DLLClassManager;
26 
27 class IMessageSvc;
28 class IIncidentSvc;
29 class IRunable;
30 class IDataManagerSvc;
31 class IConversionSvc;
32 class IJobOptionsSvc;
33 
46 class ApplicationMgr : public CommonMessaging<implements4<IAppMgrUI,
47  IEventProcessor,
48  IService,
49  IStateful> > {
52  IService,
54 public:
55  typedef std::list<std::pair<IService*,int> > ListSvc;
56  typedef std::list<std::string> ListName;
57  typedef std::vector<std::string> VectorName;
58 
59 public:
60 
61  // default creator
63  // virtual destructor
64  virtual ~ApplicationMgr();
65 
66  // implementation of IInterface::queryInterface
67  virtual StatusCode queryInterface(const InterfaceID& iid, void** pinterface);
68 
69  // implementation of IAppMgrUI::run
70  virtual StatusCode run();
71  // implementation of IAppMgrUI::configure
72  virtual StatusCode configure();
73  // implementation of IAppMgrUI::terminate
74  virtual StatusCode terminate();
75  // implementation of IAppMgrUI::initialize
76  virtual StatusCode initialize();
77  // implementation of IAppMgrUI::start
78  virtual StatusCode start();
79  // implementation of IAppMgrUI::stop
80  virtual StatusCode stop();
81  // implementation of IAppMgrUI::finalize
82  virtual StatusCode finalize();
83  // implementation of IAppMgrUI::nextEvent
84  virtual StatusCode nextEvent(int maxevt);
85  // implementation of IAppMgrUI::name
86  virtual const std::string& name() const;
88  virtual StatusCode executeEvent(void* par);
90  virtual StatusCode executeRun(int evtmax);
92  virtual StatusCode stopRun();
93 
94  // implementation of IStateful::state
95  virtual Gaudi::StateMachine::State FSMState() const;
96  // implementation of IStateful::targetState
98  // implementation of IStateful::reinitialize
99  virtual StatusCode reinitialize();
100  // implementation of IStateful::reinitialize
101  virtual StatusCode restart();
102  // implementation of IService::sysItinitilaize
104  // implementation of IService::sysStart
106  // implementation of IService::sysStop
107  virtual StatusCode sysStop() { return StatusCode::SUCCESS; }
108  // implementation of IService::sysFinalize
110  // implementation of IService::sysReinitialize
112  // implementation of IService::sysRestart
114 
115  // SI Go Handler
116  void SIGoHandler ( Property& theProp );
117  // SI Exit handler
118  void SIExitHandler ( Property& theProp );
119 
121 
122  void evtLoopPropertyHandler ( Property& theProp );
126  void extSvcNameListHandler ( Property& theProp );
128  void multiThreadSvcNameListHandler( Property& theProp );
130  void dllNameListHandler ( Property& theProp );
131  void pluginDebugPropertyHandler ( Property& theProp );
132  void initLoopCheckHndlr ( Property& );
134 
135  template <class I>
137  return m_managers[I::interfaceID().id()];
138  }
139 
141  // Cache the casted pointer to ISvcManager
142  if (!m_svcManager) {
143  m_svcManager = getManager<IService>();
144  }
145  return m_svcManager;
146  }
147 
149  // Cache the casted pointer to IAlgManager
150  if (!m_algManager) {
151  m_algManager = getManager<IAlgorithm>();
152  }
153  return m_algManager;
154  }
155 
158  return m_svcLocator;
159  }
160 
161 protected:
163  StatusCode declareMultiSvcType(const std::string& name,
164  const std::string& type);
166  StatusCode addMultiSvc(const Gaudi::Utils::TypeNameString &typeName,
167  int prio);
168 
169  // implementation of IService::setServiceManager
171 
174 
179  StatusCode GoToState(Gaudi::StateMachine::State state, bool ignoreFailures = false);
180 
183  typedef std::map<unsigned long, SmartIF<IComponentManager> > ManagersMap;
190 
193 
196 
197 
198  // data members
201 
209 
210 
213 
214  std::string m_name;
217 
221 
227 
228  //
229  // The public ApplicationMgr properties
230  //
231 
232  int m_evtMax;
235 
239 
241  std::string m_jobOptionsType;
242  std::string m_jobOptionsPath;
243  std::string m_runableType;
244  std::string m_eventLoopMgr;
245  std::string m_evtsel;
246  std::string m_histPersName;
248  std::string m_appName;
249  std::string m_appVersion;
251  bool m_codeCheck;
253 
255 
260 
261  std::map<std::string,std::string> m_environment;
262 
265 
269 
273 
274  // Flag to activate the printout of properties
276 
279 
280 private:
281  std::vector<std::string> m_okDlls;
282 };
283 #endif // GAUDI_APPLICATIONMGR_H

Generated at Wed Jun 4 2014 14:48:56 for Gaudi Framework, version v25r2 by Doxygen version 1.8.2 written by Dimitri van Heesch, © 1997-2004