μHAL (v2.7.9)
Part of the IPbus software repository
uhal
include
uhal
TemplateDefinitions
Node.hxx
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
33
34
#include <exception>
35
#include <string>
36
37
#include "
uhal/log/log_inserters.quote.hpp
"
38
#include "
uhal/log/log_inserters.type.hpp
"
39
#include "
uhal/log/log.hpp
"
40
41
42
namespace
uhal
43
{
44
45
template
<
typename
T>
46
const
T&
Node::getNode
(
const
std::string& aId )
const
47
{
48
try
49
{
50
return
dynamic_cast<
const
T&
>
(
getNode
( aId ) );
51
}
52
catch
(
const
std::exception& aExc )
53
{
54
exception::BadNodeCast lExc;
55
log
( lExc ,
"Invalid cast of Node "
,
Quote
(
getNode
( aId ).
getId
() ) ,
" from type "
,
Quote
(
Type
( *
this
) ),
" to "
,
Quote
( Type<T>() ) );
56
throw
lExc;
57
}
58
}
59
60
}
61
uhal::Type
_Type< T > Type()
Definition:
log_inserters.type.hxx:60
uhal::Node::getNode
const Node & getNode(const std::string &aId) const
Retrieve the Node given by a full-stop delimeted name path relative, to the current node.
Definition:
Node.cpp:415
uhal
Definition:
HttpResponseGrammar.hpp:49
log_inserters.quote.hpp
uhal::log
void log(FatalLevel &aFatal, const T0 &aArg0)
Function to add a log entry at Fatal level.
Definition:
log.hxx:20
uhal::Quote
_Quote< T > Quote(const T &aT)
Definition:
log_inserters.quote.hxx:49
uhal::Node::getId
const std::string & getId() const
Return the unique ID of the current node.
Definition:
Node.cpp:195
log.hpp
log_inserters.type.hpp
Generated on Tue Sep 22 2020 19:18:39 for μHAL (v2.7.9) by
1.8.18