DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::confmodel::python Namespace Reference

Classes

struct  ObjectLocator
 

Functions

std::vector< ObjectLocatorsession_get_all_applications (const Configuration &db, const std::string &session_name)
 
std::vector< ObjectLocatorsession_get_enabled_applications (const Configuration &db, const std::string &session_name)
 
void session_set_disabled (const Configuration &db, const std::string &session_name, const std::vector< std::string > &comps)
 
bool component_disabled (const Configuration &db, const std::string &session_id, const std::string &component_id)
 
std::vector< std::vector< ObjectLocator > > component_get_parents (const Configuration &db, const std::string &session_id, const std::string &component_id)
 
std::vector< std::string > daq_application_get_used_hostresources (const Configuration &db, const std::string &app_id)
 
std::vector< std::string > daq_application_construct_commandline_parameters (const Configuration &db, const std::string &session_id, const std::string &app_id)
 
std::vector< std::string > rc_application_construct_commandline_parameters (const Configuration &db, const std::string &session_id, const std::string &app_id)
 
void register_dal_methods (py::module &m)
 
 PYBIND11_MODULE (_daq_confmodel_py, m)
 

Function Documentation

◆ component_disabled()

bool dunedaq::confmodel::python::component_disabled ( const Configuration & db,
const std::string & session_id,
const std::string & component_id )

Definition at line 71 of file dal_methods.cpp.

71 {
72 try {
73 ConfigObject object;
74 const_cast<Configuration&>(db).get("Component", component_id, object);
75 }
76 catch (conffwk::NotFound& except) {
77 return false;
78 }
79 const dunedaq::confmodel::Component* component_ptr = const_cast<Configuration&>(db).get<dunedaq::confmodel::Component>(component_id);
80 const dunedaq::confmodel::Session* session_ptr = const_cast<Configuration&>(db).get<dunedaq::confmodel::Session>(session_id);
81
82 return component_ptr->disabled(*session_ptr);
83 }
Represents database objects.
Defines base class for cache of template objects.
bool disabled(const dunedaq::confmodel::Session &session) const

◆ component_get_parents()

std::vector< std::vector< ObjectLocator > > dunedaq::confmodel::python::component_get_parents ( const Configuration & db,
const std::string & session_id,
const std::string & component_id )

Definition at line 86 of file dal_methods.cpp.

88 {
89 const dunedaq::confmodel::Component* component_ptr = const_cast<Configuration&>(db).get<dunedaq::confmodel::Component>(component_id);
90 const dunedaq::confmodel::Session* session_ptr = const_cast<Configuration&>(db).get<dunedaq::confmodel::Session>(session_id);
91
92 std::list<std::vector<const dunedaq::confmodel::Component*>> parents;
93 std::vector<std::vector<ObjectLocator>> parent_ids;
94
95 component_ptr->get_parents(*session_ptr, parents);
96
97 for (const auto& parent : parents) {
98 std::vector<ObjectLocator> parents_components;
99 for (const auto& ancestor_component_ptr : parent) {
100 parents_components.emplace_back(
101 ObjectLocator(ancestor_component_ptr->UID(),
102 ancestor_component_ptr->class_name()) );
103 }
104 parent_ids.emplace_back(parents_components);
105 }
106 return parent_ids;
107 }
void get_parents(const dunedaq::confmodel::Session &session, std::list< std::vector< const dunedaq::confmodel::Component * > > &parents) const

◆ daq_application_construct_commandline_parameters()

std::vector< std::string > dunedaq::confmodel::python::daq_application_construct_commandline_parameters ( const Configuration & db,
const std::string & session_id,
const std::string & app_id )

Definition at line 118 of file dal_methods.cpp.

120 {
121 const auto* app = const_cast<Configuration&>(db).get<dunedaq::confmodel::DaqApplication>(app_id);
122 const auto* session = const_cast<Configuration&>(db).get<dunedaq::confmodel::Session>(session_id);
123 return app->construct_commandline_parameters(db, session);
124 }

◆ daq_application_get_used_hostresources()

std::vector< std::string > dunedaq::confmodel::python::daq_application_get_used_hostresources ( const Configuration & db,
const std::string & app_id )

Definition at line 109 of file dal_methods.cpp.

109 {
110 auto app = const_cast<Configuration&>(db).get<dunedaq::confmodel::DaqApplication>(app_id);
111 std::vector<std::string> resources;
112 for (auto res : app->get_used_hostresources()) {
113 resources.push_back(res->UID());
114 }
115 return resources;
116 }

