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 (Configuration &db, const std::string &session_name)
 
std::vector< ObjectLocatorsession_get_enabled_applications (Configuration &db, const std::string &session_name)
 
void disable_component (Configuration &db, const std::string &session_id, const std::string &component_id)
 
void enable_component (Configuration &db, const std::string &session_id, const std::string &component_id)
 
bool component_disabled (Configuration &db, const std::string &session_id, const std::string &component_id)
 
std::vector< std::vector< ObjectLocator > > component_get_parents (Configuration &db, const std::string &session_id, const std::string &component_id)
 
std::vector< std::string > daq_application_get_used_hostresources (Configuration &db, const std::string &app_id)
 
std::vector< std::string > daq_application_construct_commandline_parameters (Configuration &db, const std::string &session_id, const std::string &app_id)
 
std::vector< std::string > rc_application_construct_commandline_parameters (Configuration &db, const std::string &session_id, const std::string &app_id)
 
std::string d2d_receiver (Configuration &db, const std::string &d2d_id)
 
std::vector< std::string > d2d_senders (Configuration &db, const std::string &d2d_id)
 
std::vector< std::string > d2d_streams (Configuration &db, const std::string &d2d_id)
 
std::vector< std::string > resourceset_contains (Configuration &db, const std::string &res_id)
 
void register_dal_methods (py::module &m)
 
 PYBIND11_MODULE (_daq_confmodel_dal_py, m)
 

Function Documentation

◆ component_disabled()

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

Definition at line 91 of file dal_methods.cpp.

93 {
94 const dunedaq::confmodel::Session* session_ptr = db.get<dunedaq::confmodel::Session>(session_id);
95 const dunedaq::confmodel::Resource* component_ptr = db.get<dunedaq::confmodel::Resource>(component_id);
96 if (component_ptr == nullptr) {
97 return false;
98 }
99 return component_ptr->is_disabled(*session_ptr);
100 }
void get(const std::string &class_name, const std::string &id, ConfigObject &object, unsigned long rlevel=0, const std::vector< std::string > *rclasses=0)
Get object by class name and object id (multi-thread safe).
bool is_disabled(const dunedaq::confmodel::ResourceTree &session) const

◆ component_get_parents()

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

Definition at line 103 of file dal_methods.cpp.

105 {
106 const dunedaq::confmodel::Session* session_ptr = db.get<dunedaq::confmodel::Session>(session_id);
107 const dunedaq::confmodel::Resource* component_ptr = db.get<dunedaq::confmodel::Resource>(component_id);
108
109 std::list<std::vector<const dunedaq::confmodel::Resource*>> parents;
110 std::vector<std::vector<ObjectLocator>> parent_ids;
111
112 component_ptr->parents(*session_ptr, parents);
113
114 for (const auto& parent : parents) {
115 std::vector<ObjectLocator> parents_components;
116 for (const auto& ancestor_component_ptr : parent) {
117 parents_components.emplace_back(
118 ObjectLocator(ancestor_component_ptr->UID(),
119 ancestor_component_ptr->class_name()) );
120 }
121 parent_ids.emplace_back(parents_components);
122 }
123 return parent_ids;
124 }
void parents(const dunedaq::confmodel::Session &session, std::list< std::vector< const dunedaq::confmodel::Resource * > > &parents) const

◆ d2d_receiver()

std::string dunedaq::confmodel::python::d2d_receiver ( Configuration & db,
const std::string & d2d_id )

Definition at line 152 of file dal_methods.cpp.

153 {
154 const auto* d2d = db.get<dunedaq::confmodel::DetectorToDaqConnection>(d2d_id);
155 if (d2d == nullptr) {
156 return "";
157 }
158 return d2d->receiver()->UID();
159 }
const std::string & UID() const noexcept
virtual const DetDataReceiver * receiver() const =0

◆ d2d_senders()

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

Definition at line 161 of file dal_methods.cpp.

162 {
163 std::vector<std::string> senders;
164 const auto* d2d = db.get<dunedaq::confmodel::DetectorToDaqConnection>(d2d_id);
165 if (d2d != nullptr) {
166 for (auto sender: d2d->senders()) {
167 senders.push_back(sender->UID());
168 }
169 }
170 return senders;
171 }

◆ d2d_streams()

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

Definition at line 173 of file dal_methods.cpp.

174 {
175 std::vector<std::string> streams;
176 const auto* d2d = db.get<dunedaq::confmodel::DetectorToDaqConnection>(d2d_id);
177 if (d2d != nullptr) {
178 for (auto stream: d2d->streams()) {
179 streams.push_back(stream->UID());
180 }
181 }
182 return streams;
183 }

◆ daq_application_construct_commandline_parameters()

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

Definition at line 135 of file dal_methods.cpp.

137 {
138 const auto* app = db.get<dunedaq::confmodel::DaqApplication>(app_id);
139 const auto* session = db.get<dunedaq::confmodel::Session>(session_id);
140 return app->construct_commandline_parameters(db, session);
141 }

◆ daq_application_get_used_hostresources()

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

Definition at line 126 of file dal_methods.cpp.

