DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
Severity.cpp
Go to the documentation of this file.
1#include <assert.h>
2#include <sstream>
3#include <ers/ers.hpp>
4
5namespace
6{
7 const char * SeverityNames[] =
8 {
9 "DEBUG",
10 "LOG",
11 "INFO",
12 "WARNING",
13 "ERROR",
14 "FATAL"
15 };
16}
17
19 BadSeverity,
20 "string \"" << severity << "\" does not contain valid severity",
21 ((std::string)severity) )
22
23
24
29std::string
31{
32 assert( ers::Debug <= severity && severity <= ers::Fatal );
33 return SeverityNames[severity];
34}
35
41std::string
43{
44 assert( ers::Debug <= severity && severity <= ers::Fatal );
45
46 if ( severity.type == ers::Debug )
47 {
48 std::ostringstream out;
49 out << SeverityNames[severity] << "_" << severity.rank;
50 return out.str();
51 }
52 return SeverityNames[severity.type];
53}
54
60ers::parse( const std::string & string, ers::severity & s )
61{
62 for( short ss = ers::Debug; ss <= ers::Fatal; ++ss )
63 {
64 if ( string == SeverityNames[ss] )
65 {
66 return ( s = (ers::severity)ss );
67 }
68 }
69 throw ers::BadSeverity( ERS_HERE, string );
70}
71
77ers::parse( const std::string & string, ers::Severity & s )
78{
79 int level = 0;
81 std::string::size_type pos = string.find( '_' );
82 if ( pos )
83 {
84 std::istringstream in( string.substr( pos + 1 ) );
85 in >> level;
86 ers::parse( string.substr( 0, pos ), type );
87 }
88 else
89 {
90 ers::parse( string, type );
91 }
92 return ( s = ers::Severity( type, level ) );
93}
94
#define ERS_DECLARE_ISSUE(namespace_name, class_name, message, attributes)
#define ERS_HERE
std::string to_string(severity s)
severity parse(const std::string &s, severity &)
Definition Severity.cpp:60
severity
Definition Severity.hpp:26
@ Debug
Definition Severity.hpp:26
@ Fatal
Definition Severity.hpp:26