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

Function ReadTrackFromArchive

tools/track_analyzing/track_archive_reader.cpp:148–181  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

146
147template <typename Reader, typename Pack>
148bool ReadTrackFromArchive(char const * data, size_t dataSize, Track & trackData) noexcept
149{
150 try
151 {
152 coding::ZLib::Inflate inflate(coding::ZLib::Inflate::Format::ZLib);
153 vector<uint8_t> buffer;
154 inflate(data, dataSize, back_inserter(buffer));
155
156 ReaderSource<MemReaderWithExceptions> reader(MemReaderWithExceptions(buffer.data(), buffer.size()));
157 if (reader.Size() == 0)
158 return false;
159
160 // Read first point.
161 Pack point = tracking::TraitsPacket<Pack>::Read(reader, false /* isDelta */);
162 trackData.emplace_back(point.m_timestamp, ms::LatLon(point.m_lat, point.m_lon),
163 static_cast<uint8_t>(tracking::TraitsPacket<Pack>::GetSpeedGroup(point)));
164
165 // Read with delta.
166 while (reader.Size() > 0)
167 {
168 Pack const delta = tracking::TraitsPacket<Pack>::Read(reader, true /* isDelta */);
169 point = tracking::TraitsPacket<Pack>::Combine(point, delta);
170
171 trackData.emplace_back(point.m_timestamp, ms::LatLon(point.m_lat, point.m_lon),
172 static_cast<uint8_t>(tracking::TraitsPacket<Pack>::GetSpeedGroup(point)));
173 }
174 return true;
175 }
176 catch (exception const & e)
177 {
178 LOG(LWARNING, ("Error reading track file:", e.what()));
179 }
180 return false;
181}
182
183bool ParseTrackFile(unzip::File & zipReader, Track & trackData) noexcept
184{

Callers

nothing calls this directly

Calls 7

ReadFunction · 0.50
LatLonClass · 0.50
dataMethod · 0.45
sizeMethod · 0.45
SizeMethod · 0.45
emplace_backMethod · 0.45
whatMethod · 0.45

Tested by

no test coverage detected