2016-01-28 10:28:44 -05:00
|
|
|
#ifndef SERVER_SERVICE_HANLDER_HPP
|
|
|
|
#define SERVER_SERVICE_HANLDER_HPP
|
|
|
|
|
|
|
|
#include "server/service/base_service.hpp"
|
|
|
|
|
2019-08-02 10:40:55 -04:00
|
|
|
#include "engine/api/base_api.hpp"
|
2019-08-15 04:40:23 -04:00
|
|
|
#include "osrm/osrm.hpp"
|
2016-01-28 10:28:44 -05:00
|
|
|
|
|
|
|
#include <unordered_map>
|
|
|
|
|
|
|
|
namespace osrm
|
|
|
|
{
|
|
|
|
namespace util
|
|
|
|
{
|
|
|
|
namespace json
|
|
|
|
{
|
|
|
|
struct Object;
|
|
|
|
}
|
2020-11-26 10:21:39 -05:00
|
|
|
} // namespace util
|
2016-01-28 10:28:44 -05:00
|
|
|
namespace server
|
|
|
|
{
|
|
|
|
namespace api
|
|
|
|
{
|
|
|
|
struct ParsedURL;
|
|
|
|
}
|
|
|
|
|
2016-10-27 06:26:23 -04:00
|
|
|
class ServiceHandlerInterface
|
|
|
|
{
|
2016-11-03 05:18:27 -04:00
|
|
|
public:
|
2016-10-27 06:26:23 -04:00
|
|
|
virtual ~ServiceHandlerInterface() {}
|
2016-11-03 05:18:27 -04:00
|
|
|
virtual engine::Status RunQuery(api::ParsedURL parsed_url,
|
2019-08-02 10:40:55 -04:00
|
|
|
osrm::engine::api::ResultT &result) = 0;
|
2016-10-27 06:26:23 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
class ServiceHandler final : public ServiceHandlerInterface
|
2016-01-28 10:28:44 -05:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
ServiceHandler(osrm::EngineConfig &config);
|
2019-08-02 10:40:55 -04:00
|
|
|
using ResultT = osrm::engine::api::ResultT;
|
2016-01-28 10:28:44 -05:00
|
|
|
|
2016-10-27 06:26:23 -04:00
|
|
|
virtual engine::Status RunQuery(api::ParsedURL parsed_url, ResultT &result) override;
|
2016-01-28 10:28:44 -05:00
|
|
|
|
|
|
|
private:
|
|
|
|
std::unordered_map<std::string, std::unique_ptr<service::BaseService>> service_map;
|
|
|
|
OSRM routing_machine;
|
|
|
|
};
|
2020-11-26 10:21:39 -05:00
|
|
|
} // namespace server
|
|
|
|
} // namespace osrm
|
2016-01-28 10:28:44 -05:00
|
|
|
|
|
|
|
#endif
|