Fix syntax error position indicators in parameters queries

To fix #2193 prefix_length member variable has been added to ParsedURL
that is set to the length of "/service/version/profile/" prefix
when the prefix is accepted by the parser.
Also BOOST_FUSION_ADAPT_STRUCT for osrm::server::api::ParsedURL
has been moved from header to url_parser.cpp to speed up compilation
of CUs that do not use the fusion adaption.
This commit is contained in:
Michael Krasnyk
2016-04-26 21:20:24 +02:00
parent e9e935303c
commit 5186b9490d
18 changed files with 64 additions and 51 deletions
+1 -9
View File
@@ -3,8 +3,6 @@
#include "util/coordinate.hpp"
#include <boost/fusion/include/adapt_struct.hpp>
#include <string>
#include <vector>
@@ -21,17 +19,11 @@ struct ParsedURL final
unsigned version;
std::string profile;
std::string query;
std::size_t prefix_length;
};
} // api
} // server
} // osrm
BOOST_FUSION_ADAPT_STRUCT(osrm::server::api::ParsedURL,
(std::string, service)
(unsigned, version)
(std::string, profile)
(std::string, query)
)
#endif
+1 -1
View File
@@ -25,7 +25,7 @@ class BaseService
BaseService(OSRM &routing_machine) : routing_machine(routing_machine) {}
virtual ~BaseService() = default;
virtual engine::Status RunQuery(std::string &query, ResultT &result) = 0;
virtual engine::Status RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) = 0;
virtual unsigned GetVersion() = 0;
+1 -1
View File
@@ -22,7 +22,7 @@ class MatchService final : public BaseService
public:
MatchService(OSRM &routing_machine) : BaseService(routing_machine) {}
engine::Status RunQuery(std::string &query, ResultT &result) final override;
engine::Status RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) final override;
unsigned GetVersion() final override { return 1; }
};
+1 -1
View File
@@ -22,7 +22,7 @@ class NearestService final : public BaseService
public:
NearestService(OSRM &routing_machine) : BaseService(routing_machine) {}
engine::Status RunQuery(std::string &query, ResultT &result) final override;
engine::Status RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) final override;
unsigned GetVersion() final override { return 1; }
};
+1 -1
View File
@@ -22,7 +22,7 @@ class RouteService final : public BaseService
public:
RouteService(OSRM &routing_machine) : BaseService(routing_machine) {}
engine::Status RunQuery(std::string &query, ResultT &result) final override;
engine::Status RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) final override;
unsigned GetVersion() final override { return 1; }
};
+1 -1
View File
@@ -22,7 +22,7 @@ class TableService final : public BaseService
public:
TableService(OSRM &routing_machine) : BaseService(routing_machine) {}
engine::Status RunQuery(std::string &query, ResultT &result) final override;
engine::Status RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) final override;
unsigned GetVersion() final override { return 1; }
};
+1 -1
View File
@@ -22,7 +22,7 @@ class TileService final : public BaseService
public:
TileService(OSRM &routing_machine) : BaseService(routing_machine) {}
engine::Status RunQuery(std::string &query, ResultT &result) final override;
engine::Status RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) final override;
unsigned GetVersion() final override { return 1; }
};
+1 -1
View File
@@ -22,7 +22,7 @@ class TripService final : public BaseService
public:
TripService(OSRM &routing_machine) : BaseService(routing_machine) {}
engine::Status RunQuery(std::string &query, ResultT &result) final override;
engine::Status RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) final override;
unsigned GetVersion() final override { return 1; }
};