Fix the propfile properties reading/writing
This commit is contained in:
		
							parent
							
								
									383640caaf
								
							
						
					
					
						commit
						4f13208ce8
					
				| @ -70,8 +70,6 @@ class Extractor | |||||||
|                            util::DeallocatingVector<EdgeBasedEdge> &edge_based_edge_list, |                            util::DeallocatingVector<EdgeBasedEdge> &edge_based_edge_list, | ||||||
|                            const std::string &intersection_class_output_file, |                            const std::string &intersection_class_output_file, | ||||||
|                            std::vector<TurnRestriction> &turn_restrictions); |                            std::vector<TurnRestriction> &turn_restrictions); | ||||||
|     void WriteProfileProperties(const std::string &output_path, |  | ||||||
|                                 const ProfileProperties &properties) const; |  | ||||||
|     void FindComponents(unsigned max_edge_id, |     void FindComponents(unsigned max_edge_id, | ||||||
|                         const util::DeallocatingVector<EdgeBasedEdge> &input_edge_list, |                         const util::DeallocatingVector<EdgeBasedEdge> &input_edge_list, | ||||||
|                         const std::vector<EdgeBasedNodeSegment> &input_node_segments, |                         const std::vector<EdgeBasedNodeSegment> &input_node_segments, | ||||||
|  | |||||||
| @ -6,6 +6,7 @@ | |||||||
| #include "extractor/node_data_container.hpp" | #include "extractor/node_data_container.hpp" | ||||||
| #include "extractor/serialization.hpp" | #include "extractor/serialization.hpp" | ||||||
| #include "extractor/turn_data_container.hpp" | #include "extractor/turn_data_container.hpp" | ||||||
|  | #include "extractor/profile_properties.hpp" | ||||||
| 
 | 
 | ||||||
| #include "util/coordinate.hpp" | #include "util/coordinate.hpp" | ||||||
| #include "util/packed_vector.hpp" | #include "util/packed_vector.hpp" | ||||||
| @ -20,6 +21,25 @@ namespace extractor | |||||||
| namespace files | namespace files | ||||||
| { | { | ||||||
| 
 | 
 | ||||||
|  | // reads .osrm.properties
 | ||||||
|  | inline void readProfileProperties(const boost::filesystem::path &path, ProfileProperties &properties) | ||||||
|  | { | ||||||
|  |     const auto fingerprint = storage::io::FileReader::VerifyFingerprint; | ||||||
|  |     storage::io::FileReader reader{path, fingerprint}; | ||||||
|  | 
 | ||||||
|  |     serialization::read(reader, 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}; | ||||||
|  | 
 | ||||||
|  |     serialization::write(writer, properties); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| template <typename EdgeBasedEdgeVector> | template <typename EdgeBasedEdgeVector> | ||||||
| void writeEdgeBasedGraph(const boost::filesystem::path &path, | void writeEdgeBasedGraph(const boost::filesystem::path &path, | ||||||
|                          EdgeID const max_edge_id, |                          EdgeID const max_edge_id, | ||||||
|  | |||||||
| @ -7,6 +7,7 @@ | |||||||
| #include "extractor/restriction.hpp" | #include "extractor/restriction.hpp" | ||||||
| #include "extractor/segment_data_container.hpp" | #include "extractor/segment_data_container.hpp" | ||||||
| #include "extractor/turn_data_container.hpp" | #include "extractor/turn_data_container.hpp" | ||||||
|  | #include "extractor/profile_properties.hpp" | ||||||
| 
 | 
 | ||||||
| #include "storage/io.hpp" | #include "storage/io.hpp" | ||||||
| #include "storage/serialization.hpp" | #include "storage/serialization.hpp" | ||||||
| @ -20,6 +21,17 @@ namespace extractor | |||||||
| namespace serialization | namespace serialization | ||||||
| { | { | ||||||
| 
 | 
 | ||||||
|  | // read/write for properties file
 | ||||||
|  | inline void read(storage::io::FileReader &reader, ProfileProperties &properties) | ||||||
|  | { | ||||||
|  |     reader.ReadInto(properties); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | inline void write(storage::io::FileWriter &writer, const ProfileProperties &properties) | ||||||
|  | { | ||||||
|  |     writer.WriteFrom(properties); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // read/write for datasources file
 | // read/write for datasources file
 | ||||||
| inline void read(storage::io::FileReader &reader, Datasources &sources) | inline void read(storage::io::FileReader &reader, Datasources &sources) | ||||||
| { | { | ||||||
|  | |||||||
| @ -347,7 +347,7 @@ std::vector<TurnRestriction> Extractor::ParseOSMData(ScriptingEnvironment &scrip | |||||||
|                                       config.restriction_file_name, |                                       config.restriction_file_name, | ||||||
|                                       config.names_file_name); |                                       config.names_file_name); | ||||||
| 
 | 
 | ||||||
|     WriteProfileProperties(config.profile_properties_output_path, |     files::writeProfileProperties(config.profile_properties_output_path, | ||||||
|                            scripting_environment.GetProfileProperties()); |                            scripting_environment.GetProfileProperties()); | ||||||
| 
 | 
 | ||||||
|     TIMER_STOP(extracting); |     TIMER_STOP(extracting); | ||||||
| @ -356,14 +356,6 @@ std::vector<TurnRestriction> Extractor::ParseOSMData(ScriptingEnvironment &scrip | |||||||
|     return extraction_containers.unconditional_turn_restrictions; |     return extraction_containers.unconditional_turn_restrictions; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void Extractor::WriteProfileProperties(const std::string &output_path, |  | ||||||
|                                        const ProfileProperties &properties) const |  | ||||||
| { |  | ||||||
|     storage::io::FileWriter file(output_path, storage::io::FileWriter::GenerateFingerprint); |  | ||||||
| 
 |  | ||||||
|     file.WriteOne(properties); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void Extractor::FindComponents(unsigned max_edge_id, | void Extractor::FindComponents(unsigned max_edge_id, | ||||||
|                                const util::DeallocatingVector<EdgeBasedEdge> &input_edge_list, |                                const util::DeallocatingVector<EdgeBasedEdge> &input_edge_list, | ||||||
|                                const std::vector<EdgeBasedNodeSegment> &input_node_segments, |                                const std::vector<EdgeBasedNodeSegment> &input_node_segments, | ||||||
|  | |||||||
| @ -819,12 +819,9 @@ void Storage::PopulateData(const DataLayout &layout, char *memory_ptr) | |||||||
| 
 | 
 | ||||||
|     // load profile properties
 |     // load profile properties
 | ||||||
|     { |     { | ||||||
|         io::FileReader profile_properties_file(config.properties_path, |  | ||||||
|                                                io::FileReader::VerifyFingerprint); |  | ||||||
|         const auto profile_properties_ptr = layout.GetBlockPtr<extractor::ProfileProperties, true>( |         const auto profile_properties_ptr = layout.GetBlockPtr<extractor::ProfileProperties, true>( | ||||||
|             memory_ptr, DataLayout::PROPERTIES); |             memory_ptr, DataLayout::PROPERTIES); | ||||||
|         profile_properties_file.ReadInto(profile_properties_ptr, |         extractor::files::readProfileProperties(config.properties_path, *profile_properties_ptr); | ||||||
|                                          layout.num_entries[DataLayout::PROPERTIES]); |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // Load intersection data
 |     // Load intersection data
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user