DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dbe::ui::config::info Class Reference

#include <config_ui_info.hpp>

Public Member Functions

 info (std::vector< std::string > const &file)
GraphicalClass graphical (std::string const &) const
ViewConfiguration view (std::string const &) const
Window window (std::string const &) const
std::vector< Window > windows () const
std::vector< ViewConfiguration > views () const
std::vector< GraphicalClass > graphicals () const

Private Member Functions

void parse ()
void parse_graphical (std::shared_ptr< dunedaq::conffwk::Configuration >, dunedaq::conffwk::ConfigObject &)
void parse_window (std::shared_ptr< dunedaq::conffwk::Configuration >, dunedaq::conffwk::ConfigObject &)

Private Attributes

std::map< std::string, Window > this_windows
std::map< std::string, GraphicalClass > this_graphical
std::map< std::string, ViewConfiguration > this_views
std::vector< std::string > this_full_filenames

Detailed Description

Class used to read the current partition configuration in order to retrieve parameter for running the application and other necessary parameters

Definition at line 33 of file config_ui_info.hpp.

Constructor & Destructor Documentation

◆ info()

dbe::ui::config::info::info ( std::vector< std::string > const & file)

Definition at line 29 of file config_ui_info.cpp.

30 : this_full_filenames(full_file_name)
31{
32 parse();
33}
std::vector< std::string > this_full_filenames

Member Function Documentation

◆ graphical()

dbe::GraphicalClass dbe::ui::config::info::graphical ( std::string const & name) const

Definition at line 36 of file config_ui_info.cpp.

37{
38 std::map<std::string, GraphicalClass>::const_iterator it = this_graphical.find(name);
39
40 if (it != this_graphical.end()) {
41 return it->second;
42 } else {
43 return {};
44 }
45}
std::map< std::string, GraphicalClass > this_graphical

◆ graphicals()

std::vector< dbe::GraphicalClass > dbe::ui::config::info::graphicals ( ) const

Definition at line 287 of file config_ui_info.cpp.

288{
289 std::vector<dbe::GraphicalClass> the_graphicals;
290
291 for (auto const& x : this_graphical) {
292 the_graphicals.push_back(x.second);
293 }
294
295 return the_graphicals;
296}

◆ parse()

void dbe::ui::config::info::parse ( )
private

Definition at line 72 of file config_ui_info.cpp.

73{
74 for (std::string const& fname : this_full_filenames) {
75 std::string Implementation = "oksconflibs:" + fname;
76
77 try {
78 std::shared_ptr<Configuration> ConfigFile(new Configuration(Implementation));
79 std::vector<ConfigObject> objects;
80
81 ConfigFile->get("Class", objects);
82
83 for (ConfigObject& aclass : objects) {
84 parse_graphical(ConfigFile, aclass);
85 }
86
87 objects.clear();
88 ConfigFile->get("Window", objects);
89
90 for (ConfigObject& awindow : objects) {
91 parse_window(ConfigFile, awindow);
92 }
93 } catch (dunedaq::conffwk::Exception const& ex) {
94 ERROR("Configuration database load did not succeed", dbe::config::errors::parse(ex).c_str());
95 }
96 }
97}
void parse_graphical(std::shared_ptr< dunedaq::conffwk::Configuration >, dunedaq::conffwk::ConfigObject &)
void parse_window(std::shared_ptr< dunedaq::conffwk::Configuration >, dunedaq::conffwk::ConfigObject &)
#define ERROR(...)
Definition messenger.hpp:90
std::string const parse(ers::Issue const &)

◆ parse_graphical()

void dbe::ui::config::info::parse_graphical ( std::shared_ptr< dunedaq::conffwk::Configuration > ConfigFile,
dunedaq::conffwk::ConfigObject & Object )
private

Definition at line 100 of file config_ui_info.cpp.

101{
102 GraphicalClass GraphicalClassObject;
103
104 GraphicalClassObject.GraphicalUID = QString(Object.UID().c_str());
105 dunedaq::conffwk::class_t cinfo = ConfigFile->get_class_info(Object.class_name(), false);
106
107 std::vector<dunedaq::conffwk::attribute_t> const& attributes = cinfo.p_attributes;
108 std::vector<dunedaq::conffwk::relationship_t> const& relations = cinfo.p_relationships;
109
110 for (dunedaq::conffwk::attribute_t const& attr : attributes) {
112
113 if (attr.p_name == "Name") {
114 GraphicalClassObject.DatabaseClassName = data.at(0);
115 } else if (attr.p_name == "Generic Pixmap File") {
116 GraphicalClassObject.GenericPixmapFile = data.at(0);
117 } else if (attr.p_name == "Used Pixmap File") {
118 GraphicalClassObject.UsedPixmapFile = data.at(0);
119 } else if (attr.p_name == "Icon Bitmap File") {
120 GraphicalClassObject.BitmapFile = data.at(0);
121 } else if (attr.p_name == "Icon Mask Bitmap File") {
122 GraphicalClassObject.BitmapMaskFile = data.at(0);
123 } else if (attr.p_name == "Show All Attributes") {
124 GraphicalClassObject.ShowAllAttributes = convert::to<bool>(data, attr.p_int_format);
125 } else if (attr.p_name == "Attributes") {
126 GraphicalClassObject.Attributes = data;
127 } else if (attr.p_name == "Show All Relationships") {
128 GraphicalClassObject.ShowAllRelationships = convert::to<bool>(data, attr.p_int_format);
129 } else if (attr.p_name == "Relationships") {
130 GraphicalClassObject.Relationships = data;
131
132 } else if (attr.p_name == "Icon Title") {
133 GraphicalClassObject.IconTitle = data.at(0);
134 }
135 }
136
137 for (dunedaq::conffwk::relationship_t const& relation : relations) {
138 QStringList data;
139 std::vector<ConfigObject> neighboring{};
140
142 neighboring.push_back(dbe::config::api::graph::direct::linked<ConfigObject>(Object, relation));
143 } else {
144 std::vector<ConfigObject> objects =
146 neighboring.insert(std::end(neighboring), std::begin(objects), std::end(objects));
147 }
148
149 for (ConfigObject& RelObject : neighboring) {
150 dunedaq::conffwk::class_t RelClassInfo = ConfigFile->get_class_info(RelObject.class_name(), false);
151 std::vector<dunedaq::conffwk::attribute_t> AttributeRelList = RelClassInfo.p_attributes;
152
153 if (RelObject.class_name() == "Dual Relationship") {
154 DualRelationship DRel;
155
156 for (dunedaq::conffwk::attribute_t& Attribute : AttributeRelList) {
158
159 if (Attribute.p_name == "Direct") {
160 DRel.Direct = data.at(0);
161 } else if (Attribute.p_name == "Reverse") {
162 DRel.Reverse = data.at(0);
163 }
164 }
165
166 GraphicalClassObject.DualRelationships.push_back(DRel);
167 } else if (RelObject.class_name() == "Init Attribute Value") {
168 InitAttributeFromEnv IRel;
169
170 for (dunedaq::conffwk::attribute_t& Attribute : AttributeRelList) {
172
173 if (Attribute.p_name == "Attribute Name") {
174 IRel.AttributeName = data.at(0);
175 } else if (Attribute.p_name == "Environment Variables") {
176 IRel.EnvNames = data;
177 }
178 }
179
180 GraphicalClassObject.NeedToInitialize.push_back(IRel);
181 }
182 }
183 }
184
185 this_graphical.emplace(GraphicalClassObject.GraphicalUID.toStdString(), GraphicalClassObject);
186}
friend class dbe::config::api::get::attribute
static T linked(dunedaq::conffwk::ConfigObject &item, dunedaq::conffwk::relationship_t const &relation)
const std::string & UID() const noexcept
Return object identity.
const std::string & class_name() const noexcept
Return object's class name.
std::vector< T > attributes(tref const &item)
T relation(tref item, dunedaq::conffwk::relationship_t const &relation)
std::vector< T > relations(tref const &item)
bool is_simple(dunedaq::conffwk::relationship_t const &)
bool to< bool >(QStringList const &DataList, dunedaq::conffwk::int_format_t Format)
const std::vector< attribute_t > p_attributes
Definition Schema.hpp:161
const std::vector< relationship_t > p_relationships
Definition Schema.hpp:162

◆ parse_window()

void dbe::ui::config::info::parse_window ( std::shared_ptr< dunedaq::conffwk::Configuration > database,
dunedaq::conffwk::ConfigObject & object )
private

Definition at line 189 of file config_ui_info.cpp.

190{
191 Window WindowObject;
192 dunedaq::conffwk::class_t ClassInfo = database->get_class_info(object.class_name(), false);
193 std::vector<dunedaq::conffwk::attribute_t> const& attributes = ClassInfo.p_attributes;
194 std::vector<dunedaq::conffwk::relationship_t> const& relations = ClassInfo.p_relationships;
195
196 for (dunedaq::conffwk::attribute_t const& attribute : attributes) {
197 if (attribute.p_name == "Title") {
198 WindowObject.Title = dbe::config::api::get::direct::attribute<QStringList>(object, attribute).at(0);
199 }
200 }
201
202 for (dunedaq::conffwk::relationship_t const& relation : relations) {
203 std::vector<ConfigObject> linkedobjects;
204
206 linkedobjects.push_back(dbe::config::api::graph::direct::linked<ConfigObject>(object, relation));
207 } else {
208 std::vector<ConfigObject> voisins =
210
211 if (not voisins.empty()) {
212 linkedobjects.insert(std::end(linkedobjects), std::begin(voisins), std::end(voisins));
213 }
214 }
215
216 for (ConfigObject& neighbor : linkedobjects) {
217 dunedaq::conffwk::class_t classinfo = database->get_class_info(neighbor.class_name(), false);
218 std::vector<dunedaq::conffwk::attribute_t> const& AttributeRelList = classinfo.p_attributes;
219 std::vector<dunedaq::conffwk::relationship_t> const& RelationshipRelList = classinfo.p_relationships;
220
221 if (neighbor.class_name() != "Window Separator") {
222 for (dunedaq::conffwk::attribute_t const& Attribute : AttributeRelList) {
223 if (Attribute.p_name == "Shown with children") {
224 QStringList neighbor_names{ dbe::config::api::get::direct::attribute<QStringList>(neighbor, Attribute) };
225
226 if (neighbor_names.at(0) != "none") {
227 WindowObject.ShowChildren = true;
228 } else {
229 WindowObject.ShowChildren = false;
230 }
231 }
232 }
233
234 for (dunedaq::conffwk::relationship_t const& RelationshipRel : RelationshipRelList) {
235 QStringList RelDataList;
236 std::vector<ConfigObject> neighboring_nodes;
237
238 if (dbe::config::api::info::relation::is_simple(RelationshipRel)) {
239 neighboring_nodes.push_back(
241 } else {
242
243 std::vector<ConfigObject> neighbors =
245
246 neighboring_nodes.insert(std::end(neighboring_nodes), std::begin(neighbors), std::end(neighbors));
247 }
248
249 for (ConfigObject& RelDataObject : neighboring_nodes) {
250 RelDataList.push_back(QString(RelDataObject.UID().c_str()));
251 }
252
253 WindowObject.GraphicalClassesList.push_back(RelDataList.at(0));
254 }
255 }
256 }
257 }
258
259 this_windows.emplace(WindowObject.Title.toStdString(), WindowObject);
260}
std::map< std::string, Window > this_windows
Changes could not be no object was Database change was not no object was not An invalid qmodel index has been Config layer returned null reference for object
T attribute(tref item, dunedaq::conffwk::attribute_t const &attr)

◆ view()

dbe::ViewConfiguration dbe::ui::config::info::view ( std::string const & name) const

Definition at line 48 of file config_ui_info.cpp.

49{
50 std::map<std::string, ViewConfiguration>::const_iterator it = this_views.find(name);
51
52 if (it != this_views.end()) {
53 return it->second;
54 } else {
55 return {};
56 }
57}
std::map< std::string, ViewConfiguration > this_views

◆ views()

std::vector< dbe::ViewConfiguration > dbe::ui::config::info::views ( ) const

Definition at line 275 of file config_ui_info.cpp.

276{
277 std::vector<dbe::ViewConfiguration> views;
278
279 for (auto const& x : this_views) {
280 views.push_back(x.second);
281 }
282
283 return views;
284}
std::vector< ViewConfiguration > views() const

◆ window()

dbe::Window dbe::ui::config::info::window ( std::string const & name) const

Definition at line 60 of file config_ui_info.cpp.

61{
62 std::map<std::string, Window>::const_iterator it = this_windows.find(name);
63
64 if (it != this_windows.end()) {
65 return it->second;
66 } else {
67 return {};
68 }
69}

◆ windows()

std::vector< dbe::Window > dbe::ui::config::info::windows ( ) const

Definition at line 263 of file config_ui_info.cpp.

264{
265 std::vector<dbe::Window> windows;
266
267 for (auto const& x : this_windows) {
268 windows.push_back(x.second);
269 }
270
271 return windows;
272}
std::vector< Window > windows() const

Member Data Documentation

◆ this_full_filenames

std::vector<std::string> dbe::ui::config::info::this_full_filenames
private

Definition at line 55 of file config_ui_info.hpp.

◆ this_graphical

std::map<std::string, GraphicalClass> dbe::ui::config::info::this_graphical
private

Definition at line 52 of file config_ui_info.hpp.

◆ this_views

std::map<std::string, ViewConfiguration> dbe::ui::config::info::this_views
private

Definition at line 53 of file config_ui_info.hpp.

◆ this_windows

std::map<std::string, Window> dbe::ui::config::info::this_windows
private

Definition at line 51 of file config_ui_info.hpp.


The documentation for this class was generated from the following files: