We don't need templates at all, this is not CRTP?
This commit is contained in:
		
							parent
							
								
									f10da205bb
								
							
						
					
					
						commit
						2617960d6c
					
				| @ -18,12 +18,10 @@ namespace engine | ||||
| namespace api | ||||
| { | ||||
| 
 | ||||
| namespace detail | ||||
| { | ||||
| template <typename ChildT> class BaseAPI_ | ||||
| class BaseAPI | ||||
| { | ||||
|   public: | ||||
|     BaseAPI_(const datafacade::BaseDataFacade &facade_, const BaseParameters ¶meters_) | ||||
|     BaseAPI(const datafacade::BaseDataFacade &facade_, const BaseParameters ¶meters_) | ||||
|         : facade(facade_), parameters(parameters_) | ||||
|     { | ||||
|     } | ||||
| @ -59,12 +57,9 @@ template <typename ChildT> class BaseAPI_ | ||||
|     const datafacade::BaseDataFacade &facade; | ||||
|     const BaseParameters ¶meters; | ||||
| }; | ||||
| } | ||||
| 
 | ||||
| // Only expose non-templated version
 | ||||
| using BaseAPI = detail::BaseAPI_<std::true_type>; | ||||
| } | ||||
| } | ||||
| } | ||||
| } // ns api
 | ||||
| } // ns engine
 | ||||
| } // ns osrm
 | ||||
| 
 | ||||
| #endif | ||||
|  | ||||
| @ -24,15 +24,11 @@ namespace engine | ||||
| namespace api | ||||
| { | ||||
| 
 | ||||
| namespace detail | ||||
| class RouteAPI final : public BaseAPI | ||||
| { | ||||
| template <typename ChildT> class RouteAPI_ : public BaseAPI_<RouteAPI_<ChildT>> | ||||
| { | ||||
|     using BaseT = BaseAPI_<RouteAPI_<ChildT>>; | ||||
| 
 | ||||
|   public: | ||||
|     RouteAPI_(const datafacade::BaseDataFacade &facade_, const RouteParameters ¶meters_) | ||||
|         : BaseT(facade_, parameters_), parameters(parameters_) | ||||
|     RouteAPI(const datafacade::BaseDataFacade &facade_, const RouteParameters ¶meters_) | ||||
|         : BaseAPI(facade_, parameters_), parameters(parameters_) | ||||
|     { | ||||
|     } | ||||
| 
 | ||||
| @ -53,7 +49,7 @@ template <typename ChildT> class RouteAPI_ : public BaseAPI_<RouteAPI_<ChildT>> | ||||
|                                          raw_route.alt_source_traversed_in_reverse, | ||||
|                                          raw_route.alt_target_traversed_in_reverse); | ||||
|         } | ||||
|         response.values["waypoints"] = BaseT::MakeWaypoints(raw_route.segment_end_coordinates); | ||||
|         response.values["waypoints"] = BaseAPI::MakeWaypoints(raw_route.segment_end_coordinates); | ||||
|         response.values["routes"] = std::move(routes); | ||||
|         response.values["code"] = "ok"; | ||||
|     } | ||||
| @ -90,15 +86,16 @@ template <typename ChildT> class RouteAPI_ : public BaseAPI_<RouteAPI_<ChildT>> | ||||
|             const bool reversed_target = target_traversed_in_reverse[idx]; | ||||
| 
 | ||||
|             auto leg_geometry = guidance::assembleGeometry( | ||||
|                 BaseT::facade, path_data, phantoms.source_phantom, phantoms.target_phantom); | ||||
|             auto leg = guidance::assembleLeg(BaseT::facade, path_data, leg_geometry, phantoms.source_phantom, | ||||
|                                       phantoms.target_phantom, reversed_source, reversed_target); | ||||
|                 BaseAPI::facade, path_data, phantoms.source_phantom, phantoms.target_phantom); | ||||
|             auto leg = guidance::assembleLeg(BaseAPI::facade, path_data, leg_geometry, | ||||
|                                              phantoms.source_phantom, phantoms.target_phantom, | ||||
|                                              reversed_source, reversed_target); | ||||
| 
 | ||||
