Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorr.kuznetsov <r.kuznetsov@corp.mail.ru>2018-04-25 17:32:58 +0300
committerArsentiy Milchakov <milcars@mapswithme.com>2018-04-25 17:45:36 +0300
commit6b8893940e66b6ff0ba8fafdf8e9c7225b671bc0 (patch)
tree7b5d68f519a310c273aee6d2f90405eef4c22ef9 /kml/serdes_binary.hpp
parente604875d62e2bcc1583bc8564e5be52876f2055c (diff)
Added minimal support of KMB v.2 (added server id)
Diffstat (limited to 'kml/serdes_binary.hpp')
-rw-r--r--kml/serdes_binary.hpp33
1 files changed, 26 insertions, 7 deletions
diff --git a/kml/serdes_binary.hpp b/kml/serdes_binary.hpp
index c0bbbace78..b6801f2b0a 100644
--- a/kml/serdes_binary.hpp
+++ b/kml/serdes_binary.hpp
@@ -21,7 +21,8 @@ enum class Version : uint8_t
{
V0 = 0,
V1 = 1, // 11th April 2018 (new Point2D storage, added deviceId, feature name -> custom name).
- Latest = V1
+ V2 = 2, // 25th April 2018 (added serverId).
+ Latest = V2
};
class SerializerKml
@@ -39,9 +40,18 @@ public:
WriteToSink(sink, Version::Latest);
// Write device id.
- auto const sz = static_cast<uint32_t>(m_data.m_deviceId.size());
- WriteVarUint(sink, sz);
- sink.Write(m_data.m_deviceId.data(), sz);
+ {
+ auto const sz = static_cast<uint32_t>(m_data.m_deviceId.size());
+ WriteVarUint(sink, sz);
+ sink.Write(m_data.m_deviceId.data(), sz);
+ }
+
+ // Write server id.
+ {
+ auto const sz = static_cast<uint32_t>(m_data.m_serverId.size());
+ WriteVarUint(sink, sz);
+ sink.Write(m_data.m_serverId.data(), sz);
+ }
// Write bits count in double number.
WriteToSink(sink, kDoubleBits);
@@ -127,9 +137,18 @@ public:
MYTHROW(DeserializeException, ("Incorrect file version."));
// Read device id.
- auto const sz = ReadVarUint<uint32_t>(source);
- m_data.m_deviceId.resize(sz);
- source.Read(&m_data.m_deviceId[0], sz);
+ {
+ auto const sz = ReadVarUint<uint32_t>(source);
+ m_data.m_deviceId.resize(sz);
+ source.Read(&m_data.m_deviceId[0], sz);
+ }
+
+ // Read server id.
+ {
+ auto const sz = ReadVarUint<uint32_t>(source);
+ m_data.m_serverId.resize(sz);
+ source.Read(&m_data.m_serverId[0], sz);
+ }
// Read bits count in double number.
m_doubleBits = ReadPrimitiveFromSource<uint8_t>(source);