Showing the changes to Source/Libraries/TimeSeriesPlatformLibrary/Data/DataSet.cpp (1 of 20 files). Show all
Unified · Split
| @@ -136,10 +136,15 @@ void DataSet::ReadXml(const string& fileName) · 135 unmodified lines | ||
| 136 | 136 | } |
| 137 | 137 | |
| 138 | 138 | void DataSet::ReadXml(const vector<uint8_t>& buffer) |
| 139 | +{ | |
| 140 | + ReadXml(buffer.data(), buffer.size()); | |
| 141 | +} | |
| 142 | + | |
| 143 | +void DataSet::ReadXml(const uint8_t* buffer, uint32_t length) | |
| 139 | 144 | { |
| 140 | 145 | xml_document document; |
| 141 | 146 | |
| 142 | − const xml_parse_result result = document.load_buffer_inplace(const_cast<uint8_t*>(buffer.data()), buffer.size()); | |
| 147 | + const xml_parse_result result = document.load_buffer_inplace(const_cast<uint8_t*>(buffer), length); | |
| 143 | 148 | |
| 144 | 149 | if (result.status != xml_parse_status::status_ok) |
| 145 | 150 | throw DataSetException("Failed to load XML from buffer: " + string(result.description())); |
| @@ -147,6 +152,11 @@ void DataSet::ReadXml(const vector<uint8_t>& buffer) · 1 unmodified line | ||
| 147 | 152 | ParseXml(document); |
| 148 | 153 | } |
| 149 | 154 | |
| 155 | +void DataSet::ReadXml(const pugi::xml_document& document) | |
| 156 | +{ | |
| 157 | + ParseXml(document); | |
| 158 | +} | |
| 159 | + | |
| 150 | 160 | void DataSet::WriteXml(const string& fileName, const string& dataSetName) const |
| 151 | 161 | { |
| 152 | 162 | xml_document document; |
| @@ -162,6 +172,11 @@ void DataSet::WriteXml(vector<uint8_t>& buffer, const string& dataSetName) const · 9 unmodified lines | ||
| 162 | 172 | document.save(writer, " "); |
| 163 | 173 | } |
| 164 | 174 | |
| 175 | +void DataSet::WriteXml(pugi::xml_document& document, const std::string& dataSetName) const | |
| 176 | +{ | |
| 177 | + GenerateXml(document, dataSetName); | |
| 178 | +} | |
| 179 | + | |
| 165 | 180 | DataSetPtr DataSet::FromXml(const std::string& fileName) |
| 166 | 181 | { |
| 167 | 182 | DataSetPtr dataSet = NewSharedPtr<DataSet>(); |
| @@ -176,6 +191,19 @@ DataSetPtr DataSet::FromXml(const std::vector<uint8_t>& buffer) · 8 unmodified lines | ||
| 176 | 191 | return dataSet; |
| 177 | 192 | } |
| 178 | 193 | |
| 194 | +DataSetPtr DataSet::FromXml(const uint8_t* buffer, uint32_t length) | |
| 195 | +{ | |
| 196 | + DataSetPtr dataSet = NewSharedPtr<DataSet>(); | |
| 197 | + dataSet->ReadXml(buffer, length); | |
| 198 | + return dataSet;} | |
| 199 | + | |
| 200 | +DataSetPtr DataSet::FromXml(const pugi::xml_document& document) | |
| 201 | +{ | |
| 202 | + DataSetPtr dataSet = NewSharedPtr<DataSet>(); | |
| 203 | + dataSet->ReadXml(document); | |
| 204 | + return dataSet; | |
| 205 | +} | |
| 206 | + | |
| 179 | 207 | void DataSet::ParseXml(const xml_document& document) |
| 180 | 208 | { |
| 181 | 209 | // Find root node |