12#include <pybind11/pybind11.h>
13#include <pybind11/stl.h>
18namespace py = pybind11;
25 py::class_<TriggerRecordHeader>(m,
"TriggerRecordHeader", pybind11::buffer_protocol())
26 .def(py::init<std::vector<ComponentRequest>
const&>())
27 .def(py::init([](py::capsule capsule,
bool copy_from_buffer) {
28 return std::make_unique<TriggerRecordHeader>(capsule.get_pointer(), copy_from_buffer);
30 .def(py::init<TriggerRecordHeader const&>())
53 .def(
"__getitem__", &TriggerRecordHeader::operator[], py::return_value_policy::reference_internal);
55 py::class_<TriggerRecordHeaderData>(m,
"TriggerRecordHeaderData")
56 .def_property_readonly_static(
"s_trigger_record_header_magic",
60 .def_property_readonly_static(
"s_trigger_record_header_version",
64 .def_property_readonly_static(
"s_invalid_number_components",
68 .def_property_readonly_static(
"s_default_status_bits",
72 .def_property_readonly(
"trigger_record_header_marker",
76 .def_property_readonly(
78 .def_property_readonly(
"trigger_number",
80 .def_property_readonly(
"trigger_timestamp",
82 .def_property_readonly(
"num_requested_components",
86 .def_property_readonly(
"run_number",
88 .def_property_readonly(
91 .def_property_readonly(
"trigger_type",
93 .def_property_readonly(
99 py::enum_<TriggerRecordStatusBits>(m,
"TriggerRecordStatusBits")
134 py::class_<TriggerRecord> py_trigger_record(m,
"TriggerRecord", pybind11::buffer_protocol());
135 py_trigger_record.def(py::init<TriggerRecordHeader const&>())
136 .def(py::init<std::vector<ComponentRequest>
const&>())
140 py::return_value_policy::reference_internal)
146 auto fragments = py::list();
147 for (
auto& fragment : self.get_fragments_ref()) {
148 auto py_fragment = py::cast(*fragment, py::return_value_policy::reference);
149 fragments.append(py_fragment);
153 py::return_value_policy::reference_internal)