Port .datasource_names to tar format

This commit is contained in:
Patrick Niklaus 2018-03-19 12:49:49 +00:00
parent 2c5e4e6c02
commit bced9a5a6d
3 changed files with 22 additions and 24 deletions

View File

@ -107,7 +107,7 @@ void readEdgeBasedGraph(const boost::filesystem::path &path,
connectivity_checksum = reader.ReadOne<std::uint32_t>("/common/connectivity_checksum"); connectivity_checksum = reader.ReadOne<std::uint32_t>("/common/connectivity_checksum");
} }
// reads .osrm.nodes // reads .osrm.nbg_nodes
template <typename CoordinatesT, typename PackedOSMIDsT> template <typename CoordinatesT, typename PackedOSMIDsT>
inline void readNodes(const boost::filesystem::path &path, inline void readNodes(const boost::filesystem::path &path,
CoordinatesT &coordinates, CoordinatesT &coordinates,
@ -123,7 +123,7 @@ inline void readNodes(const boost::filesystem::path &path,
util::serialization::read(reader, "/common/osm_node_ids", osm_node_ids); util::serialization::read(reader, "/common/osm_node_ids", osm_node_ids);
} }
// writes .osrm.nodes // writes .osrm.nbg_nodes
template <typename CoordinatesT, typename PackedOSMIDsT> template <typename CoordinatesT, typename PackedOSMIDsT>
inline void writeNodes(const boost::filesystem::path &path, inline void writeNodes(const boost::filesystem::path &path,
const CoordinatesT &coordinates, const CoordinatesT &coordinates,
@ -142,38 +142,38 @@ inline void writeNodes(const boost::filesystem::path &path,
// reads .osrm.cnbg_to_ebg // reads .osrm.cnbg_to_ebg
inline void readNBGMapping(const boost::filesystem::path &path, std::vector<NBGToEBG> &mapping) inline void readNBGMapping(const boost::filesystem::path &path, std::vector<NBGToEBG> &mapping)
{ {
const auto fingerprint = storage::io::FileReader::VerifyFingerprint; const auto fingerprint = storage::tar::FileReader::VerifyFingerprint;
storage::io::FileReader reader{path, fingerprint}; storage::tar::FileReader reader{path, fingerprint};
storage::serialization::read(reader, mapping); storage::serialization::read(reader, "/common/cnbg_to_ebg", mapping);
} }
// writes .osrm.cnbg_to_ebg // writes .osrm.cnbg_to_ebg
inline void writeNBGMapping(const boost::filesystem::path &path, inline void writeNBGMapping(const boost::filesystem::path &path,
const std::vector<NBGToEBG> &mapping) const std::vector<NBGToEBG> &mapping)
{ {
const auto fingerprint = storage::io::FileWriter::GenerateFingerprint; const auto fingerprint = storage::tar::FileWriter::GenerateFingerprint;
storage::io::FileWriter writer{path, fingerprint}; storage::tar::FileWriter writer{path, fingerprint};
storage::serialization::write(writer, mapping); storage::serialization::write(writer, "/common/cnbg_to_ebg", mapping);
} }
// reads .osrm.datasource_names // reads .osrm.datasource_names
inline void readDatasources(const boost::filesystem::path &path, Datasources &sources) inline void readDatasources(const boost::filesystem::path &path, Datasources &sources)
{ {
const auto fingerprint = storage::io::FileReader::VerifyFingerprint; const auto fingerprint = storage::tar::FileReader::VerifyFingerprint;
storage::io::FileReader reader{path, fingerprint}; storage::tar::FileReader reader{path, fingerprint};
serialization::read(reader, sources); serialization::read(reader, "/common/data_sources_names", sources);
} }
// writes .osrm.datasource_names // writes .osrm.datasource_names
inline void writeDatasources(const boost::filesystem::path &path, Datasources &sources) inline void writeDatasources(const boost::filesystem::path &path, Datasources &sources)
{ {
const auto fingerprint = storage::io::FileWriter::GenerateFingerprint; const auto fingerprint = storage::tar::FileWriter::GenerateFingerprint;
storage::io::FileWriter writer{path, fingerprint}; storage::tar::FileWriter writer{path, fingerprint};
serialization::write(writer, sources); serialization::write(writer, "/common/data_sources_names", sources);
} }
// reads .osrm.geometry // reads .osrm.geometry

View File

@ -64,14 +64,15 @@ inline void write(storage::tar::FileWriter &writer,
} }
// read/write for datasources file // read/write for datasources file
inline void read(storage::io::FileReader &reader, Datasources &sources) inline void read(storage::tar::FileReader &reader, const std::string& name, Datasources &sources)
{ {
reader.ReadInto(sources); sources = reader.ReadOne<Datasources>(name);
} }
inline void write(storage::io::FileWriter &writer, Datasources &sources) inline void write(storage::tar::FileWriter &writer, const std::string& name, Datasources &sources)
{ {
writer.WriteFrom(sources); writer.WriteElementCount64(name, 1);
writer.WriteOne(name, sources);
} }
// read/write for segment data file // read/write for segment data file

View File

@ -372,11 +372,6 @@ void Storage::PopulateLayout(DataLayout &layout)
make_block<DatasourceID>(number_of_compressed_geometries)); make_block<DatasourceID>(number_of_compressed_geometries));
} }
// Load datasource name sizes.
{
layout.SetBlock(DataLayout::DATASOURCES_NAMES, make_block<extractor::Datasources>(1));
}
{ {
// Loading turn lane data // Loading turn lane data
io::FileReader lane_data_file(config.GetPath(".osrm.tld"), io::FileReader lane_data_file(config.GetPath(".osrm.tld"),
@ -447,6 +442,7 @@ void Storage::PopulateLayout(DataLayout &layout)
{"/common/properties", DataLayout::PROPERTIES}, {"/common/properties", DataLayout::PROPERTIES},
{"/common/coordinates", DataLayout::COORDINATE_LIST}, {"/common/coordinates", DataLayout::COORDINATE_LIST},
{"/common/osm_node_ids/packed", DataLayout::OSM_NODE_ID_LIST}, {"/common/osm_node_ids/packed", DataLayout::OSM_NODE_ID_LIST},
{"/common/data_sources_names", DataLayout::DATASOURCES_NAMES},
}; };
std::vector<NamedBlock> blocks; std::vector<NamedBlock> blocks;
@ -460,7 +456,8 @@ void Storage::PopulateLayout(DataLayout &layout)
{OPTIONAL, config.GetPath(".osrm.hsgr")}, {OPTIONAL, config.GetPath(".osrm.hsgr")},
{REQUIRED, config.GetPath(".osrm.icd")}, {REQUIRED, config.GetPath(".osrm.icd")},
{REQUIRED, config.GetPath(".osrm.properties")}, {REQUIRED, config.GetPath(".osrm.properties")},
{REQUIRED, config.GetPath(".osrm.nbg_nodes")} {REQUIRED, config.GetPath(".osrm.nbg_nodes")},
{REQUIRED, config.GetPath(".osrm.datasource_names")}
}; };
for (const auto &file : tar_files) for (const auto &file : tar_files)