Passed ResultT down to engine plugins, so now they can form replies in different formats.
This commit is contained in:
@@ -20,13 +20,11 @@ namespace service
|
||||
class BaseService
|
||||
{
|
||||
public:
|
||||
using ResultT = mapbox::util::variant<util::json::Object, std::string>;
|
||||
|
||||
BaseService(OSRM &routing_machine) : routing_machine(routing_machine) {}
|
||||
virtual ~BaseService() = default;
|
||||
|
||||
virtual engine::Status
|
||||
RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) = 0;
|
||||
RunQuery(std::size_t prefix_length, std::string &query, osrm::engine::api::ResultT &result) = 0;
|
||||
|
||||
virtual unsigned GetVersion() = 0;
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ class MatchService final : public BaseService
|
||||
MatchService(OSRM &routing_machine) : BaseService(routing_machine) {}
|
||||
|
||||
engine::Status
|
||||
RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) final override;
|
||||
RunQuery(std::size_t prefix_length, std::string &query, osrm::engine::api::ResultT &result) final override;
|
||||
|
||||
unsigned GetVersion() final override { return 1; }
|
||||
};
|
||||
|
||||
@@ -23,7 +23,7 @@ class NearestService final : public BaseService
|
||||
NearestService(OSRM &routing_machine) : BaseService(routing_machine) {}
|
||||
|
||||
engine::Status
|
||||
RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) final override;
|
||||
RunQuery(std::size_t prefix_length, std::string &query, osrm::engine::api::ResultT &result) final override;
|
||||
|
||||
unsigned GetVersion() final override { return 1; }
|
||||
};
|
||||
|
||||
@@ -23,7 +23,7 @@ class RouteService final : public BaseService
|
||||
RouteService(OSRM &routing_machine) : BaseService(routing_machine) {}
|
||||
|
||||
engine::Status
|
||||
RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) final override;
|
||||
RunQuery(std::size_t prefix_length, std::string &query, osrm::engine::api::ResultT &result) final override;
|
||||
|
||||
unsigned GetVersion() final override { return 1; }
|
||||
};
|
||||
|
||||
@@ -23,7 +23,7 @@ class TableService final : public BaseService
|
||||
TableService(OSRM &routing_machine) : BaseService(routing_machine) {}
|
||||
|
||||
engine::Status
|
||||
RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) final override;
|
||||
RunQuery(std::size_t prefix_length, std::string &query, osrm::engine::api::ResultT &result) final override;
|
||||
|
||||
unsigned GetVersion() final override { return 1; }
|
||||
};
|
||||
|
||||
@@ -23,7 +23,7 @@ class TileService final : public BaseService
|
||||
TileService(OSRM &routing_machine) : BaseService(routing_machine) {}
|
||||
|
||||
engine::Status
|
||||
RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) final override;
|
||||
RunQuery(std::size_t prefix_length, std::string &query, osrm::engine::api::ResultT &result) final override;
|
||||
|
||||
unsigned GetVersion() final override { return 1; }
|
||||
};
|
||||
|
||||
@@ -23,7 +23,7 @@ class TripService final : public BaseService
|
||||
TripService(OSRM &routing_machine) : BaseService(routing_machine) {}
|
||||
|
||||
engine::Status
|
||||
RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) final override;
|
||||
RunQuery(std::size_t prefix_length, std::string &query, osrm::engine::api::ResultT &result) final override;
|
||||
|
||||
unsigned GetVersion() final override { return 1; }
|
||||
};
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "server/service/base_service.hpp"
|
||||
|
||||
#include "osrm/osrm.hpp"
|
||||
#include "engine/api/base_api.hpp"
|
||||
|
||||
#include <unordered_map>
|
||||
|
||||
@@ -28,14 +29,14 @@ class ServiceHandlerInterface
|
||||
public:
|
||||
virtual ~ServiceHandlerInterface() {}
|
||||
virtual engine::Status RunQuery(api::ParsedURL parsed_url,
|
||||
service::BaseService::ResultT &result) = 0;
|
||||
osrm::engine::api::ResultT &result) = 0;
|
||||
};
|
||||
|
||||
class ServiceHandler final : public ServiceHandlerInterface
|
||||
{
|
||||
public:
|
||||
ServiceHandler(osrm::EngineConfig &config);
|
||||
using ResultT = service::BaseService::ResultT;
|
||||
using ResultT = osrm::engine::api::ResultT;
|
||||
|
||||
virtual engine::Status RunQuery(api::ParsedURL parsed_url, ResultT &result) override;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user