Passed ResultT down to engine plugins, so now they can form replies in different formats.

This commit is contained in:
Denis Chaplygin
2019-08-02 17:40:55 +03:00
parent f6f86b2a52
commit 75aadb0f3f
32 changed files with 136 additions and 99 deletions
+1 -3
View File
@@ -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;
+1 -1
View File
@@ -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; }
};
+1 -1
View File
@@ -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; }
};
+1 -1
View File
@@ -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; }
};
+1 -1
View File
@@ -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; }
};
+1 -1
View File
@@ -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; }
};
+1 -1
View File
@@ -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; }
};
+3 -2
View File
@@ -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;