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

Function ParseTrackFile

tools/track_analyzing/track_archive_reader.cpp:183–227  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

181}
182
183bool ParseTrackFile(unzip::File & zipReader, Track & trackData) noexcept
184{
185 unzip::FileInfo fileInfo;
186 if (unzip::GetCurrentFileInfo(zipReader, fileInfo) != unzip::Code::Ok)
187 {
188 LOG(LERROR, ("Unable to get file info from zip archive"));
189 return false;
190 }
191
192 auto archiveInfo = tracking::archival_file::ParseArchiveFilename(fileInfo.m_filename);
193
194 if (unzip::OpenCurrentFile(zipReader) != unzip::Code::Ok)
195 {
196 LOG(LERROR, ("Unable to open file from zip archive"));
197 return false;
198 }
199
200 unzip::Buffer fileData;
201 int dataSize = unzip::ReadCurrentFile(zipReader, fileData);
202 if (dataSize < 0)
203 {
204 LOG(LERROR, ("Unable to read file from zip archive"));
205 return false;
206 }
207
208 bool result = false;
209 if (archiveInfo.m_trackType == routing::RouterType::Vehicle)
210 {
211 result = ReadTrackFromArchive<ReaderSource<MemReaderWithExceptions>, tracking::PacketCar>(fileData.data(), dataSize,
212 trackData);
213 }
214 else
215 {
216 result = ReadTrackFromArchive<ReaderSource<MemReaderWithExceptions>, tracking::Packet>(fileData.data(), dataSize,
217 trackData);
218 }
219
220 if (unzip::CloseCurrentFile(zipReader) != unzip::Code::Ok)
221 {
222 LOG(LERROR, ("Unable to close file from zip archive"));
223 return false;
224 }
225
226 return result;
227}
228
229optional<Track> ParseTrackArchiveData(string const & content, TemporaryFile & tmpArchiveFile)
230{

Callers 1

ParseTrackArchiveDataFunction · 0.85

Calls 6

GetCurrentFileInfoFunction · 0.85
ParseArchiveFilenameFunction · 0.85
OpenCurrentFileFunction · 0.85
ReadCurrentFileFunction · 0.85
CloseCurrentFileFunction · 0.85
dataMethod · 0.45

Tested by

no test coverage detected