DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dal_methods.cpp
Go to the documentation of this file.
1
8
9#include "pybind11/operators.h"
10#include "pybind11/pybind11.h"
11#include "pybind11/stl.h"
12
14#include "confmodel/Session.hpp"
15
17
18#include <sstream>
19
20namespace py = pybind11;
21
23
25 ObjectLocator(const std::string& id_arg, const std::string& class_name_arg) :
26 id(id_arg), class_name(class_name_arg)
27 {}
28 const std::string id;
29 const std::string class_name;
30 };
31
32 std::vector<ObjectLocator>
33 smart_daq_application_generate_modules(const conffwk::Configuration& confdb, const std::string& app_id, const std::string& session_id)
34 {
35 auto app =
36 const_cast<conffwk::Configuration&>(confdb).get<appmodel::SmartDaqApplication>(app_id);
37 auto session =
38 const_cast<conffwk::Configuration&>(confdb).get<confmodel::Session>(session_id);
39
40 auto helper = std::make_shared<ConfigurationHelper>(session);
41 app->generate_modules(helper);
42 std::vector<ObjectLocator> mods;
43 for (auto mod : app->get_modules()) {
44 mods.push_back({mod->UID(),mod->class_name()});
45 }
46 return mods;
47 }
48
49
50void
52{
53 py::class_<ObjectLocator>(m, "ObjectLocator")
54 .def(py::init<const std::string&, const std::string&>())
55 .def_readonly("id", &ObjectLocator::id)
56 .def_readonly("class_name", &ObjectLocator::class_name)
57 ;
58
59 m.def("smart_daq_application_generate_modules", &smart_daq_application_generate_modules, "Generate DaqModules");
60}
61
62} // namespace dunedaq::appmodel::python
std::vector< ObjectLocator > smart_daq_application_generate_modules(const conffwk::Configuration &confdb, const std::string &app_id, const std::string &session_id)
void register_dal_methods(py::module &m)
ObjectLocator(const std::string &id_arg, const std::string &class_name_arg)