Gaudi Framework, version v24r2
Home
Generated: Wed Dec 4 2013
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
GaudiAlg
GaudiAlg
GetAlg.h
Go to the documentation of this file.
1
// $Id: GetAlg.h,v 1.2 2007/11/20 13:01:06 marcocle Exp $
2
// ============================================================================
3
#ifndef GAUDIALG_GETALG_H
4
#define GAUDIALG_GETALG_H 1
5
// ============================================================================
6
// Include files
7
// ============================================================================
8
// GaudiKernnel
9
// ============================================================================
10
#include "
GaudiKernel/IAlgorithm.h
"
11
// ============================================================================
12
// forward declarations
13
// ============================================================================
14
class
IAlgContextSvc
;
15
// ============================================================================
16
namespace
Gaudi
17
{
18
namespace
Utils
19
{
20
// ========================================================================
26
class
GAUDI_API
AlgSelector
27
{
28
public
:
30
virtual
bool
operator() (
const
IAlgorithm
* )
const
= 0 ;
31
// virtual destructor
32
virtual
~
AlgSelector
() ;
33
};
34
// ========================================================================
41
template
<
class
TYPE>
42
class
GAUDI_API
AlgTypeSelector
:
public
AlgSelector
43
{
44
public
:
46
virtual
bool
operator() (
const
IAlgorithm
* a )
const
47
{
return
dynamic_cast<
const
TYPE*
>
( a ) != 0; }
48
} ;
49
// ========================================================================
50
template
<
class
TYPE>
51
class
AlgTypeSelector
<TYPE*> :
public
AlgTypeSelector<TYPE>
{} ;
52
// ========================================================================
53
template
<
class
TYPE>
54
class
AlgTypeSelector
<const TYPE*> :
public
AlgTypeSelector<TYPE>
{} ;
55
// ========================================================================
56
template
<
class
TYPE>
57
class
AlgTypeSelector
<TYPE&> :
public
AlgTypeSelector<TYPE>
{} ;
58
// ========================================================================
59
template
<
class
TYPE>
60
class
AlgTypeSelector
<const TYPE&> :
public
AlgTypeSelector<TYPE>
{} ;
61
// ========================================================================
62
template
<
class
TYPE>
63
class
AlgTypeSelector
<const TYPE> :
public
AlgTypeSelector
<TYPE> {} ;
64
// ========================================================================
71
class
GAUDI_API
AlgNameSelector
:
public
AlgSelector
72
{
73
public
:
75
AlgNameSelector
(
const
std::string
& name ) : m_name ( name ) {}
77
virtual
bool
operator() (
const
IAlgorithm
* a )
const
78
{
return
0 != a ? a->
name
() == m_name : false ; }
79
private
:
80
// the default constructor is disabled
81
AlgNameSelector
() ;
82
private
:
83
// algorithm name
84
std::string
m_name
;
85
} ;
86
// ========================================================================
87
}
// end of namespace Gaudi::Utils
88
}
// end of namespace Gaudi
89
// ============================================================================
90
namespace
Gaudi
91
{
92
namespace
Utils
93
{
94
// ========================================================================
117
GAUDI_API
IAlgorithm
*
getAlgorithm
118
(
const
IAlgContextSvc
* svc ,
119
const
AlgSelector&
sel
) ;
120
// ========================================================================
143
GAUDI_API
IAlgorithm
*
getAlgorithm
144
(
const
std::vector<IAlgorithm*>
& lst ,
145
const
AlgSelector& sel ) ;
146
// ========================================================================
147
}
// end of namespace Gaudi::Utils
148
}
// end of namespace Gaudi
149
// ============================================================================
150
// The END
151
// ============================================================================
152
#endif // GAUDIALG_GETALG_H
153
// ============================================================================
Generated at Wed Dec 4 2013 14:33:07 for Gaudi Framework, version v24r2 by
Doxygen
version 1.8.2 written by
Dimitri van Heesch
, © 1997-2004