Files
comaps/kml/serdes_binary.cpp
Konstantin Pastbin e3e4a1985a Organic Maps sources as of 02.04.2025 (fad26bbf22ac3da75e01e62aa01e5c8e11861005)
To expand with full Organic Maps and Maps.ME commits history run:
  git remote add om-historic [om-historic.git repo url]
  git fetch --tags om-historic
  git replace squashed-history historic-commits
2025-05-08 21:10:51 +07:00

39 lines
887 B
C++

#include "kml/serdes_binary.hpp"
namespace kml
{
namespace binary
{
SerializerKml::SerializerKml(FileData & data)
: m_data(data)
{
ClearCollectionIndex();
// Collect all strings and substitute each for index.
auto const avgSz = data.m_bookmarksData.size() * 2 + data.m_tracksData.size() * 2 + 10;
LocalizableStringCollector collector(avgSz);
CollectorVisitor<decltype(collector)> visitor(collector);
m_data.Visit(visitor);
m_strings = collector.StealCollection();
}
SerializerKml::~SerializerKml()
{
ClearCollectionIndex();
}
void SerializerKml::ClearCollectionIndex()
{
LocalizableStringCollector collector(0);
CollectorVisitor<decltype(collector)> clearVisitor(collector, true /* clear index */);
m_data.Visit(clearVisitor);
}
DeserializerKml::DeserializerKml(FileData & data)
: m_data(data)
{
m_data = {};
}
} // namespace binary
} // namespace kml