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
GaudiKernel
GaudiKernel
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
Generated at Mon Feb 17 2014 14:37:42 for Gaudi Framework, version v25r0 by
Doxygen
version 1.8.2 written by
Dimitri van Heesch
, © 1997-2004