μHAL (v2.7.9)
Part of the IPbus software repository
Main Page
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
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
l
m
n
o
p
q
r
s
t
u
w
x
Variables
_
a
b
c
d
e
f
h
i
j
l
m
n
o
p
r
s
t
u
v
w
x
Typedefs
Enumerations
Enumerator
b
c
d
e
f
h
i
m
n
r
s
u
v
w
x
y
Classes
Class List
Class Index
Class Hierarchy
Class 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
~
Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
x
~
Variables
_
a
b
c
d
e
f
h
i
k
m
n
o
p
q
r
s
t
u
v
w
Typedefs
a
b
c
d
f
i
p
r
s
t
u
v
w
Enumerations
Enumerator
Related Functions
c
d
g
h
i
l
n
o
p
q
r
s
t
v
x
Files
File List
File Members
All
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
w
x
z
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
x
z
Variables
Typedefs
Enumerations
Enumerator
a
c
i
l
n
p
Macros
b
m
n
p
s
t
u
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
uhal
include
uhal
DerivedNode.hpp
Go to the documentation of this file.
1
/*
2
---------------------------------------------------------------------------
3
4
This file is part of uHAL.
5
6
uHAL is a hardware access library and programming framework
7
originally developed for upgrades of the Level-1 trigger of the CMS
8
experiment at CERN.
9
10
uHAL is free software: you can redistribute it and/or modify
11
it under the terms of the GNU General Public License as published by
12
the Free Software Foundation, either version 3 of the License, or
13
(at your option) any later version.
14
15
uHAL is distributed in the hope that it will be useful,
16
but WITHOUT ANY WARRANTY; without even the implied warranty of
17
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
GNU General Public License for more details.
19
20
You should have received a copy of the GNU General Public License
21
along with uHAL. If not, see <http://www.gnu.org/licenses/>.
22
23
24
Andrew Rose, Imperial College, London
25
email: awr01 <AT> imperial.ac.uk
26
27
Marc Magrans de Abril, CERN
28
email: marc.magrans.de.abril <AT> cern.ch
29
30
---------------------------------------------------------------------------
31
*/
32
39
#ifndef _uhal_DerivedNode_hpp_
40
#define _uhal_DerivedNode_hpp_
41
42
43
#include <boost/static_assert.hpp>
44
45
#include "
uhal/Node.hpp
"
46
47
53
#define UHAL_REGISTER_DERIVED_NODE( classname ) \
54
uhal::RegistrationHelper< classname > classname##RegistrationHelper( #classname ); \
55
uhal::Node* classname::clone() const \
56
{ \
57
return new classname ( static_cast<const classname&> ( *this ) ); \
58
}
59
60
64
#define UHAL_DERIVEDNODE(DerivedType) \
65
private: \
66
BOOST_STATIC_ASSERT(( boost::is_base_of<Node, uhal::Node>::value )); \
67
protected: \
68
virtual uhal::Node* clone() const;
69
70
71
namespace
uhal
72
{
73
81
template
<
typename
T >
82
struct
RegistrationHelper
83
{
88
RegistrationHelper
(
const
std::string& aDerivedClassName );
89
};
90
91
}
92
93
#include "
uhal/TemplateDefinitions/DerivedNode.hxx
"
94
95
#endif
uhal::RegistrationHelper::RegistrationHelper
RegistrationHelper(const std::string &aDerivedClassName)
Constructor.
Definition:
DerivedNode.hxx:38
Node.hpp
uhal::RegistrationHelper
Experimental!! Helper struct for adding the DerivedNode to the Node Factory Declaring an instance of ...
Definition:
DerivedNode.hpp:83
uhal
Definition:
HttpResponseGrammar.hpp:49
DerivedNode.hxx
Generated on Tue Sep 22 2020 19:18:38 for μHAL (v2.7.9) by
1.8.18