osrm-backend/include/server/service_handler.hpp

50 lines
927 B
C++
Raw Normal View History

2016-01-28 10:28:44 -05:00
#ifndef SERVER_SERVICE_HANLDER_HPP
#define SERVER_SERVICE_HANLDER_HPP
#include "server/service/base_service.hpp"
#include "osrm/osrm.hpp"
#include <unordered_map>
namespace osrm
{
namespace util
{
namespace json
{
struct Object;
}
}
namespace server
{
namespace api
{
struct ParsedURL;
}
2016-10-27 06:26:23 -04:00
class ServiceHandlerInterface
{
public:
2016-10-27 06:26:23 -04:00
virtual ~ServiceHandlerInterface() {}
virtual engine::Status RunQuery(api::ParsedURL parsed_url,
service::BaseService::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);
2016-03-02 19:48:30 -05:00
using ResultT = service::BaseService::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;
};
}
}
#endif