Port .osrm.icd file over to tar
This commit is contained in:
@@ -33,10 +33,10 @@ inline void writeIntersections(const boost::filesystem::path &path,
|
||||
std::is_same<IntersectionBearingsView, IntersectionBearingsT>::value,
|
||||
"");
|
||||
|
||||
storage::io::FileWriter writer(path, storage::io::FileWriter::GenerateFingerprint);
|
||||
storage::tar::FileWriter writer(path, storage::tar::FileWriter::GenerateFingerprint);
|
||||
|
||||
serialization::write(writer, intersection_bearings);
|
||||
storage::serialization::write(writer, entry_classes);
|
||||
serialization::write(writer, "/common/intersection_bearings", intersection_bearings);
|
||||
storage::serialization::write(writer, "/common/entry_classes", entry_classes);
|
||||
}
|
||||
|
||||
// read the .osrm.icd file
|
||||
@@ -49,10 +49,10 @@ inline void readIntersections(const boost::filesystem::path &path,
|
||||
std::is_same<IntersectionBearingsView, IntersectionBearingsT>::value,
|
||||
"");
|
||||
|
||||
storage::io::FileReader reader(path, storage::io::FileReader::VerifyFingerprint);
|
||||
storage::tar::FileReader reader(path, storage::tar::FileReader::VerifyFingerprint);
|
||||
|
||||
serialization::read(reader, intersection_bearings);
|
||||
storage::serialization::read(reader, entry_classes);
|
||||
serialization::read(reader, "/common/intersection_bearings", intersection_bearings);
|
||||
storage::serialization::read(reader, "/common/entry_classes", entry_classes);
|
||||
}
|
||||
|
||||
// reads .osrm.properties
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define OSRM_EXTRACTOR_BEARING_CONTAINER_HPP
|
||||
|
||||
#include "storage/shared_memory_ownership.hpp"
|
||||
#include "storage/tar_fwd.hpp"
|
||||
|
||||
#include "util/guidance/bearing_class.hpp"
|
||||
#include "util/range_table.hpp"
|
||||
@@ -21,11 +22,13 @@ template <storage::Ownership Ownership> class IntersectionBearingsContainer;
|
||||
namespace serialization
|
||||
{
|
||||
template <storage::Ownership Ownership>
|
||||
void read(storage::io::FileReader &reader,
|
||||
void read(storage::tar::FileReader &reader,
|
||||
const std::string& name,
|
||||
detail::IntersectionBearingsContainer<Ownership> &turn_data);
|
||||
|
||||
template <storage::Ownership Ownership>
|
||||
void write(storage::io::FileWriter &writer,
|
||||
void write(storage::tar::FileWriter &writer,
|
||||
const std::string& name,
|
||||
const detail::IntersectionBearingsContainer<Ownership> &turn_data);
|
||||
}
|
||||
|
||||
@@ -83,10 +86,12 @@ template <storage::Ownership Ownership> class IntersectionBearingsContainer
|
||||
return result;
|
||||
}
|
||||
|
||||
friend void serialization::read<Ownership>(storage::io::FileReader &reader,
|
||||
friend void serialization::read<Ownership>(storage::tar::FileReader &reader,
|
||||
const std::string &name,
|
||||
IntersectionBearingsContainer &turn_data_container);
|
||||
friend void
|
||||
serialization::write<Ownership>(storage::io::FileWriter &writer,
|
||||
serialization::write<Ownership>(storage::tar::FileWriter &writer,
|
||||
const std::string &name,
|
||||
const IntersectionBearingsContainer &turn_data_container);
|
||||
|
||||
private:
|
||||
|
||||
@@ -25,21 +25,23 @@ namespace serialization
|
||||
|
||||
// read/write for bearing data
|
||||
template <storage::Ownership Ownership>
|
||||
inline void read(storage::io::FileReader &reader,
|
||||
inline void read(storage::tar::FileReader &reader,
|
||||
const std::string& name,
|
||||
detail::IntersectionBearingsContainer<Ownership> &intersection_bearings)
|
||||
{
|
||||
storage::serialization::read(reader, intersection_bearings.values);
|
||||
storage::serialization::read(reader, intersection_bearings.node_to_class_id);
|
||||
util::serialization::read(reader, intersection_bearings.class_id_to_ranges_table);
|
||||
storage::serialization::read(reader, name + "/bearing_values", intersection_bearings.values);
|
||||
storage::serialization::read(reader, name + "/node_to_class_id", intersection_bearings.node_to_class_id);
|
||||
util::serialization::read(reader, name + "/class_id_to_ranges", intersection_bearings.class_id_to_ranges_table);
|
||||
}
|
||||
|
||||
template <storage::Ownership Ownership>
|
||||
inline void write(storage::io::FileWriter &writer,
|
||||
inline void write(storage::tar::FileWriter &writer,
|
||||
const std::string& name,
|
||||
const detail::IntersectionBearingsContainer<Ownership> &intersection_bearings)
|
||||
{
|
||||
storage::serialization::write(writer, intersection_bearings.values);
|
||||
storage::serialization::write(writer, intersection_bearings.node_to_class_id);
|
||||
util::serialization::write(writer, intersection_bearings.class_id_to_ranges_table);
|
||||
storage::serialization::write(writer, name + "/bearing_values", intersection_bearings.values);
|
||||
storage::serialization::write(writer, name + "/node_to_class_id", intersection_bearings.node_to_class_id);
|
||||
util::serialization::write(writer, name + "/class_id_to_ranges", intersection_bearings.class_id_to_ranges_table);
|
||||
}
|
||||
|
||||
// read/write for properties file
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#ifndef RANGE_TABLE_HPP
|
||||
#define RANGE_TABLE_HPP
|
||||
|
||||
#include "storage/io.hpp"
|
||||
#include "storage/shared_memory_ownership.hpp"
|
||||
#include "storage/tar_fwd.hpp"
|
||||
#include "util/integer_range.hpp"
|
||||
#include "util/vector_view.hpp"
|
||||
|
||||
@@ -25,10 +25,14 @@ class RangeTable;
|
||||
namespace serialization
|
||||
{
|
||||
template <unsigned BlockSize, storage::Ownership Ownership>
|
||||
void write(storage::io::FileWriter &writer, const util::RangeTable<BlockSize, Ownership> &table);
|
||||
void write(storage::tar::FileWriter &writer,
|
||||
const std::string &name,
|
||||
const util::RangeTable<BlockSize, Ownership> &table);
|
||||
|
||||
template <unsigned BlockSize, storage::Ownership Ownership>
|
||||
void read(storage::io::FileReader &reader, util::RangeTable<BlockSize, Ownership> &table);
|
||||
void read(storage::tar::FileReader &reader,
|
||||
const std::string &name,
|
||||
util::RangeTable<BlockSize, Ownership> &table);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -177,9 +181,11 @@ template <unsigned BLOCK_SIZE, storage::Ownership Ownership> class RangeTable
|
||||
return irange(begin_idx, end_idx);
|
||||
}
|
||||
|
||||
friend void serialization::write<BLOCK_SIZE, Ownership>(storage::io::FileWriter &writer,
|
||||
friend void serialization::write<BLOCK_SIZE, Ownership>(storage::tar::FileWriter &writer,
|
||||
const std::string &name,
|
||||
const RangeTable &table);
|
||||
friend void serialization::read<BLOCK_SIZE, Ownership>(storage::io::FileReader &reader,
|
||||
friend void serialization::read<BLOCK_SIZE, Ownership>(storage::tar::FileReader &reader,
|
||||
const std::string &name,
|
||||
RangeTable &table);
|
||||
|
||||
private:
|
||||
|
||||
@@ -31,6 +31,22 @@ void read(storage::io::FileReader &reader, util::RangeTable<BlockSize, Ownership
|
||||
storage::serialization::read(reader, table.diff_blocks);
|
||||
}
|
||||
|
||||
template <unsigned BlockSize, storage::Ownership Ownership>
|
||||
void write(storage::tar::FileWriter &writer, const std::string& name, const util::RangeTable<BlockSize, Ownership> &table)
|
||||
{
|
||||
writer.WriteOne(name + "/sum_lengths.meta", table.sum_lengths);
|
||||
storage::serialization::write(writer, name + "/block_offsets", table.block_offsets);
|
||||
storage::serialization::write(writer, name + "/diff_blocks", table.diff_blocks);
|
||||
}
|
||||
|
||||
template <unsigned BlockSize, storage::Ownership Ownership>
|
||||
void read(storage::tar::FileReader &reader, const std::string& name, util::RangeTable<BlockSize, Ownership> &table)
|
||||
{
|
||||
table.sum_lengths = reader.ReadOne<unsigned>(name + "/sum_lengths.meta");
|
||||
storage::serialization::read(reader, name + "/block_offsets", table.block_offsets);
|
||||
storage::serialization::read(reader, name + "/diff_blocks", table.diff_blocks);
|
||||
}
|
||||
|
||||
template <typename T, std::size_t Bits, storage::Ownership Ownership>
|
||||
inline void read(storage::io::FileReader &reader, detail::PackedVector<T, Bits, Ownership> &vec)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user