26 py::class_<TriggerRecordHeader>(m,
"TriggerRecordHeader", pybind11::buffer_protocol())
27 .def(py::init<std::vector<ComponentRequest>
const&>())
28 .def(py::init([](py::capsule capsule,
bool copy_from_buffer) {
29 return std::make_unique<TriggerRecordHeader>(capsule.get_pointer(), copy_from_buffer);
31 .def(py::init<TriggerRecordHeader const&>())
54 .def(
"get_component_for_source_id",
56 py::return_value_policy::reference_internal)
60 py::class_<TriggerRecordHeaderData>(m,
"TriggerRecordHeaderData")
62 .def_property_readonly_static(
"s_trigger_record_header_magic",
63 [](
const py::object&) -> uint32_t {
66 .def_property_readonly_static(
"s_trigger_record_header_version",
67 [](
const py::object&) -> uint32_t {
70 .def_property_readonly_static(
"s_invalid_number_components",
71 [](
const py::object&) -> uint64_t {
74 .def_property_readonly_static(
"s_default_status_bits",
75 [](
const py::object&) -> uint32_t {
78 .def_property_readonly(
"trigger_record_header_marker",
82 .def_property_readonly(
84 .def_property_readonly(
"trigger_number",
86 .def_property_readonly(
"trigger_timestamp",
88 .def_property_readonly(
"num_requested_components",
92 .def_property_readonly(
"run_number",
94 .def_property_readonly(
97 .def_property_readonly(
"trigger_type",
99 .def_property_readonly(
101 .def_property_readonly(
102 "max_sequence_number",
104 .def_property_readonly(
"element_id",
108 std::ostringstream oss;
113 std::ostringstream oss;
114 oss <<
"<daqdataformats::TriggerRecordHeaderData " << hdr <<
">";
118 py::enum_<TriggerRecordStatusBits>(m,
"TriggerRecordStatusBits")
153 py::class_<TriggerRecord> py_trigger_record(m,
"TriggerRecord", pybind11::buffer_protocol());
154 py_trigger_record.def(py::init<TriggerRecordHeader const&>())
155 .def(py::init<std::vector<ComponentRequest>
const&>())
159 py::return_value_policy::reference_internal)
164 auto fragments = py::list();
165 for (
auto& fragment : self.get_fragments_ref()) {
166 auto py_fragment = py::cast(*fragment, py::return_value_policy::reference);
167 fragments.append(py_fragment);
171 py::return_value_policy::reference_internal)