The Gaudi Framework
master (d98a2936)
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Typedefs
a
b
c
d
e
f
h
i
l
m
o
p
r
s
t
u
v
w
x
Enumerations
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
y
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Enumerations
a
c
d
e
f
i
l
m
n
o
p
q
r
s
t
v
Enumerator
a
b
c
d
e
f
i
j
k
l
m
n
o
p
r
s
t
u
v
w
Properties
Related Functions
:
a
b
c
d
e
g
h
i
m
o
p
r
s
t
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Functions
_
b
c
e
f
g
h
i
l
m
o
p
r
s
t
u
z
Variables
a
b
c
d
e
g
h
i
m
o
p
q
r
s
t
v
x
Typedefs
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
w
Enumerations
Enumerator
Macros
_
a
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
Interface.h
Go to the documentation of this file.
1
/***********************************************************************************\
2
* (c) Copyright 1998-2025 CERN for the benefit of the LHCb and ATLAS collaborations *
3
* *
4
* This software is distributed under the terms of the Apache version 2 licence, *
5
* copied verbatim in the file "LICENSE". *
6
* *
7
* In applying this licence, CERN does not waive the privileges and immunities *
8
* granted to it by virtue of its status as an Intergovernmental Organization *
9
* or submit itself to any jurisdiction. *
10
\***********************************************************************************/
11
// ============================================================================
12
#pragma once
13
// ============================================================================
14
// Include files
15
// ============================================================================
16
// STD & STL
17
// ============================================================================
18
#include <functional>
19
// ============================================================================
20
// GaudiKernel
21
// ============================================================================
22
#include <
GaudiKernel/IInterface.h
>
23
#include <
GaudiKernel/SmartIF.h
>
24
// ============================================================================
25
// GaudiPython
26
// ============================================================================
27
#include <
GaudiPython/GaudiPython.h
>
28
// ============================================================================
29
30
namespace
GaudiPython
{
41
template
<
class
TYPE>
42
struct
Interface
{
47
TYPE*
operator()
(
const
IInterface
* in )
const
{
48
return
SmartIF<TYPE>
( TYPE::interfaceID(),
const_cast<
IInterface
*
>
( in ) );
49
}
50
55
static
TYPE*
cast
(
const
IInterface
* in ) {
return
SmartIF<TYPE>
(
const_cast<
IInterface
*
>
( in ) ); }
56
62
static
TYPE*
cast
(
const
InterfaceID
& iid,
const
IInterface
* in ) {
63
return
SmartIF<TYPE>
( iid,
const_cast<
IInterface
*
>
( in ) );
64
}
65
};
66
67
template
<>
68
struct
Interface
<
IInterface
> {
69
typedef
IInterface
TYPE
;
74
TYPE
*
operator()
(
const
IInterface
* in )
const
{
return
SmartIF<TYPE>
(
const_cast<
IInterface
*
>
( in ) ); }
75
80
static
TYPE
*
cast
(
const
IInterface
* in ) {
return
SmartIF<TYPE>
(
const_cast<
IInterface
*
>
( in ) ); }
81
87
static
TYPE
*
cast
(
const
InterfaceID
&
/* iid */
,
const
IInterface
* in ) {
88
return
SmartIF<TYPE>
(
const_cast<
IInterface
*
>
( in ) );
89
}
90
};
91
92
}
// end of namespace GaudiPython
GaudiPython::Interface::cast
static TYPE * cast(const InterfaceID &iid, const IInterface *in)
the only one important method (static)
Definition:
Interface.h:62
GaudiPython::Interface::cast
static TYPE * cast(const IInterface *in)
the only one important method (static)
Definition:
Interface.h:55
SmartIF.h
IInterface.h
GaudiPython.h
GaudiPython::Interface< IInterface >::cast
static TYPE * cast(const InterfaceID &, const IInterface *in)
the only one important method (static)
Definition:
Interface.h:87
SmartIF
Definition:
IConverter.h:22
GaudiPython::Interface< IInterface >::TYPE
IInterface TYPE
Definition:
Interface.h:69
GaudiPython
Namespace for all classes interfacing Gaudi to Python.
Definition:
Algorithm.h:29
IInterface
Definition:
IInterface.h:225
GaudiPython::Interface
Definition:
Interface.h:42
GaudiPython::Interface< IInterface >::operator()
TYPE * operator()(const IInterface *in) const
the only one important method
Definition:
Interface.h:74
InterfaceID
Definition:
IInterface.h:38
GaudiPython::Interface< IInterface >::cast
static TYPE * cast(const IInterface *in)
the only one important method (static)
Definition:
Interface.h:80
GaudiPython::Interface::operator()
TYPE * operator()(const IInterface *in) const
the only one important method
Definition:
Interface.h:47
GaudiPython
include
GaudiPython
Interface.h
Generated on Wed Aug 13 2025 09:05:05 for The Gaudi Framework by
1.8.18