4static_assert(std::is_trivially_copyable<SourceID>::value,
5 "SourceID isn't trivially copyable and can't be safely std::memcpy'd");
7static_assert(std::is_standard_layout<SourceID>::value,
8 "SourceID isn't standard layout; reinterpret_cast and offsetof can't safely be used with it");
11 "This is intentionally designed to tell the developer to update the static_assert checks (including this "
12 "one) when the version is bumped");
13static_assert(
sizeof(
SourceID) == 8,
"SourceID struct size different than expected!");
14static_assert(offsetof(
SourceID,
version) == 0,
"SourceID version field not at expected offset");
15static_assert(offsetof(
SourceID, subsystem) == 2,
"SourceID subsystem field not at expected offset");
16static_assert(offsetof(
SourceID,
id) == 4,
"SourceID id field not at expected offset");
27 return o <<
"subsystem: " << source_id.
subsystem <<
" id: " << source_id.
id;
45 is >> tmp >> source_id.
subsystem >> tmp >> source_id.
id;
53 return (*
this) < other || other < (*this);
59 return !((*this) != other);
69 return "Detector_Readout";
71 return "HW_Signals_Interface";
83 if (typestring ==
"Detector_Readout")
85 if (typestring ==
"HW_Signals_Interface")
87 if (typestring ==
"Trigger")
89 if (typestring ==
"TR_Builder")