12#include <pybind11/pybind11.h>
13#include <pybind11/stl.h>
18namespace py = pybind11;
27 py::class_<TriggerRecordHeader>(m,
"TriggerRecordHeader", pybind11::buffer_protocol())
28 .def(py::init<std::vector<ComponentRequest>
const&>())
29 .def(py::init([](py::capsule capsule,
bool copy_from_buffer) {
30 return std::unique_ptr<TriggerRecordHeader>(
new TriggerRecordHeader(capsule.get_pointer(), copy_from_buffer));
32 .def(py::init<TriggerRecordHeader const&>())
55 .def(
"__getitem__", &TriggerRecordHeader::operator[], py::return_value_policy::reference_internal);
57 py::class_<TriggerRecordHeaderData>(m,
"TriggerRecordHeaderData")
58 .def_property_readonly_static(
"s_trigger_record_header_magic",
62 .def_property_readonly_static(
"s_trigger_record_header_version",
66 .def_property_readonly_static(
"s_invalid_number_components",
70 .def_property_readonly_static(
"s_default_error_bits",
74 .def_property_readonly(
"trigger_record_header_marker",
78 .def_property_readonly(
80 .def_property_readonly(
"trigger_number",
82 .def_property_readonly(
"trigger_timestamp",
84 .def_property_readonly(
"num_requested_components",
88 .def_property_readonly(
"run_number",
90 .def_property_readonly(
93 .def_property_readonly(
"trigger_type",
95 .def_property_readonly(
101 py::enum_<TriggerRecordErrorBits>(m,
"TriggerRecordErrorBits")
136 py::class_<TriggerRecord> py_trigger_record(m,
"TriggerRecord", pybind11::buffer_protocol());
137 py_trigger_record.def(py::init<TriggerRecordHeader const&>())
138 .def(py::init<std::vector<ComponentRequest>
const&>())
142 py::return_value_policy::reference_internal)
148 auto fragments = py::list();
149 for (
auto& fragment : self.get_fragments_ref()) {
150 auto py_fragment = py::cast(*fragment, py::return_value_policy::reference);
151 fragments.append(py_fragment);
155 py::return_value_policy::reference_internal)