◆ PYBIND11_MODULE()

dunedaq::confmodel::python::PYBIND11_MODULE ( _daq_confmodel_py ,
m  )

Definition at line 22 of file module.cpp.

23{
24
25 m.doc() = "C++ implementation of the confmodel modules";
26#if 0
27 py::class_<dunedaq::confmodel::DaqApplication>(m,"DaqApplication")
28 .def(py::init<conffwk::Configuration& , const conffwk::ConfigObject&>())
30 py::class_<dunedaq::confmodel::HostComponent>(m,"HostComponent");
31#endif
33}
std::set< const dunedaq::confmodel::HostComponent * > get_used_hostresources() const
void register_dal_methods(py::module &m)

◆ rc_application_construct_commandline_parameters()

std::vector< std::string > dunedaq::confmodel::python::rc_application_construct_commandline_parameters ( const Configuration & db,
const std::string & session_id,
const std::string & app_id )

Definition at line 126 of file dal_methods.cpp.

128 {
129 const auto* app = const_cast<Configuration&>(db).get<dunedaq::confmodel::RCApplication>(app_id);
130 const auto* session = const_cast<Configuration&>(db).get<dunedaq::confmodel::Session>(session_id);
131 return app->construct_commandline_parameters(db, session);
132 }

◆ register_dal_methods()

void dunedaq::confmodel::python::register_dal_methods ( py::module & m)

Definition at line 134 of file dal_methods.cpp.

135{
136 py::class_<ObjectLocator>(m, "ObjectLocator")
137 .def(py::init<const std::string&, const std::string&>())
138 .def_readonly("id", &ObjectLocator::id)
139 .def_readonly("class_name", &ObjectLocator::class_name)
140 ;
141
142 m.def("session_get_all_applications", &session_get_all_applications, "Get list of ALL applications (regardless of enabled/disabled state) in the requested session");
143 m.def("session_get_enabled_applications", &session_get_enabled_applications, "Get list of enabled applications in the requested session");
144 m.def("session_set_disabled", &session_set_disabled, "Temporarily disable Components in the requested session");
145
146 m.def("component_disabled", &component_disabled, "Determine if a Component-derived object (e.g. a Segment) has been disabled");
147 m.def("component_get_parents", &component_get_parents, "Get the Component-derived class instances of the parent(s) of the Component-derived object in question");
148 m.def("daqapp_get_used_resources", &daq_application_get_used_hostresources, "Get list of HostResources used by DAQApplication");
149 m.def("daq_application_construct_commandline_parameters", &daq_application_construct_commandline_parameters, "Get a version of the command line agruments parsed");
150 m.def("rc_application_construct_commandline_parameters", &rc_application_construct_commandline_parameters, "Get a version of the command line agruments parsed");
151}

◆ session_get_all_applications()

std::vector< ObjectLocator > dunedaq::confmodel::python::session_get_all_applications ( const Configuration & db,
const std::string & session_name )

Definition at line 37 of file dal_methods.cpp.

38 {
39 auto session=const_cast<Configuration&>(db).get<Session>(session_name);
40 std::vector<ObjectLocator> apps;
41 for (auto app : session->get_all_applications()) {
42 apps.push_back({app->UID(),app->class_name()});
43 }
44 return apps;
45 }

◆ session_get_enabled_applications()

std::vector< ObjectLocator > dunedaq::confmodel::python::session_get_enabled_applications ( const Configuration & db,
const std::string & session_name )

Definition at line 48 of file dal_methods.cpp.

49 {
50 auto session=const_cast<Configuration&>(db).get<Session>(session_name);
51 std::vector<ObjectLocator> apps;
52 for (auto app : session->get_enabled_applications()) {
53 apps.push_back({app->UID(),app->class_name()});
54 }
55 return apps;
56 }

◆ session_set_disabled()

void dunedaq::confmodel::python::session_set_disabled ( const Configuration & db,
const std::string & session_name,
const std::vector< std::string > & comps )

Definition at line 59 of file dal_methods.cpp.

61 {
62 auto session=const_cast<Configuration&>(db).get<Session>(session_name);
63 std::set<const Component*> objs;
64 for (auto comp: comps) {
65 auto obj=const_cast<Configuration&>(db).get<Component>(comp);
66 objs.insert(obj);
67 }
68 session->set_disabled(objs);
69 }