| 48 | } |
| 49 | |
| 50 | std::string SiComment::ToXml() const { |
| 51 | try { |
| 52 | auto xml_file = CreateXmlFile("FileWriter"); |
| 53 | constexpr bool ho_active = false; |
| 54 | auto& root_node = CreateRootNode(*xml_file, ho_active); |
| 55 | ToTx(root_node); |
| 56 | ToNames(root_node); |
| 57 | if (path_.IsActive()) { |
| 58 | auto& path_node = root_node.AddNode("path"); |
| 59 | path_.ToXml(path_node); |
| 60 | } |
| 61 | if (bus_.IsActive()) { |
| 62 | auto& bus_node = root_node.AddNode("bus"); |
| 63 | bus_.ToXml(bus_node); |
| 64 | } |
| 65 | if (protocol_.IsActive()) { |
| 66 | protocol_.ToXml(root_node, "protocol"); |
| 67 | } |
| 68 | ToCommonProp(root_node); |
| 69 | return xml_file->WriteString(true); |
| 70 | } catch (const std::exception& err) { |
| 71 | MDF_ERROR() << "Failed to create the SI comment. Error: " << err.what(); |
| 72 | } |
| 73 | return {}; |
| 74 | } |
| 75 | |
| 76 | void SiComment::FromXml(const std::string& xml_snippet) { |
| 77 | if (xml_snippet.empty()) { |
nothing calls this directly
no test coverage detected