superclass updater_config with io_config

This commit is contained in:
Pepijn Schoen 2017-04-19 13:11:11 +02:00 committed by Daniel J. H
parent fe00a8a0ca
commit 29160eec9c
2 changed files with 12 additions and 40 deletions

View File

@ -33,52 +33,24 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <chrono> #include <chrono>
#include <string> #include <string>
#include "storage/io_config.hpp"
#include "storage/storage_config.hpp"
namespace osrm namespace osrm
{ {
namespace updater namespace updater
{ {
struct UpdaterConfig final struct UpdaterConfig final : storage::IOConfig
{ {
// Infer the output names from the path of the .osrm file UpdaterConfig() {}
void UseDefaultOutputNames() UpdaterConfig(const boost::filesystem::path &base) : IOConfig(base) {}
{
edge_based_graph_path = osrm_input_path.string() + ".ebg";
turn_weight_penalties_path = osrm_input_path.string() + ".turn_weight_penalties";
turn_duration_penalties_path = osrm_input_path.string() + ".turn_duration_penalties";
turn_penalties_index_path = osrm_input_path.string() + ".turn_penalties_index";
node_based_nodes_data_path = osrm_input_path.string() + ".nbg_nodes";
edge_based_nodes_data_path = osrm_input_path.string() + ".ebg_nodes";
edge_data_path = osrm_input_path.string() + ".edges";
geometry_path = osrm_input_path.string() + ".geometry";
rtree_leaf_path = osrm_input_path.string() + ".fileIndex";
datasource_names_path = osrm_input_path.string() + ".datasource_names";
profile_properties_path = osrm_input_path.string() + ".properties";
turn_restrictions_path = osrm_input_path.string() + ".restrictions";
}
boost::filesystem::path osrm_input_path;
std::string edge_based_graph_path;
std::string turn_weight_penalties_path;
std::string turn_duration_penalties_path;
std::string turn_penalties_index_path;
std::string node_based_nodes_data_path;
std::string edge_based_nodes_data_path;
std::string edge_data_path;
std::string geometry_path;
std::string rtree_leaf_path;
double log_edge_updates_factor; double log_edge_updates_factor;
std::time_t valid_now; std::time_t valid_now;
std::vector<std::string> segment_speed_lookup_paths; std::vector<std::string> segment_speed_lookup_paths;
std::vector<std::string> turn_penalty_lookup_paths; std::vector<std::string> turn_penalty_lookup_paths;
std::string datasource_names_path;
std::string profile_properties_path;
std::string turn_restrictions_path;
std::string tz_file_path;
}; };
} }
} }

View File

@ -105,13 +105,13 @@ void checkWeightsConsistency(
const std::vector<osrm::extractor::EdgeBasedEdge> &edge_based_edge_list) const std::vector<osrm::extractor::EdgeBasedEdge> &edge_based_edge_list)
{ {
extractor::SegmentDataContainer segment_data; extractor::SegmentDataContainer segment_data;
extractor::files::readSegmentData(config.geometry_path, segment_data); extractor::files::readSegmentData(config.geometries_path, segment_data);
extractor::EdgeBasedNodeDataContainer node_data; extractor::EdgeBasedNodeDataContainer node_data;
extractor::files::readNodeData(config.osrm_input_path.string() + ".ebg_nodes", node_data); extractor::files::readNodeData(config.osrm_input_path.string() + ".ebg_nodes", node_data);
extractor::TurnDataContainer turn_data; extractor::TurnDataContainer turn_data;
extractor::files::readTurnData(config.osrm_input_path.string() + ".edges", turn_data); extractor::files::readTurnData(config.edges_data_path, turn_data);
for (auto &edge : edge_based_edge_list) for (auto &edge : edge_based_edge_list)
{ {
@ -593,7 +593,7 @@ Updater::LoadAndUpdateEdgeExpandedGraph(std::vector<extractor::EdgeBasedEdge> &e
if (update_edge_weights || update_turn_penalties || update_conditional_turns) if (update_edge_weights || update_turn_penalties || update_conditional_turns)
{ {
const auto load_segment_data = [&] { const auto load_segment_data = [&] {
extractor::files::readSegmentData(config.geometry_path, segment_data); extractor::files::readSegmentData(config.geometries_path, segment_data);
}; };
const auto load_node_data = [&] { const auto load_node_data = [&] {
@ -601,7 +601,7 @@ Updater::LoadAndUpdateEdgeExpandedGraph(std::vector<extractor::EdgeBasedEdge> &e
}; };
const auto load_edge_data = [&] { const auto load_edge_data = [&] {
extractor::files::readTurnData(config.edge_data_path, turn_data); extractor::files::readTurnData(config.edges_data_path, turn_data);
}; };
const auto load_turn_weight_penalties = [&] { const auto load_turn_weight_penalties = [&] {
@ -619,7 +619,7 @@ Updater::LoadAndUpdateEdgeExpandedGraph(std::vector<extractor::EdgeBasedEdge> &e
const auto load_profile_properties = [&] { const auto load_profile_properties = [&] {
// Propagate profile properties to contractor configuration structure // Propagate profile properties to contractor configuration structure
storage::io::FileReader profile_properties_file( storage::io::FileReader profile_properties_file(
config.profile_properties_path, storage::io::FileReader::VerifyFingerprint); config.properties_path, storage::io::FileReader::VerifyFingerprint);
profile_properties = profile_properties_file.ReadOne<extractor::ProfileProperties>(); profile_properties = profile_properties_file.ReadOne<extractor::ProfileProperties>();
}; };
@ -652,7 +652,7 @@ Updater::LoadAndUpdateEdgeExpandedGraph(std::vector<extractor::EdgeBasedEdge> &e
coordinates, coordinates,
osm_node_ids); osm_node_ids);
// Now save out the updated compressed geometries // Now save out the updated compressed geometries
extractor::files::writeSegmentData(config.geometry_path, segment_data); extractor::files::writeSegmentData(config.geometries_path, segment_data);
TIMER_STOP(segment); TIMER_STOP(segment);
util::Log() << "Updating segment data took " << TIMER_MSEC(segment) << "ms."; util::Log() << "Updating segment data took " << TIMER_MSEC(segment) << "ms.";
} }