|             if (parameters.steps) | ||||
|             { | ||||
|                 leg.steps = guidance::assembleSteps(BaseT::facade, | ||||
|                     path_data, leg_geometry, phantoms.source_phantom, phantoms.target_phantom, | ||||
|                     reversed_source, reversed_target); | ||||
|                 leg.steps = guidance::assembleSteps( | ||||
|                     BaseAPI::facade, path_data, leg_geometry, phantoms.source_phantom, | ||||
|                     phantoms.target_phantom, reversed_source, reversed_target); | ||||
|             } | ||||
| 
 | ||||
|             leg_geometries.push_back(std::move(leg_geometry)); | ||||
| @ -123,13 +120,9 @@ template <typename ChildT> class RouteAPI_ : public BaseAPI_<RouteAPI_<ChildT>> | ||||
| 
 | ||||
|     const RouteParameters ¶meters; | ||||
| }; | ||||
| } | ||||
| 
 | ||||
| // Expose non-templated version
 | ||||
| using RouteAPI = detail::RouteAPI_<std::true_type>; | ||||
| 
 | ||||
| } | ||||
| } | ||||
| } | ||||
| } // ns api
 | ||||
| } // ns engine
 | ||||
| } // ns osrm
 | ||||
| 
 | ||||
| #endif | ||||
|  | ||||
| @ -24,15 +24,11 @@ namespace engine | ||||
| namespace api | ||||
| { | ||||
| 
 | ||||
| namespace detail | ||||
| class TableAPI final : public BaseAPI | ||||
| { | ||||
| template <typename ChildT> class TableAPI_ : public BaseAPI_<TableAPI_<ChildT>> | ||||
| { | ||||
|     using BaseT = BaseAPI_<TableAPI_<ChildT>>; | ||||
| 
 | ||||
|   public: | ||||
|     TableAPI_(const datafacade::BaseDataFacade &facade_, const TableParameters ¶meters_) | ||||
|         : BaseT(facade_, parameters_), parameters(parameters_) | ||||
|     TableAPI(const datafacade::BaseDataFacade &facade_, const TableParameters ¶meters_) | ||||
|         : BaseAPI(facade_, parameters_), parameters(parameters_) | ||||
|     { | ||||
|     } | ||||
| 
 | ||||
| @ -69,7 +65,7 @@ template <typename ChildT> class TableAPI_ : public BaseAPI_<TableAPI_<ChildT>> | ||||
|         for (; phantom_iter != phantoms.end() && coordinate_iter != parameters.coordinates.end(); | ||||
|              ++phantom_iter, ++coordinate_iter) | ||||
|         { | ||||
|             json_waypoints.values.push_back(BaseT::MakeWaypoint(*coordinate_iter, *phantom_iter)); | ||||
|             json_waypoints.values.push_back(BaseAPI::MakeWaypoint(*coordinate_iter, *phantom_iter)); | ||||
|         } | ||||
|         return json_waypoints; | ||||
|     } | ||||
| @ -83,7 +79,7 @@ template <typename ChildT> class TableAPI_ : public BaseAPI_<TableAPI_<ChildT>> | ||||
|         { | ||||
|             BOOST_ASSERT(idx < phantoms.size() && idx < parameters.coordinates.size()); | ||||
|             json_waypoints.values.push_back( | ||||
|                 BaseT::MakeWaypoint(parameters.coordinates[idx], phantoms[idx])); | ||||
|                 BaseAPI::MakeWaypoint(parameters.coordinates[idx], phantoms[idx])); | ||||
|         } | ||||
|         return json_waypoints; | ||||
|     } | ||||
| @ -106,12 +102,9 @@ template <typename ChildT> class TableAPI_ : public BaseAPI_<TableAPI_<ChildT>> | ||||
| 
 | ||||
|     const TableParameters ¶meters; | ||||
| }; | ||||
| } | ||||
| 
 | ||||
| // Expose non-templated version
 | ||||
| using TableAPI = detail::TableAPI_<std::true_type>; | ||||
| } | ||||
| } | ||||
| } | ||||
| } // ns api
 | ||||
| } // ns engine
 | ||||
| } // ns osrm
 | ||||
| 
 | ||||
| #endif | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user