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

Method Serialize

libs/kml/serdes_binary.hpp:39–92  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

37
38 template <typename Sink>
39 void Serialize(Sink & sink)
40 {
41 // Write format version.
42 WriteToSink(sink, Version::Latest);
43
44 // Write device id.
45 {
46 auto const sz = static_cast<uint32_t>(m_data.m_deviceId.size());
47 WriteVarUint(sink, sz);
48 sink.Write(m_data.m_deviceId.data(), sz);
49 }
50
51 // Write server id.
52 {
53 auto const sz = static_cast<uint32_t>(m_data.m_serverId.size());
54 WriteVarUint(sink, sz);
55 sink.Write(m_data.m_serverId.data(), sz);
56 }
57
58 // Write bits count in double number.
59 WriteToSink(sink, kDoubleBits);
60
61 auto const startPos = sink.Pos();
62
63 // Reserve place for the header.
64 Header header;
65 WriteZeroesToSink(sink, header.Size());
66
67 // Serialize category.
68 header.m_categoryOffset = sink.Pos() - startPos;
69 SerializeCategory(sink);
70
71 // Serialize bookmarks.
72 header.m_bookmarksOffset = sink.Pos() - startPos;
73 SerializeBookmarks(sink);
74
75 // Serialize tracks.
76 header.m_tracksOffset = sink.Pos() - startPos;
77 SerializeTracks(sink);
78
79 // Serialize compilations.
80 header.m_compilationsOffset = sink.Pos() - startPos;
81 SerializeCompilations(sink);
82
83 // Serialize strings.
84 header.m_stringsOffset = sink.Pos() - startPos;
85 SerializeStrings(sink);
86
87 // Fill header.
88 header.m_eosOffset = sink.Pos() - startPos;
89 sink.Seek(startPos);
90 header.Serialize(sink);
91 sink.Seek(startPos + header.m_eosOffset);
92 }
93
94 template <typename Sink>
95 void SerializeCategory(Sink & sink)

Callers

nothing calls this directly

Calls 9

WriteToSinkFunction · 0.85
WriteVarUintFunction · 0.85
WriteZeroesToSinkFunction · 0.85
sizeMethod · 0.45
WriteMethod · 0.45
dataMethod · 0.45
PosMethod · 0.45
SizeMethod · 0.45
SeekMethod · 0.45

Tested by

no test coverage detected