MCPcopy Create free account
hub / github.com/comaps/comaps / SaveCategoryExtendedData

Function SaveCategoryExtendedData

libs/kml/serdes.cpp:227–305  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

225 std::vector<CategoryData> const * compilationData);
226
227void SaveCategoryExtendedData(Writer & writer, CategoryData const & categoryData, std::string const & extendedServerId,
228 std::vector<CategoryData> const * compilationData)
229{
230 if (compilationData)
231 {
232 writer << kIndent2 << kExtendedDataHeader;
233 }
234 else
235 {
236 std::string compilationAttributes;
237 if (categoryData.m_compilationId != kInvalidCompilationId)
238 compilationAttributes += " id=\"" + strings::to_string(categoryData.m_compilationId) + "\"";
239 compilationAttributes += " type=\"" + DebugPrint(categoryData.m_type) + "\"";
240 writer << kIndent4 << "<" << kCompilation << compilationAttributes << ">\n";
241 }
242
243 auto const & indent = compilationData ? kIndent4 : kIndent6;
244
245 if (!extendedServerId.empty() && compilationData)
246 writer << indent << "<mwm:serverId>" << extendedServerId << "</mwm:serverId>\n";
247
248 SaveLocalizableString(writer, categoryData.m_name, "name", indent);
249 SaveLocalizableString(writer, categoryData.m_annotation, "annotation", indent);
250 SaveLocalizableString(writer, categoryData.m_description, "description", indent);
251
252 if (!compilationData)
253 writer << indent << "<mwm:visibility>" << (categoryData.m_visible ? "1" : "0") << "</mwm:visibility>\n";
254
255 if (!categoryData.m_imageUrl.empty())
256 writer << indent << "<mwm:imageUrl>" << categoryData.m_imageUrl << "</mwm:imageUrl>\n";
257
258 if (!categoryData.m_authorId.empty() || !categoryData.m_authorName.empty())
259 {
260 writer << indent << "<mwm:author id=\"" << categoryData.m_authorId << "\">";
261 SaveStringWithCDATA(writer, categoryData.m_authorName);
262 writer << "</mwm:author>\n";
263 }
264
265 if (categoryData.m_lastModified != Timestamp())
266 {
267 writer << indent << "<mwm:lastModified>" << TimestampToString(categoryData.m_lastModified)
268 << "</mwm:lastModified>\n";
269 }
270
271 double constexpr kEps = 1e-5;
272 if (fabs(categoryData.m_rating) > kEps)
273 writer << indent << "<mwm:rating>" << strings::to_string(categoryData.m_rating) << "</mwm:rating>\n";
274
275 if (categoryData.m_reviewsNumber > 0)
276 {
277 writer << indent << "<mwm:reviewsNumber>" << strings::to_string(categoryData.m_reviewsNumber)
278 << "</mwm:reviewsNumber>\n";
279 }
280
281 writer << indent << "<mwm:accessRules>" << DebugPrint(categoryData.m_accessRules) << "</mwm:accessRules>\n";
282
283 SaveStringsArray(writer, categoryData.m_tags, "tags", indent);
284

Callers 1

SaveCategoryDataFunction · 0.85

Calls 13

to_stringFunction · 0.85
SaveLocalizableStringFunction · 0.85
SaveStringWithCDATAFunction · 0.85
SaveStringsArrayFunction · 0.85
SaveStringsMapFunction · 0.85
DebugPrintFunction · 0.70
TimestampToStringFunction · 0.70
SaveCategoryDataFunction · 0.70
emptyMethod · 0.45
reserveMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected