Port over profile properties

This commit is contained in:
Patrick Niklaus 2018-03-16 16:50:30 +00:00
parent 5d1b4ce71d
commit c61198b26b
4 changed files with 28 additions and 25 deletions

View File

@ -59,20 +59,20 @@ inline void readIntersections(const boost::filesystem::path &path,
inline void readProfileProperties(const boost::filesystem::path &path,
ProfileProperties &properties)
{
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, properties);
serialization::read(reader, "/common/properties", properties);
}
// writes .osrm.properties
inline void writeProfileProperties(const boost::filesystem::path &path,
const ProfileProperties &properties)
{
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, properties);
serialization::write(writer, "/common/properties", properties);
}
template <typename EdgeBasedEdgeVector>

View File

@ -26,33 +26,41 @@ namespace serialization
// read/write for bearing data
template <storage::Ownership Ownership>
inline void read(storage::tar::FileReader &reader,
const std::string& name,
const std::string &name,
detail::IntersectionBearingsContainer<Ownership> &intersection_bearings)
{
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);
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::tar::FileWriter &writer,
const std::string& name,
const std::string &name,
const detail::IntersectionBearingsContainer<Ownership> &intersection_bearings)
{
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);
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
inline void read(storage::io::FileReader &reader, ProfileProperties &properties)
inline void
read(storage::tar::FileReader &reader, const std::string &name, ProfileProperties &properties)
{
reader.ReadInto(properties);
properties = reader.ReadOne<ProfileProperties>(name);
}
inline void write(storage::io::FileWriter &writer, const ProfileProperties &properties)
inline void write(storage::tar::FileWriter &writer,
const std::string &name,
const ProfileProperties &properties)
{
writer.WriteFrom(properties);
writer.WriteElementCount64(name, 1);
writer.WriteOne(name, properties);
}
// read/write for datasources file

View File

@ -302,10 +302,6 @@ void Storage::PopulateLayout(DataLayout &layout)
make_block<std::uint64_t>(tree_levels_size));
}
{
layout.SetBlock(DataLayout::PROPERTIES, make_block<extractor::ProfileProperties>(1));
}
// read timestampsize
{
io::FileReader timestamp_file(config.GetPath(".osrm.timestamp"),
@ -468,6 +464,7 @@ void Storage::PopulateLayout(DataLayout &layout)
{"/common/intersection_bearings/class_id_to_ranges/block_offsets", DataLayout::BEARING_OFFSETS},
{"/common/intersection_bearings/class_id_to_ranges/diff_blocks", DataLayout::BEARING_BLOCKS},
{"/common/entry_classes", DataLayout::ENTRY_CLASS},
{"/common/properties", DataLayout::PROPERTIES},
};
std::vector<NamedBlock> blocks;
@ -479,7 +476,8 @@ void Storage::PopulateLayout(DataLayout &layout)
{OPTIONAL, config.GetPath(".osrm.partition")},
{OPTIONAL, config.GetPath(".osrm.cell_metrics")},
{OPTIONAL, config.GetPath(".osrm.hsgr")},
{REQUIRED, config.GetPath(".osrm.icd")}
{REQUIRED, config.GetPath(".osrm.icd")},
{REQUIRED, config.GetPath(".osrm.properties")}
};
for (const auto &file : tar_files)

View File

@ -594,10 +594,7 @@ Updater::LoadAndUpdateEdgeExpandedGraph(std::vector<extractor::EdgeBasedEdge> &e
};
const auto load_profile_properties = [&] {
// Propagate profile properties to contractor configuration structure
storage::io::FileReader profile_properties_file(
config.GetPath(".osrm.properties"), storage::io::FileReader::VerifyFingerprint);
profile_properties = profile_properties_file.ReadOne<extractor::ProfileProperties>();
extractor::files::readProfileProperties(config.GetPath(".osrm.properties"), profile_properties);
};
tbb::parallel_invoke(load_node_data,