The Gaudi Framework  v29r0 (ff2e7097)
IssueSeverity Class Referencefinal

#include <GaudiKernel/IssueSeverity.h>

Collaboration diagram for IssueSeverity:

Public Types

enum  Level {
  NIL = 0, VERBOSE, DEBUG, DEBUG1,
  DEBUG2, DEBUG3, INFO, WARNING,
  RECOVERABLE, ERROR, FATAL, ALWAYS,
  NUM_LEVELS
}
 

Public Member Functions

 IssueSeverity ()
 
 IssueSeverity (IssueSeverity::Level level, int line, std::string file, std::string msg="")
 
 IssueSeverity (IssueSeverity::Level level, std::string msg="")
 
 IssueSeverity (const IssueSeverity &)=delete
 
IssueSeverityoperator= (const IssueSeverity &)=delete
 
 IssueSeverity (IssueSeverity &&) noexcept
 
IssueSeverityoperator= (IssueSeverity &&) noexcept
 
 ~IssueSeverity ()
 
void setLevel (const IssueSeverity::Level &l)
 
void setMsg (std::string m)
 
IssueSeverity::Level getLevel () const
 
std::string getMsg () const
 
std::string getOrigin () const
 
void report ()
 

Private Attributes

std::string m_file
 
std::string m_msg
 
int m_line = 0
 
IssueSeverity::Level m_level = IssueSeverity::NIL
 
bool m_reported = true
 

Static Private Attributes

static bool m_init
 
static IIssueLoggerm_ers
 

Friends

std::ostreamoperator<< (std::ostream &, const IssueSeverity &)
 

Detailed Description

Definition at line 23 of file IssueSeverity.h.

Member Enumeration Documentation

Enumerator
NIL 
VERBOSE 
DEBUG 
DEBUG1 
DEBUG2 
DEBUG3 
INFO 
WARNING 
RECOVERABLE 
ERROR 
FATAL 
ALWAYS 
NUM_LEVELS 

Definition at line 27 of file IssueSeverity.h.

Constructor & Destructor Documentation

IssueSeverity::IssueSeverity ( )
inline

Definition at line 43 of file IssueSeverity.h.

43 {}
IssueSeverity::IssueSeverity ( IssueSeverity::Level  level,
int  line,
std::string  file,
std::string  msg = "" 
)
inline

Definition at line 77 of file IssueSeverity.h.

78  : m_file( std::move( file ) ), m_msg( std::move( msg ) ), m_line( line ), m_level( level ), m_reported( false )
79 {
80  report();
81 }
std::string m_file
Definition: IssueSeverity.h:66
std::string m_msg
Definition: IssueSeverity.h:67
IssueSeverity::Level m_level
Definition: IssueSeverity.h:70
T move(T...args)
IssueSeverity::IssueSeverity ( IssueSeverity::Level  level,
std::string  msg = "" 
)
inline

Definition at line 83 of file IssueSeverity.h.

84  : IssueSeverity( std::move( level ), 0, "??", std::move( msg ) )
85 {
86 }
T move(T...args)
IssueSeverity::IssueSeverity ( const IssueSeverity )
delete
IssueSeverity::IssueSeverity ( IssueSeverity &&  rhs)
inlinenoexcept

Definition at line 88 of file IssueSeverity.h.

89 {
90  m_file = std::move( rhs.m_file );
91  m_msg = std::move( rhs.m_msg );
92  m_line = rhs.m_line;
93  m_level = rhs.m_level;
94  m_reported = std::exchange( rhs.m_reported, true );
95 }
std::string m_file
Definition: IssueSeverity.h:66
std::string m_msg
Definition: IssueSeverity.h:67
IssueSeverity::Level m_level
Definition: IssueSeverity.h:70
T move(T...args)
IssueSeverity::~IssueSeverity ( )

Definition at line 15 of file IssueSeverity.cpp.

16 {
17  if ( !m_reported ) {
18  report();
19  }
20 }

Member Function Documentation

IssueSeverity::Level IssueSeverity::getLevel ( ) const
inline

