| # Gaudi Framework, version v25r0 |

Home |  | Generated: Mon Feb 17 2014

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
IAlgManager.h
Go to the documentation of this file.
1 // $Id: IAlgManager.h,v 1.7 2008/06/02 14:20:38 marcocle Exp $
2 #ifndef GAUDIKERNEL_IALGMANAGER_H
3 #define GAUDIKERNEL_IALGMANAGER_H
4
5 // Include files
6 #include "GaudiKernel/IComponentManager.h"
7 #include "GaudiKernel/SmartIF.h"
8 #include "GaudiKernel/TypeNameString.h"
9 #include <string>
10 #include <list>
11
12 // Forward class declaration
13 class IService;
14 class IAlgorithm;
15 class ISvcLocator;
16
28 class GAUDI_API IAlgManager: virtual public IComponentManager {
29 public:
31 DeclareInterfaceID(IAlgManager,5,0);
32
34 virtual StatusCode addAlgorithm( IAlgorithm* alg // Pointer to the Algorithm
35 ) = 0;
37 virtual StatusCode removeAlgorithm( IAlgorithm* alg // Pointer to the Algorithm
38 ) = 0;
41 virtual StatusCode createAlgorithm( const std::string& algtype, // Algorithm type name
42 const std::string& algname, // Algorithm name to be assigned
43 IAlgorithm*& alg, // Returned algorithm
44 bool managed = false // Flag to indicate if the algorithm is managed
45 ) = 0;
46 #if !defined(GAUDI_V22_API) || defined(G22_NEW_SVCLOCATOR)
47
48 virtual StatusCode getAlgorithm( const std::string& name, // Algorithm name to be searched
49 IAlgorithm*& alg // Returned algorithm
50 ) const {
51 SmartIF<IAlgorithm> &si = const_cast<IAlgManager*>(this)->algorithm(name, false);
52 alg = si.get();
53 return si.isValid() ? StatusCode::SUCCESS : StatusCode::FAILURE;
54 }
55 #endif
56
57 virtual bool existsAlgorithm( const std::string& name // Algorithm name to be searched
58 ) const = 0;
60 virtual const std::list<IAlgorithm*>& getAlgorithms() const = 0;
61
62 #if !defined(GAUDI_V22_API) || defined(G22_NEW_SVCLOCATOR)
63
64 virtual StatusCode initializeAlgorithms() { return initialize(); }
65
67 virtual StatusCode startAlgorithms() { return start(); }
68
70 virtual StatusCode stopAlgorithms() { return stop(); }
71
73 virtual StatusCode finalizeAlgorithms() { return finalize(); }
74
76 virtual StatusCode reinitializeAlgorithms() { return reinitialize(); }
77
79 virtual StatusCode restartAlgorithms() { return restart(); }
80 #endif
81
83 virtual SmartIF<IAlgorithm> &algorithm(const Gaudi::Utils::TypeNameString &typeName, const bool createIf = true) = 0;
84
86 template <typename T>
87 inline SmartIF<T> algorithm(const Gaudi::Utils::TypeNameString &typeName, const bool createIf = true) {
88 return SmartIF<T>(algorithm(typeName, createIf));
89 }
90
91 };
92
93
94 #endif // GAUDI_IALGMANAGER_H