DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dal_methods.cpp
Go to the documentation of this file.
1
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 app->generate_modules(session);
41 std::vector<ObjectLocator> mods;
42 for (auto mod : app->get_modules()) {
43 mods.push_back({mod->UID(),mod->class_name()});
44 }
45 return mods;
46 }
47
49 const std::string& session_id,
50 const std::string& app_id) {
51 const auto* app = const_cast<conffwk::Configuration&>(db).get<dunedaq::appmodel::SmartDaqApplication>(app_id);
52 const auto* session = const_cast<conffwk::Configuration&>(db).get<dunedaq::confmodel::Session>(session_id);
53 return app->construct_commandline_parameters(db, session);
54 }
55
56void
58{
59 py::class_<ObjectLocator>(m, "ObjectLocator")
60 .def(py::init<const std::string&, const std::string&>())
61 .def_readonly("id", &ObjectLocator::id)
62 .def_readonly("class_name", &ObjectLocator::class_name)
63 ;
64
65 m.def("smart_daq_application_generate_modules", &smart_daq_application_generate_modules, "Generate DaqModules");
66 m.def("smart_daq_application_construct_commandline_parameters", &smart_daq_application_construct_commandline_parameters, "Get a version of the command line agruments parsed");
67}
68
69} // 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)
std::vector< std::string > smart_daq_application_construct_commandline_parameters(const conffwk::Configuration &db, const std::string &session_id, const std::string &app_id)
ObjectLocator(const std::string &id_arg, const std::string &class_name_arg)