/
srv
/
osrm
/
osrm-backend
/
src
/
osrm
/
/srv/osrm/osrm-backend/src/osrm
mkdir
upload
Name
Size
Mode
Actions
contractor.cpp
274
0644
edit
dl
rm
customizer.cpp
260
0644
edit
dl
rm
extractor.cpp
533
0644
edit
dl
rm
osrm.cpp
4516
0644
edit
dl
rm
partitioner.cpp
264
0644
edit
dl
rm
Edit:
/srv/osrm/osrm-backend/src/osrm/osrm.cpp
(4516B)
#include "osrm/osrm.hpp" #include "engine/algorithm.hpp" #include "engine/api/match_parameters.hpp" #include "engine/api/nearest_parameters.hpp" #include "engine/api/route_parameters.hpp" #include "engine/api/table_parameters.hpp" #include "engine/api/trip_parameters.hpp" #include "engine/engine.hpp" #include "engine/engine_config.hpp" #include "engine/status.hpp" #include <boost/algorithm/string/join.hpp> #include <memory> namespace osrm { // Pimpl idiom OSRM::OSRM(engine::EngineConfig &config) { using CH = engine::routing_algorithms::ch::Algorithm; using MLD = engine::routing_algorithms::mld::Algorithm; // First, check that necessary core data is available if (!config.use_shared_memory && !config.storage_config.IsValid()) { const auto &missingFiles = config.storage_config.GetMissingFiles(); throw util::exception("Required files are missing, cannot continue. Have all the " "pre-processing steps been run? " "Missing files: " + boost::algorithm::join(missingFiles, ", ")); } // Now, check that the algorithm requested can be used with the data // that's available. if (config.algorithm == EngineConfig::Algorithm::CoreCH) { util::Log(logWARNING) << "Using CoreCH is deprecated. Falling back to CH"; config.algorithm = EngineConfig::Algorithm::CH; } switch (config.algorithm) { case EngineConfig::Algorithm::CH: engine_ = std::make_unique<engine::Engine<CH>>(config); break; case EngineConfig::Algorithm::MLD: engine_ = std::make_unique<engine::Engine<MLD>>(config); break; default: throw util::exception("Algorithm not implemented!"); } } OSRM::~OSRM() = default; OSRM::OSRM(OSRM &&) noexcept = default; OSRM &OSRM::operator=(OSRM &&) noexcept = default; // Forward to implementation Status OSRM::Route(const engine::api::RouteParameters ¶ms, json::Object &json_result) const { osrm::engine::api::ResultT result = json::Object(); auto status = engine_->Route(params, result); json_result = std::move(result.get<json::Object>()); return status; } Status OSRM::Route(const RouteParameters ¶ms, engine::api::ResultT &result) const { return engine_->Route(params, result); } Status OSRM::Table(const engine::api::TableParameters ¶ms, json::Object &json_result) const { osrm::engine::api::ResultT result = json::Object(); auto status = engine_->Table(params, result); json_result = std::move(result.get<json::Object>()); return status; } Status OSRM::Table(const TableParameters ¶ms, engine::api::ResultT &result) const { return engine_->Table(params, result); } Status OSRM::Nearest(const engine::api::NearestParameters ¶ms, json::Object &json_result) const { osrm::engine::api::ResultT result = json::Object(); auto status = engine_->Nearest(params, result); json_result = std::move(result.get<json::Object>()); return status; } Status OSRM::Nearest(const NearestParameters ¶ms, engine::api::ResultT &result) const { return engine_->Nearest(params, result); } Status OSRM::Trip(const engine::api::TripParameters ¶ms, json::Object &json_result) const { osrm::engine::api::ResultT result = json::Object(); auto status = engine_->Trip(params, result); json_result = std::move(result.get<json::Object>()); return status; } engine::Status OSRM::Trip(const engine::api::TripParameters ¶ms, engine::api::ResultT &result) const { return engine_->Trip(params, result); } Status OSRM::Match(const engine::api::MatchParameters ¶ms, json::Object &json_result) const { osrm::engine::api::ResultT result = json::Object(); auto status = engine_->Match(params, result); json_result = std::move(result.get<json::Object>()); return status; } Status OSRM::Match(const MatchParameters ¶ms, engine::api::ResultT &result) const { return engine_->Match(params, result); } Status OSRM::Tile(const engine::api::TileParameters ¶ms, std::string &str_result) const { osrm::engine::api::ResultT result = std::string(); auto status = engine_->Tile(params, result); str_result = std::move(result.get<std::string>()); return status; } Status OSRM::Tile(const engine::api::TileParameters ¶ms, engine::api::ResultT &result) const { return engine_->Tile(params, result); } } // namespace osrm
Save
cmd:
run