Port .geometry file to tar format
This commit is contained in:
@@ -183,10 +183,10 @@ inline void readSegmentData(const boost::filesystem::path &path, SegmentDataT &s
|
||||
static_assert(std::is_same<SegmentDataContainer, SegmentDataT>::value ||
|
||||
std::is_same<SegmentDataView, SegmentDataT>::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, segment_data);
|
||||
serialization::read(reader, "/common/segment_data", segment_data);
|
||||
}
|
||||
|
||||
// writes .osrm.geometry
|
||||
@@ -196,10 +196,10 @@ inline void writeSegmentData(const boost::filesystem::path &path, const SegmentD
|
||||
static_assert(std::is_same<SegmentDataContainer, SegmentDataT>::value ||
|
||||
std::is_same<SegmentDataView, SegmentDataT>::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, segment_data);
|
||||
serialization::write(writer, "/common/segment_data", segment_data);
|
||||
}
|
||||
|
||||
// reads .osrm.ebg_nodes
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
#include "util/typedefs.hpp"
|
||||
#include "util/vector_view.hpp"
|
||||
|
||||
#include "storage/io_fwd.hpp"
|
||||
#include "storage/shared_memory_ownership.hpp"
|
||||
#include "storage/tar_fwd.hpp"
|
||||
|
||||
#include <boost/filesystem/path.hpp>
|
||||
#include <boost/range/adaptor/reversed.hpp>
|
||||
@@ -32,10 +32,12 @@ template <storage::Ownership Ownership> class SegmentDataContainerImpl;
|
||||
namespace serialization
|
||||
{
|
||||
template <storage::Ownership Ownership>
|
||||
inline void read(storage::io::FileReader &reader,
|
||||
inline void read(storage::tar::FileReader &reader,
|
||||
const std::string &name,
|
||||
detail::SegmentDataContainerImpl<Ownership> &segment_data);
|
||||
template <storage::Ownership Ownership>
|
||||
inline void write(storage::io::FileWriter &writer,
|
||||
inline void write(storage::tar::FileWriter &writer,
|
||||
const std::string &name,
|
||||
const detail::SegmentDataContainerImpl<Ownership> &segment_data);
|
||||
}
|
||||
|
||||
@@ -200,10 +202,12 @@ template <storage::Ownership Ownership> class SegmentDataContainerImpl
|
||||
auto GetNumberOfSegments() const { return fwd_weights.size(); }
|
||||
|
||||
friend void
|
||||
serialization::read<Ownership>(storage::io::FileReader &reader,
|
||||
serialization::read<Ownership>(storage::tar::FileReader &reader,
|
||||
const std::string &name,
|
||||
detail::SegmentDataContainerImpl<Ownership> &segment_data);
|
||||
friend void serialization::write<Ownership>(
|
||||
storage::io::FileWriter &writer,
|
||||
storage::tar::FileWriter &writer,
|
||||
const std::string &name,
|
||||
const detail::SegmentDataContainerImpl<Ownership> &segment_data);
|
||||
|
||||
private:
|
||||
|
||||
@@ -64,12 +64,12 @@ inline void write(storage::tar::FileWriter &writer,
|
||||
}
|
||||
|
||||
// read/write for datasources file
|
||||
inline void read(storage::tar::FileReader &reader, const std::string& name, Datasources &sources)
|
||||
inline void read(storage::tar::FileReader &reader, const std::string &name, Datasources &sources)
|
||||
{
|
||||
sources = reader.ReadOne<Datasources>(name);
|
||||
}
|
||||
|
||||
inline void write(storage::tar::FileWriter &writer, const std::string& name, Datasources &sources)
|
||||
inline void write(storage::tar::FileWriter &writer, const std::string &name, Datasources &sources)
|
||||
{
|
||||
writer.WriteElementCount64(name, 1);
|
||||
writer.WriteOne(name, sources);
|
||||
@@ -77,31 +77,37 @@ inline void write(storage::tar::FileWriter &writer, const std::string& name, Dat
|
||||
|
||||
// read/write for segment data file
|
||||
template <storage::Ownership Ownership>
|
||||
inline void read(storage::io::FileReader &reader,
|
||||
inline void read(storage::tar::FileReader &reader,
|
||||
const std::string &name,
|
||||
detail::SegmentDataContainerImpl<Ownership> &segment_data)
|
||||
{
|
||||
storage::serialization::read(reader, segment_data.index);
|
||||
storage::serialization::read(reader, segment_data.nodes);
|
||||
util::serialization::read(reader, segment_data.fwd_weights);
|
||||
util::serialization::read(reader, segment_data.rev_weights);
|
||||
util::serialization::read(reader, segment_data.fwd_durations);
|
||||
util::serialization::read(reader, segment_data.rev_durations);
|
||||
storage::serialization::read(reader, segment_data.fwd_datasources);
|
||||
storage::serialization::read(reader, segment_data.rev_datasources);
|
||||
storage::serialization::read(reader, name + "/index", segment_data.index);
|
||||
storage::serialization::read(reader, name + "/nodes", segment_data.nodes);
|
||||
util::serialization::read(reader, name + "/forward_weights", segment_data.fwd_weights);
|
||||
util::serialization::read(reader, name + "/reverse_weights", segment_data.rev_weights);
|
||||
util::serialization::read(reader, name + "/forward_durations", segment_data.fwd_durations);
|
||||
util::serialization::read(reader, name + "/reverse_durations", segment_data.rev_durations);
|
||||
storage::serialization::read(
|
||||
reader, name + "/forward_data_sources", segment_data.fwd_datasources);
|
||||
storage::serialization::read(
|
||||
reader, name + "/reverse_data_sources", segment_data.rev_datasources);
|
||||
}
|
||||
|
||||
template <storage::Ownership Ownership>
|
||||
inline void write(storage::io::FileWriter &writer,
|
||||
inline void write(storage::tar::FileWriter &writer,
|
||||
const std::string &name,
|
||||
const detail::SegmentDataContainerImpl<Ownership> &segment_data)
|
||||
{
|
||||
storage::serialization::write(writer, segment_data.index);
|
||||
storage::serialization::write(writer, segment_data.nodes);
|
||||
util::serialization::write(writer, segment_data.fwd_weights);
|
||||
util::serialization::write(writer, segment_data.rev_weights);
|
||||
util::serialization::write(writer, segment_data.fwd_durations);
|
||||
util::serialization::write(writer, segment_data.rev_durations);
|
||||
storage::serialization::write(writer, segment_data.fwd_datasources);
|
||||
storage::serialization::write(writer, segment_data.rev_datasources);
|
||||
storage::serialization::write(writer, name + "/index", segment_data.index);
|
||||
storage::serialization::write(writer, name + "/nodes", segment_data.nodes);
|
||||
util::serialization::write(writer, name + "/forward_weights", segment_data.fwd_weights);
|
||||
util::serialization::write(writer, name + "/reverse_weights", segment_data.rev_weights);
|
||||
util::serialization::write(writer, name + "/forward_durations", segment_data.fwd_durations);
|
||||
util::serialization::write(writer, name + "/reverse_durations", segment_data.rev_durations);
|
||||
storage::serialization::write(
|
||||
writer, name + "/forward_data_sources", segment_data.fwd_datasources);
|
||||
storage::serialization::write(
|
||||
writer, name + "/reverse_data_sources", segment_data.rev_datasources);
|
||||
}
|
||||
|
||||
template <storage::Ownership Ownership>
|
||||
|
||||
Reference in New Issue
Block a user