DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
daqdataformats
include
daqdataformats
detail
SourceID.hxx
Go to the documentation of this file.
1
2
namespace
dunedaq::daqdataformats
{
3
4
static_assert
(std::is_trivially_copyable<SourceID>::value,
5
"SourceID isn't trivially copyable and can't be safely std::memcpy'd"
);
6
7
static_assert
(std::is_standard_layout<SourceID>::value,
8
"SourceID isn't standard layout; reinterpret_cast and offsetof can't safely be used with it"
);
9
10
static_assert
(
SourceID::s_source_id_version
== 2,
11
"This is intentionally designed to tell the developer to update the static_assert checks (including this "
12
"one) when the version is bumped"
);
13
static_assert
(
sizeof
(
SourceID
) == 8,
"SourceID struct size different than expected!"
);
14
static_assert
(offsetof(
SourceID
,
version
) == 0,
"SourceID version field not at expected offset"
);
15
static_assert
(offsetof(
SourceID
, subsystem) == 2,
"SourceID subsystem field not at expected offset"
);
16
static_assert
(offsetof(
SourceID
,
id
) == 4,
"SourceID id field not at expected offset"
);
17
18
inline
std::ostream&
19
operator<<
(std::ostream& o,
SourceID::Subsystem
const
&
type
)
20
{
21
return
o <<
SourceID::subsystem_to_string
(
type
);
22
}
23
24
inline
std::ostream&
25
operator<<
(std::ostream& o,
SourceID
const
& source_id)
26
{
27
return
o <<
"subsystem: "
<< source_id.
subsystem
<<
" id: "
<< source_id.
id
;
28
}
29
30
inline
std::istream&
31
operator>>
(std::istream& is,
SourceID::Subsystem
& t)
32
{
33
std::string tmp;
34
is >> tmp;
35
36
t =
SourceID::string_to_subsystem
(tmp);
37
38
return
is;
39
}
40
41
inline
std::istream&
42
operator>>
(std::istream& is,
SourceID
& source_id)
43
{
44
std::string tmp;
45
is >> tmp >> source_id.
subsystem
>> tmp >> source_id.
id
;
// Eat last three tokens, e.g. "-> (314, 159)"
46
47
return
is;
48
}
49
50
inline
bool
51
SourceID::operator!=
(
const
SourceID
& other)
const
noexcept
52
{
53
return
(*
this
) < other || other < (*this);
54
}
55
56
inline
bool
57
SourceID::operator==
(
const
SourceID
& other)
const
noexcept
58
{
59
return
!((*this) != other);
60
}
61
62
inline
std::string
63
SourceID::subsystem_to_string
(
const
Subsystem
&
type
)
64
{
65
switch
(
type
) {
66
case
Subsystem::kUnknown
:
67
return
"Unknown"
;
68
case
Subsystem::kDetectorReadout
:
69
return
"Detector_Readout"
;
70
case
Subsystem::kHwSignalsInterface
:
71
return
"HW_Signals_Interface"
;
72
case
Subsystem::kTrigger
:
73
return
"Trigger"
;
74
case
Subsystem::kTRBuilder
:
75
return
"TR_Builder"
;
76
}
77
return
"Unknown"
;
78
}
79
80
inline
SourceID::Subsystem
81
SourceID::string_to_subsystem
(
const
std::string& typestring)
82
{
83
if
(typestring ==
"Detector_Readout"
)
84
return
Subsystem::kDetectorReadout
;
85
if
(typestring ==
"HW_Signals_Interface"
)
86
return
Subsystem::kHwSignalsInterface
;
87
if
(typestring ==
"Trigger"
)
88
return
Subsystem::kTrigger
;
89
if
(typestring ==
"TR_Builder"
)
90
return
Subsystem::kTRBuilder
;
91
92
return
Subsystem::kUnknown
;
93
}
94
95
}
// namespace dunedaq::daqdataformats
version
version
Definition
TriggerActivity_serialization.hpp:50
type
type
Definition
TriggerActivity_serialization.hpp:48
dunedaq::daqdataformats
Definition
ComponentRequest.hpp:20
dunedaq::daqdataformats::operator>>
std::istream & operator>>(std::istream &is, SourceID::Subsystem &t)
Definition
SourceID.hxx:31
dunedaq::daqdataformats::operator<<
std::ostream & operator<<(std::ostream &o, ComponentRequest const &cr)
Definition
ComponentRequest.hxx:23
dunedaq::daqdataformats::SourceID
SourceID is a generalized representation of the source of a piece of data in the DAQ....
Definition
SourceID.hpp:32
dunedaq::daqdataformats::SourceID::s_source_id_version
static constexpr Version_t s_source_id_version
Definition
SourceID.hpp:49
dunedaq::daqdataformats::SourceID::subsystem
Subsystem subsystem
The general subsystem of the source of the data.
Definition
SourceID.hpp:56
dunedaq::daqdataformats::SourceID::SourceID
SourceID()=default
dunedaq::daqdataformats::SourceID::subsystem_to_string
static std::string subsystem_to_string(const Subsystem &type)
Definition
SourceID.hxx:63
dunedaq::daqdataformats::SourceID::string_to_subsystem
static Subsystem string_to_subsystem(const std::string &typestring)
Definition
SourceID.hxx:81
dunedaq::daqdataformats::SourceID::Subsystem
Subsystem
The Subsystem enum describes the kind of source we're dealing with.
Definition
SourceID.hpp:40
dunedaq::daqdataformats::SourceID::Subsystem::kTRBuilder
@ kTRBuilder
Definition
SourceID.hpp:45
dunedaq::daqdataformats::SourceID::Subsystem::kUnknown
@ kUnknown
Definition
SourceID.hpp:41
dunedaq::daqdataformats::SourceID::Subsystem::kHwSignalsInterface
@ kHwSignalsInterface
Definition
SourceID.hpp:43
dunedaq::daqdataformats::SourceID::Subsystem::kDetectorReadout
@ kDetectorReadout
Definition
SourceID.hpp:42
dunedaq::daqdataformats::SourceID::Subsystem::kTrigger
@ kTrigger
Definition
SourceID.hpp:44
dunedaq::daqdataformats::SourceID::id
ID_t id
Unique identifier of the source of the data.
Definition
SourceID.hpp:59
dunedaq::daqdataformats::SourceID::operator==
bool operator==(const SourceID &other) const noexcept
Definition
SourceID.hxx:57
dunedaq::daqdataformats::SourceID::operator!=
bool operator!=(const SourceID &other) const noexcept
Definition
SourceID.hxx:51
Generated on
for DUNE-DAQ by
1.17.0