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{
26 ObjectLocator(const std::string& id_arg, const std::string& class_name_arg)
27 : id(id_arg)
28 , class_name(class_name_arg)
29 {
30 }
31 const std::string id;
32 const std::string class_name;
33};
34
35std::vector<ObjectLocator>
37 const std::string& app_id,
38 const std::string& session_id)
39{
40 auto app = const_cast<conffwk::Configuration&>(confdb).get<appmodel::SmartDaqApplication>(app_id);
41 auto session = const_cast<conffwk::Configuration&>(confdb).get<confmodel::Session>(session_id);
42
43 auto helper = std::make_shared<ConfigurationHelper>(session);
44 app->generate_modules(helper);
45 std::vector<ObjectLocator> mods;
46 for (auto mod : app->get_modules()) {
47 mods.push_back({ mod->UID(), mod->class_name() });
48 }
49 return mods;
50}
51
52void
54{
55 py::class_<ObjectLocator>(m, "ObjectLocator")
56 .def(py::init<const std::string&, const std::string&>())
57 .def_readonly("id", &ObjectLocator::id)
58 .def_readonly("class_name", &ObjectLocator::class_name);
59
60 m.def("smart_daq_application_generate_modules", &smart_daq_application_generate_modules, "Generate DaqModules");
61}
62
63} // 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)