DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
Severity.cpp
Go to the documentation of this file.
1/*
2 * DUNE DAQ modification notice:
3 * This file has been modified from the original ATLAS ers source for the DUNE DAQ project.
4 * Fork baseline commit: 8267df82a4f6fe6bf02c4014923eba19eddc4614 (2020-04-14).
5 * Renamed since fork: yes (from src/Severity.cxx to src/Severity.cpp).
6 *
7 * Original copyright:
8 * Copyright (C) 2001-2020 CERN for the benefit of the ATLAS collaboration.
9 * Licensed under the Apache License, Version 2.0.
10 */
11
12#include <assert.h>
13#include <sstream>
14#include <ers/ers.hpp>
15
16namespace
17{
18 const char * SeverityNames[] =
19 {
20 "DEBUG",
21 "LOG",
22 "INFO",
23 "WARNING",
24 "ERROR",
25 "FATAL"
26 };
27}
28
30 BadSeverity,
31 "string \"" << severity << "\" does not contain valid severity",
32 ((std::string)severity) )
33
34
35
40std::string
42{
43 assert( ers::Debug <= severity && severity <= ers::Fatal );
44 return SeverityNames[severity];
45}
46
52std::string
54{
55 assert( ers::Debug <= severity && severity <= ers::Fatal );
56
57 if ( severity.type == ers::Debug )
58 {
59 std::ostringstream out;
60 out << SeverityNames[severity] << "_" << severity.rank;
61 return out.str();
62 }
63 return SeverityNames[severity.type];
64}
65
71ers::parse( const std::string & string, ers::severity & s )
72{
73 for( short ss = ers::Debug; ss <= ers::Fatal; ++ss )
74 {
75 if ( string == SeverityNames[ss] )
76 {
77 return ( s = (ers::severity)ss );
78 }
79 }
80 throw ers::BadSeverity( ERS_HERE, string );
81}
82
88ers::parse( const std::string & string, ers::Severity & s )
89{
90 int level = 0;
92 std::string::size_type pos = string.find( '_' );
93 if ( pos )
94 {
95 std::istringstream in( string.substr( pos + 1 ) );
96 in >> level;
97 ers::parse( string.substr( 0, pos ), type );
98 }
99 else
100 {
101 ers::parse( string, type );
102 }
103 return ( s = ers::Severity( type, level ) );
104}
105
#define ERS_HERE
#define ERS_DECLARE_ISSUE( namespace_name, class_name, message_, attributes)
Definition macro.hpp:65
std::string to_string(severity s)
severity parse(const std::string &s, severity &)
Definition Severity.cpp:71
severity
Definition Severity.hpp:37
@ Debug
Definition Severity.hpp:37
@ Fatal
Definition Severity.hpp:37