Fix errors when loading an incompatible dataset.

This commit is contained in:
Patrick Niklaus
2018-03-28 23:18:09 +00:00
committed by Patrick Niklaus
parent 24e0028afb
commit 9fc2c32408
13 changed files with 40 additions and 51 deletions
+5 -2
View File
@@ -30,7 +30,8 @@ inline void readTurnData(const boost::filesystem::path &path,
const auto fingerprint = storage::tar::FileReader::VerifyFingerprint;
storage::tar::FileReader reader{path, fingerprint};
serialization::read(reader, "/common/turn_data", turn_data, connectivity_checksum);
reader.ReadInto("/common/connectivity_checksum", connectivity_checksum);
serialization::read(reader, "/common/turn_data", turn_data);
}
// writes .osrm.edges
@@ -46,7 +47,9 @@ inline void writeTurnData(const boost::filesystem::path &path,
const auto fingerprint = storage::tar::FileWriter::GenerateFingerprint;
storage::tar::FileWriter writer{path, fingerprint};
serialization::write(writer, "/common/turn_data", turn_data, connectivity_checksum);
writer.WriteElementCount64("/common/connectivity_checksum", 1);
writer.WriteFrom("/common/connectivity_checksum", connectivity_checksum);
serialization::write(writer, "/common/turn_data", turn_data);
}
}
}
+2 -7
View File
@@ -19,8 +19,7 @@ namespace serialization
template <storage::Ownership Ownership>
inline void read(storage::tar::FileReader &reader,
const std::string &name,
guidance::detail::TurnDataContainerImpl<Ownership> &turn_data_container,
std::uint32_t &connectivity_checksum)
guidance::detail::TurnDataContainerImpl<Ownership> &turn_data_container)
{
storage::serialization::read(
reader, name + "/turn_instructions", turn_data_container.turn_instructions);
@@ -32,14 +31,12 @@ inline void read(storage::tar::FileReader &reader,
reader, name + "/pre_turn_bearings", turn_data_container.pre_turn_bearings);
storage::serialization::read(
reader, name + "/post_turn_bearings", turn_data_container.post_turn_bearings);
reader.ReadInto(name + "/connectivity_checksum", connectivity_checksum);
}
template <storage::Ownership Ownership>
inline void write(storage::tar::FileWriter &writer,
const std::string &name,
const guidance::detail::TurnDataContainerImpl<Ownership> &turn_data_container,
const std::uint32_t connectivity_checksum)
const guidance::detail::TurnDataContainerImpl<Ownership> &turn_data_container)
{
storage::serialization::write(
writer, name + "/turn_instructions", turn_data_container.turn_instructions);
@@ -51,8 +48,6 @@ inline void write(storage::tar::FileWriter &writer,
writer, name + "/pre_turn_bearings", turn_data_container.pre_turn_bearings);
storage::serialization::write(
writer, name + "/post_turn_bearings", turn_data_container.post_turn_bearings);
writer.WriteElementCount64(name + "/connectivity_checksum", 1);
writer.WriteFrom(name + "/connectivity_checksum", connectivity_checksum);
}
}
}
+4 -8
View File
@@ -26,14 +26,12 @@ namespace serialization
template <storage::Ownership Ownership>
void read(storage::tar::FileReader &reader,
const std::string &name,
detail::TurnDataContainerImpl<Ownership> &turn_data,
std::uint32_t &connectivity_checksum);
detail::TurnDataContainerImpl<Ownership> &turn_data);
template <storage::Ownership Ownership>
void write(storage::tar::FileWriter &writer,
const std::string &name,
const detail::TurnDataContainerImpl<Ownership> &turn_data,
const std::uint32_t connectivity_checksum);
const detail::TurnDataContainerImpl<Ownership> &turn_data);
}
struct TurnData
@@ -101,12 +99,10 @@ template <storage::Ownership Ownership> class TurnDataContainerImpl
friend void serialization::read<Ownership>(storage::tar::FileReader &reader,
const std::string &name,
TurnDataContainerImpl &turn_data_container,
std::uint32_t &connectivity_checksum);
TurnDataContainerImpl &turn_data_container);
friend void serialization::write<Ownership>(storage::tar::FileWriter &writer,
const std::string &name,
const TurnDataContainerImpl &turn_data_container,
const std::uint32_t connectivity_checksum);
const TurnDataContainerImpl &turn_data_container);
private:
Vector<TurnInstruction> turn_instructions;