Definition at line 57 of file IssueSeverity.h.

57 { return m_level; }
IssueSeverity::Level m_level
Definition: IssueSeverity.h:70
std::string IssueSeverity::getMsg ( ) const
inline

Definition at line 58 of file IssueSeverity.h.

58 { return m_msg; }
std::string m_msg
Definition: IssueSeverity.h:67
std::string IssueSeverity::getOrigin ( ) const

Definition at line 36 of file IssueSeverity.cpp.

36 { return m_file + ":" + std::to_string( m_line ); }
T to_string(T...args)
std::string m_file
Definition: IssueSeverity.h:66
IssueSeverity& IssueSeverity::operator= ( const IssueSeverity )
delete
IssueSeverity & IssueSeverity::operator= ( IssueSeverity &&  rhs)
inlinenoexcept

Definition at line 97 of file IssueSeverity.h.

98 {
99  m_file = std::move( rhs.m_file );
100  m_msg = std::move( rhs.m_msg );
101  m_line = rhs.m_line;
102  m_level = rhs.m_level;
103  m_reported = std::exchange( rhs.m_reported, true );
104  return *this;
105 }
std::string m_file
Definition: IssueSeverity.h:66
std::string m_msg
Definition: IssueSeverity.h:67
IssueSeverity::Level m_level
Definition: IssueSeverity.h:70
T move(T...args)
void IssueSeverity::report ( )

Definition at line 22 of file IssueSeverity.cpp.

23 {
24  if ( !m_init ) {
25  m_init = true;
26  m_ers = Gaudi::svcLocator()->service<IIssueLogger>( "IssueLogger" ).get();
27  }
28  if ( m_ers ) {
29  m_ers->report( *this );
30  } else {
31  std::cerr << *this << std::endl;
32  }
33  m_reported = true;
34 }
static bool m_init
Definition: IssueSeverity.h:73
static IIssueLogger * m_ers
Definition: IssueSeverity.h:74
virtual void report(IssueSeverity::Level level, const std::string &msg, const std::string &origin)=0
T endl(T...args)
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
Definition: ISvcLocator.h:79
GAUDI_API ISvcLocator * svcLocator()
void IssueSeverity::setLevel ( const IssueSeverity::Level l)
inline

Definition at line 54 of file IssueSeverity.h.

54 { m_level = l; }
IssueSeverity::Level m_level
Definition: IssueSeverity.h:70
dictionary l
Definition: gaudirun.py:440
void IssueSeverity::setMsg ( std::string  m)
inline

Definition at line 55 of file IssueSeverity.h.

55 { m_msg = std::move( m ); }
std::string m_msg
Definition: IssueSeverity.h:67
T move(T...args)

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream os,
const IssueSeverity rhs 
)
friend

Definition at line 107 of file IssueSeverity.h.

108 {
109  os << "ISSUE: level " << rhs.getLevel() << " from: " << rhs.getOrigin() << " msg: " << rhs.getMsg();
110  return os;
111 }
std::string getOrigin() const
IssueSeverity::Level getLevel() const
Definition: IssueSeverity.h:57
std::string getMsg() const
Definition: IssueSeverity.h:58

Member Data Documentation

IIssueLogger * IssueSeverity::m_ers
staticprivate

Definition at line 74 of file IssueSeverity.h.

std::string IssueSeverity::m_file
private

Definition at line 66 of file IssueSeverity.h.

bool IssueSeverity::m_init
staticprivate

Definition at line 73 of file IssueSeverity.h.

IssueSeverity::Level IssueSeverity::m_level = IssueSeverity::NIL
private

Definition at line 70 of file IssueSeverity.h.

int IssueSeverity::m_line = 0
private

Definition at line 69 of file IssueSeverity.h.

std::string IssueSeverity::m_msg
private

Definition at line 67 of file IssueSeverity.h.

bool IssueSeverity::m_reported = true
private

Definition at line 71 of file IssueSeverity.h.


The documentation for this class was generated from the following files: