MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / MakeUnit

Function MakeUnit

lib/mdflib/mdflib/src/md4block.cpp:117–158  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

115}
116
117void MakeUnit(const mdf::IXmlNode &unit, mdf::detail::BlockPropertyList &dest) {
118 mdf::IXmlNode::ChildList list;
119 unit.GetChildList(list);
120
121 std::ostringstream desc;
122 std::string name;
123 std::string display_name;
124 std::string ref;
125 for (const auto &c : list) {
126 if (c->IsTagName("SHORT_NAME")) {
127 name = c->Value<std::string>();
128 } else if (c->IsTagName("DISPLAY-NAME")) {
129 display_name = c->Value<std::string>();
130 } else if (c->IsTagName("PHYSICAL-DIMENSION-REF")) {
131 ref = c->Attribute<std::string>("ID");
132 } else if (c->IsTagName("DESC")) {
133 const auto lang = c->Attribute<std::string>("xml:lang");
134 const auto d = c->Value<std::string>();
135 if (lang.empty()) {
136 if (desc.str().empty()) {
137 desc << d;
138 } else {
139 desc << ", " << d;
140 }
141 } else {
142 if (desc.str().empty()) {
143 desc << lang << ":" << d;
144 } else {
145 desc << ", " << lang << ":" << d;
146 }
147 }
148 }
149 }
150 std::ostringstream d;
151 d << "Ref: " << ref;
152
153 if (!desc.str().empty()) {
154 d << ", " << desc.str();
155 }
156
157 dest.emplace_back(name, display_name, d.str());
158}
159
160void MakeUnitList(const mdf::IXmlNode &root,
161 mdf::detail::BlockPropertyList &dest) {

Callers 1

MakeUnitListFunction · 0.85

Calls 3

IsTagNameMethod · 0.80
emptyMethod · 0.80
GetChildListMethod · 0.45

Tested by

no test coverage detected