42get_default_qualifiers(std::vector<std::string>& qualifiers)
44 static const char* environment = ::getenv(
"DUNEDAQ_ERS_QUALIFIERS");
52add_default_qualifiers(
Issue& issue)
54 static std::vector<std::string> qualifiers;
56 get_default_qualifiers(qualifiers);
57 for (std::vector<std::string>::const_iterator it = qualifiers.begin(); it != qualifiers.end(); ++it) {
64 :
std::exception(other)
84 ,
m_time(system_clock::now())
87 add_default_qualifiers(*
this);
97 ,
m_time(system_clock::now())
102 add_default_qualifiers(*
this);
114 ,
m_time(system_clock::now())
119 add_default_qualifiers(*
this);
123 const system_clock::time_point&
time,
127 const std::map<std::string, std::string>&
parameters,
148 return system_clock::to_time_t(
m_time);
154 string_map::const_iterator it =
m_values.find(key);
156 value = it->second.c_str();
165 string_map::const_iterator it =
m_values.find(key);
An abstract interface to access an Issue context.
Base class for any user define issue.
const Context & context() const
Context of the issue.
ers::Severity severity() const
severity of the issue
Severity m_severity
Issue's severity.
void wrap_message(const std::string &begin, const std::string &end)
std::unique_ptr< Context > m_context
Context of the current issue.
virtual ~Issue() noexcept
void prepend_message(const std::string &message)
system_clock::time_point m_time
Time when issue was thrown.
void get_value(const std::string &key, T &value) const
const std::vector< std::string > & qualifiers() const
return array of qualifiers
const std::string & message() const
General cause of the issue.
const string_map & parameters() const
return array of parameters
std::string time(const std::string &format="%Y-%b-%d %H:%M:%S", bool isUTC=false) const
string representation of local time of the issue
virtual Issue * clone() const =0
std::unique_ptr< const Issue > m_cause
Issue that caused the current issue.
string_map m_values
List of user defined attributes.
std::string m_message
Issue's explanation text.
void add_qualifier(const std::string &qualif)
adds a qualifier to the issue
ers::Severity set_severity(ers::Severity severity) const
std::time_t time_t() const
seconds since 1 Jan 1970
std::vector< std::string > m_qualifiers
List of associated qualifiers.
Issue(const Context &context, const std::string &message=std::string())
const Issue * cause() const
return the cause Issue of this Issue
#define ERS_DECLARE_ISSUE(namespace_name, class_name, message_, attributes)
void tokenize(const std::string &text, const std::string &separators, std::vector< std::string > &tokens)
std::ostream & operator<<(std::ostream &, const ers::Configuration &)
static std::ostream & print(std::ostream &out, const Issue &issue, int verbosity)