#ifndef VIA_ROUTE_HPP #define VIA_ROUTE_HPP #include "engine/api/route_api.hpp" #include "engine/datafacade/datafacade_base.hpp" #include "engine/plugins/plugin_base.hpp" #include "engine/routing_algorithms/alternative_path.hpp" #include "engine/routing_algorithms/direct_shortest_path.hpp" #include "engine/routing_algorithms/shortest_path.hpp" #include "engine/search_engine_data.hpp" #include "util/json_container.hpp" #include #include #include #include #include namespace osrm { namespace engine { namespace plugins { class ViaRoutePlugin final : public BasePlugin { private: SearchEngineData heaps; routing_algorithms::ShortestPathRouting shortest_path; routing_algorithms::AlternativeRouting alternative_path; routing_algorithms::DirectShortestPathRouting direct_shortest_path; int max_locations_viaroute; public: explicit ViaRoutePlugin(int max_locations_viaroute); Status HandleRequest(const std::shared_ptr facade, const api::RouteParameters &route_parameters, util::json::Object &json_result); }; } } } #endif // VIA_ROUTE_HPP