126 {
127 auto app = db.get<dunedaq::confmodel::DaqApplication>(app_id);
128 std::vector<std::string> resources;
129 for (auto res : app->get_used_hostresources()) {
130 resources.push_back(res->UID());
131 }
132 return resources;
133 }

◆ disable_component()

void dunedaq::confmodel::python::disable_component ( Configuration & db,
const std::string & session_id,
const std::string & component_id )

Definition at line 63 of file dal_methods.cpp.

65 {
66 auto session_ptr = const_cast<dunedaq::confmodel::Session*>(db.get<dunedaq::confmodel::Session>(session_id));
67 auto component_ptr = db.get<dunedaq::confmodel::Resource>(component_id);
68 if (session_ptr == nullptr) {
69 throw (std::runtime_error(std::format("Session {} not found", session_id)));
70 }
71 if (component_ptr == nullptr) {
72 throw (std::runtime_error(std::format("Component {} not found", component_id)));
73 }
74 session_ptr->disable(component_ptr);
75 }

◆ enable_component()

void dunedaq::confmodel::python::enable_component ( Configuration & db,
const std::string & session_id,
const std::string & component_id )

Definition at line 76 of file dal_methods.cpp.

78 {
79 auto session_ptr = const_cast<dunedaq::confmodel::Session*>(db.get<dunedaq::confmodel::Session>(session_id));
80 auto component_ptr = db.get<dunedaq::confmodel::Resource>(component_id);
81 if (session_ptr == nullptr) {
82 throw (std::runtime_error(std::format("Session {} not found", session_id)));
83 }
84 if (component_ptr == nullptr) {
85 throw (std::runtime_error(std::format("Component {} not found", component_id)));
86 }
87 session_ptr->enable(component_ptr);
88 }

◆ PYBIND11_MODULE()

dunedaq::confmodel::python::PYBIND11_MODULE ( _daq_confmodel_dal_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 ( Configuration & db,
const std::string & session_id,
const std::string & app_id )

Definition at line 143 of file dal_methods.cpp.

145 {
146 const auto* app = db.get<dunedaq::confmodel::RCApplication>(app_id);
147 const auto* session = db.get<dunedaq::confmodel::Session>(session_id);
148 return app->construct_commandline_parameters(db, session);
149 }

◆ register_dal_methods()

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

Definition at line 200 of file dal_methods.cpp.

201{
202 py::class_<ObjectLocator>(m, "ObjectLocator")
203 .def(py::init<const std::string&, const std::string&>())
204 .def_readonly("id", &ObjectLocator::id)
205 .def_readonly("class_name", &ObjectLocator::class_name)
206 ;
207
208 m.def("session_get_all_applications", &session_get_all_applications, "Get list of ALL applications (regardless of enabled/disabled state) in the requested session");
209 m.def("session_get_enabled_applications", &session_get_enabled_applications, "Get list of enabled applications in the requested session");
210
211 m.def("disable_component", &disable_component, "Disable a Resource-derived object (e.g. a Segment)");
212 m.def("enable_component", &enable_component, "Enable a Resource-derived object (e.g. a Segment)");
213
214 m.def("component_disabled", &component_disabled, "Determine if a Resource-derived object (e.g. a Segment) has been disabled");
215 m.def("component_get_parents", &component_get_parents, "Get the Resource-derived class instances of the parent(s) of the Resource-derived object in question");
216 m.def("daqapp_get_used_resources", &daq_application_get_used_hostresources, "Get list of HostResources used by DAQApplication");
217 m.def("daq_application_construct_commandline_parameters", &daq_application_construct_commandline_parameters, "Get a version of the command line agruments parsed");
218 m.def("rc_application_construct_commandline_parameters", &rc_application_construct_commandline_parameters, "Get a version of the command line agruments parsed");
219
220 m.def("d2d_receiver", &d2d_receiver, "Get receiver associated with DetectorToDaqConnection");
221 m.def("d2d_senders", &d2d_senders, "Get senders associated with DetectorToDaqConnection");
222 m.def("d2d_streams", &d2d_streams, "Get streams associated with DetectorToDaqConnection");
223 m.def("resourceset_contains", &resourceset_contains, "Get contained Resources from ResourceSet");
224}

◆ resourceset_contains()

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

Definition at line 186 of file dal_methods.cpp.

187 {
188 std::vector<std::string> resources;
189 auto res_set = db.get<dunedaq::confmodel::ResourceSet>(res_id);
190 if (res_set != nullptr) {
191 for (auto res: res_set->contained_resources()) {
192 resources.push_back(res->UID());
193 }
194 }
195 return resources;
196 }

◆ session_get_all_applications()

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

Definition at line 41 of file dal_methods.cpp.

42 {
43 auto session=db.get<Session>(session_name);
44 std::vector<ObjectLocator> apps;
45 for (auto app : session->all_applications()) {
46 apps.push_back({app->UID(),app->class_name()});
47 }
48 return apps;
49 }

◆ session_get_enabled_applications()

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

Definition at line 52 of file dal_methods.cpp.

53 {
54 auto session=db.get<Session>(session_name);
55 std::vector<ObjectLocator> apps;
56 for (auto app : session->enabled_applications()) {
57 apps.push_back({app->UID(),app->class_name()});
58 }
59 return apps;
60 }