DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
ers
src
Schema.cpp
Go to the documentation of this file.
1
#include <
ers/Schema.hpp
>
2
3
4
// converters with allocation
5
dunedaq::ersschema::Context
ers::to_schema
(
const
Context
& c ) {
6
7
dunedaq::ersschema::Context
out;
8
to_schema
( c, out);
9
return
out;
10
}
11
12
dunedaq::ersschema::SimpleIssue
ers::to_schema
(
const
Issue
& i ) {
13
14
dunedaq::ersschema::SimpleIssue
out;
15
to_schema
( i, out);
16
return
out;
17
}
18
19
20
dunedaq::ersschema::IssueChain
ers::to_schema_chain
(
const
Issue
& i) {
21
22
dunedaq::ersschema::IssueChain
out ;
23
to_schema
( i, out );
24
return
out;
25
}
26
27
void
ers::to_schema
(
const
Context
& c,
dunedaq::ersschema::Context
& out) {
28
29
out.set_cwd( c.cwd() );
30
out.set_file_name( c.file_name() );
31
out.set_function_name( c.function_name() );
32
out.set_host_name( c.host_name() );
33
out.set_line_number( c.line_number() );
34
out.set_package_name( c.package_name() );
35
36
out.set_process_id( c.process_id() );
37
out.set_thread_id( c.thread_id() );
38
out.set_user_id( c.user_id() );
39
out.set_user_name( c.user_name() );
40
out.set_application_name( c.application_name() );
41
42
}
43
44
45
void
ers::to_schema
(
const
Issue
& i,
dunedaq::ersschema::SimpleIssue
& out) {
46
47
auto
c =
to_schema
( i.
context
() ) ;
48
49
(*out.mutable_context())=c;
50
51
out.set_name( i.
get_class_name
() );
52
53
auto
inheritance = i.
get_class_inheritance
();
54
for
(
auto
& c : inheritance ) {
55
out.add_inheritance(c);
56
}
57
58
out.set_message( i.
message
() ) ;
59
out.set_severity(
ers::to_string
( i.
severity
() ) );
60
auto
time = std::chrono::duration_cast<std::chrono::nanoseconds>(i.
ptime
().time_since_epoch()).count();
61
out.set_time(time);
62
63
auto
& params = (* out.mutable_parameters());
64
for
(
auto
p : i.
parameters
() ) {
65
params[p.first] = p.second;
66
}
67
68
}
69
70
71
void
ers::to_schema
(
const
Issue
& i,
dunedaq::ersschema::IssueChain
& out) {
72
73
(* out.mutable_final()) =
to_schema
(i);
74
75
auto
cause_ptr = i.
cause
();
76
77
while
( cause_ptr ) {
78
auto
ptr = out.add_causes() ;
79
to_schema
( *cause_ptr, *ptr);
80
ptr -> set_severity(
ers::to_string
(i.
severity
()));
// severity is forced to be the same as the top issue
81
cause_ptr = cause_ptr -> cause();
82
}
83
84
}
85
dunedaq::ersschema::Context
Definition
issue.pb.h:89
dunedaq::ersschema::IssueChain
Definition
issue.pb.h:718
dunedaq::ersschema::SimpleIssue
Definition
issue.pb.h:437
ers::Context
An abstract interface to access an Issue context.
Definition
Context.hpp:41
ers::Issue
Base class for any user define issue.
Definition
Issue.hpp:80
ers::Issue::context
const Context & context() const
Context of the issue.
Definition
Issue.hpp:111
ers::Issue::severity
ers::Severity severity() const
severity of the issue
Definition
Issue.hpp:123
ers::Issue::get_class_name
virtual const char * get_class_name() const =0
Get key for class (used for serialisation).
ers::Issue::ptime
const system_clock::time_point & ptime() const
original time point of the issue
Definition
Issue.hpp:141
ers::Issue::message
const std::string & message() const
General cause of the issue.
Definition
Issue.hpp:114
ers::Issue::parameters
const string_map & parameters() const
return array of parameters
Definition
Issue.hpp:120
ers::Issue::get_class_inheritance
virtual inheritance_type get_class_inheritance() const =0
Get inheritance chain.
ers::Issue::cause
const Issue * cause() const
return the cause Issue of this Issue
Definition
Issue.hpp:108
Schema.hpp
ers::to_schema_chain
dunedaq::ersschema::IssueChain to_schema_chain(const Issue &i)
Definition
Schema.cpp:20
ers::to_string
std::string to_string(severity s)
ers::to_schema
dunedaq::ersschema::Context to_schema(const Context &c)
Definition
Schema.cpp:5
Generated on
for DUNE-DAQ by
1.17.0