Fix grammar constraint and enable all plugin links

This commit is contained in:
Daniel J. Hofmann 2016-02-17 15:34:13 -08:00 committed by Patrick Niklaus
parent e466cbe0ce
commit c59647ad2f
2 changed files with 17 additions and 20 deletions

View File

@ -21,7 +21,6 @@ namespace api
namespace detail namespace detail
{ {
template <typename T> using is_parameter_t = std::is_base_of<engine::api::BaseParameters, T>; template <typename T> using is_parameter_t = std::is_base_of<engine::api::BaseParameters, T>;
template <typename T> using is_grammar_t = std::is_base_of<BaseParametersGrammar, T>;
} // ns detail } // ns detail
// Starts parsing and iter and modifies it until iter == end or parsing failed // Starts parsing and iter and modifies it until iter == end or parsing failed

View File

@ -3,10 +3,8 @@
#include "server/api/route_parameters_grammar.hpp" #include "server/api/route_parameters_grammar.hpp"
#include "server/api/table_parameter_grammar.hpp" #include "server/api/table_parameter_grammar.hpp"
#include "server/api/nearest_parameter_grammar.hpp" #include "server/api/nearest_parameter_grammar.hpp"
//#include "server/api/trip_parameter_grammar.hpp" #include "server/api/trip_parameter_grammar.hpp"
//#include "server/api/match_parameter_grammar.hpp" #include "server/api/match_parameter_grammar.hpp"
#include <type_traits>
namespace osrm namespace osrm
{ {
@ -17,11 +15,12 @@ namespace api
namespace detail namespace detail
{ {
template <typename T> using is_grammar_t = std::is_base_of<BaseParametersGrammar, T>;
template <typename ParameterT, template <typename ParameterT,
typename GrammarT, typename GrammarT,
typename std::enable_if<detail::is_parameter_t<ParameterT>::value, int>::type = 0, typename std::enable_if<detail::is_parameter_t<ParameterT>::value, int>::type = 0,
typename std::enable_if<detail::is_grammar_t<ParameterT>::value, int>::type = 0> typename std::enable_if<detail::is_grammar_t<GrammarT>::value, int>::type = 0>
boost::optional<ParameterT> parseParameters(std::string::iterator &iter, std::string::iterator end) boost::optional<ParameterT> parseParameters(std::string::iterator &iter, std::string::iterator end)
{ {
GrammarT grammar; GrammarT grammar;
@ -57,20 +56,19 @@ boost::optional<engine::api::NearestParameters> parseParameters(std::string::ite
end); end);
} }
// template <> template <>
// boost::optional<engine::api::TripParameters> parseParameters(std::string::iterator &iter, boost::optional<engine::api::TripParameters> parseParameters(std::string::iterator &iter,
// std::string::iterator end) std::string::iterator end)
//{ {
// return detail::parseParameters<engine::api::TripParameters, TripParametersGrammar>(iter, end); return detail::parseParameters<engine::api::TripParameters, TripParametersGrammar>(iter, end);
//} }
//
// template <> template <>
// boost::optional<engine::api::MatchParameters> parseParameters(std::string::iterator &iter, boost::optional<engine::api::MatchParameters> parseParameters(std::string::iterator &iter,
// std::string::iterator end) std::string::iterator end)
//{ {
// return detail::parseParameters<engine::api::MatchParameters, MatchParametersGrammar>(iter, return detail::parseParameters<engine::api::MatchParameters, MatchParametersGrammar>(iter, end);
// end); }
//}
} // ns api } // ns api
} // ns server } // ns server