Port .edges file to tar
This commit is contained in:
@@ -27,10 +27,10 @@ inline void readTurnData(const boost::filesystem::path &path,
|
||||
std::is_same<guidance::TurnDataView, TurnDataT>::value ||
|
||||
std::is_same<guidance::TurnDataExternalContainer, TurnDataT>::value,
|
||||
"");
|
||||
const auto fingerprint = storage::io::FileReader::VerifyFingerprint;
|
||||
storage::io::FileReader reader{path, fingerprint};
|
||||
const auto fingerprint = storage::tar::FileReader::VerifyFingerprint;
|
||||
storage::tar::FileReader reader{path, fingerprint};
|
||||
|
||||
serialization::read(reader, turn_data, connectivity_checksum);
|
||||
serialization::read(reader, "/common/turn_data", turn_data, connectivity_checksum);
|
||||
}
|
||||
|
||||
// writes .osrm.edges
|
||||
@@ -43,10 +43,10 @@ inline void writeTurnData(const boost::filesystem::path &path,
|
||||
std::is_same<guidance::TurnDataView, TurnDataT>::value ||
|
||||
std::is_same<guidance::TurnDataExternalContainer, TurnDataT>::value,
|
||||
"");
|
||||
const auto fingerprint = storage::io::FileWriter::GenerateFingerprint;
|
||||
storage::io::FileWriter writer{path, fingerprint};
|
||||
const auto fingerprint = storage::tar::FileWriter::GenerateFingerprint;
|
||||
storage::tar::FileWriter writer{path, fingerprint};
|
||||
|
||||
serialization::write(writer, turn_data, connectivity_checksum);
|
||||
serialization::write(writer, "/common/turn_data", turn_data, connectivity_checksum);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include "guidance/turn_data_container.hpp"
|
||||
|
||||
#include "storage/io.hpp"
|
||||
#include "storage/tar.hpp"
|
||||
#include "storage/serialization.hpp"
|
||||
|
||||
#include <boost/assert.hpp>
|
||||
@@ -17,29 +17,42 @@ namespace serialization
|
||||
|
||||
// read/write for turn data file
|
||||
template <storage::Ownership Ownership>
|
||||
inline void read(storage::io::FileReader &reader,
|
||||
inline void read(storage::tar::FileReader &reader,
|
||||
const std::string &name,
|
||||
guidance::detail::TurnDataContainerImpl<Ownership> &turn_data_container,
|
||||
std::uint32_t &connectivity_checksum)
|
||||
{
|
||||
storage::serialization::read(reader, turn_data_container.turn_instructions);
|
||||
storage::serialization::read(reader, turn_data_container.lane_data_ids);
|
||||
storage::serialization::read(reader, turn_data_container.entry_class_ids);
|
||||
storage::serialization::read(reader, turn_data_container.pre_turn_bearings);
|
||||
storage::serialization::read(reader, turn_data_container.post_turn_bearings);
|
||||
reader.ReadInto(connectivity_checksum);
|
||||
storage::serialization::read(
|
||||
reader, name + "/turn_instructions", turn_data_container.turn_instructions);
|
||||
storage::serialization::read(
|
||||
reader, name + "/lane_data_ids", turn_data_container.lane_data_ids);
|
||||
storage::serialization::read(
|
||||
reader, name + "/entry_class_ids", turn_data_container.entry_class_ids);
|
||||
storage::serialization::read(
|
||||
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::io::FileWriter &writer,
|
||||
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)
|
||||
{
|
||||
storage::serialization::write(writer, turn_data_container.turn_instructions);
|
||||
storage::serialization::write(writer, turn_data_container.lane_data_ids);
|
||||
storage::serialization::write(writer, turn_data_container.entry_class_ids);
|
||||
storage::serialization::write(writer, turn_data_container.pre_turn_bearings);
|
||||
storage::serialization::write(writer, turn_data_container.post_turn_bearings);
|
||||
writer.WriteFrom(connectivity_checksum);
|
||||
storage::serialization::write(
|
||||
writer, name + "/turn_instructions", turn_data_container.turn_instructions);
|
||||
storage::serialization::write(
|
||||
writer, name + "/lane_data_ids", turn_data_container.lane_data_ids);
|
||||
storage::serialization::write(
|
||||
writer, name + "/entry_class_ids", turn_data_container.entry_class_ids);
|
||||
storage::serialization::write(
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
#include "guidance/turn_bearing.hpp"
|
||||
#include "guidance/turn_instruction.hpp"
|
||||
|
||||
#include "storage/io_fwd.hpp"
|
||||
#include "storage/shared_memory_ownership.hpp"
|
||||
#include "storage/tar_fwd.hpp"
|
||||
|
||||
#include "util/vector_view.hpp"
|
||||
|
||||
@@ -24,12 +24,14 @@ template <storage::Ownership Ownership> class TurnDataContainerImpl;
|
||||
namespace serialization
|
||||
{
|
||||
template <storage::Ownership Ownership>
|
||||
void read(storage::io::FileReader &reader,
|
||||
void read(storage::tar::FileReader &reader,
|
||||
const std::string &name,
|
||||
detail::TurnDataContainerImpl<Ownership> &turn_data,
|
||||
std::uint32_t &connectivity_checksum);
|
||||
|
||||
template <storage::Ownership Ownership>
|
||||
void write(storage::io::FileWriter &writer,
|
||||
void write(storage::tar::FileWriter &writer,
|
||||
const std::string &name,
|
||||
const detail::TurnDataContainerImpl<Ownership> &turn_data,
|
||||
const std::uint32_t connectivity_checksum);
|
||||
}
|
||||
@@ -97,10 +99,12 @@ template <storage::Ownership Ownership> class TurnDataContainerImpl
|
||||
others.begin(), others.end(), [this](const TurnData &other) { push_back(other); });
|
||||
}
|
||||
|
||||
friend void serialization::read<Ownership>(storage::io::FileReader &reader,
|
||||
friend void serialization::read<Ownership>(storage::tar::FileReader &reader,
|
||||
const std::string &name,
|
||||
TurnDataContainerImpl &turn_data_container,
|
||||
std::uint32_t &connectivity_checksum);
|
||||
friend void serialization::write<Ownership>(storage::io::FileWriter &writer,
|
||||
friend void serialization::write<Ownership>(storage::tar::FileWriter &writer,
|
||||
const std::string &name,
|
||||
const TurnDataContainerImpl &turn_data_container,
|
||||
const std::uint32_t connectivity_checksum);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user