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 api | ||||||
| { | { | ||||||
| 
 | 
 | ||||||
| namespace detail | class BaseAPI | ||||||
| { |  | ||||||
| template <typename ChildT> class BaseAPI_ |  | ||||||
| { | { | ||||||
|   public: |   public: | ||||||
|     BaseAPI_(const datafacade::BaseDataFacade &facade_, const BaseParameters ¶meters_) |     BaseAPI(const datafacade::BaseDataFacade &facade_, const BaseParameters ¶meters_) | ||||||
|         : facade(facade_), parameters(parameters_) |         : facade(facade_), parameters(parameters_) | ||||||
|     { |     { | ||||||
|     } |     } | ||||||
| @ -59,12 +57,9 @@ template <typename ChildT> class BaseAPI_ | |||||||
|     const datafacade::BaseDataFacade &facade; |     const datafacade::BaseDataFacade &facade; | ||||||
|     const BaseParameters ¶meters; |     const BaseParameters ¶meters; | ||||||
| }; | }; | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| // Only expose non-templated version
 | } // ns api
 | ||||||
| using BaseAPI = detail::BaseAPI_<std::true_type>; | } // ns engine
 | ||||||
| } | } // ns osrm
 | ||||||
| } |  | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| #endif | #endif | ||||||
|  | |||||||
| @ -24,15 +24,11 @@ namespace engine | |||||||
| namespace api | namespace api | ||||||
| { | { | ||||||
| 
 | 
 | ||||||
| namespace detail | class RouteAPI final : public BaseAPI | ||||||
| { | { | ||||||
| template <typename ChildT> class RouteAPI_ : public BaseAPI_<RouteAPI_<ChildT>> |  | ||||||
| { |  | ||||||
|     using BaseT = BaseAPI_<RouteAPI_<ChildT>>; |  | ||||||
| 
 |  | ||||||
|   public: |   public: | ||||||
|     RouteAPI_(const datafacade::BaseDataFacade &facade_, const RouteParameters ¶meters_) |     RouteAPI(const datafacade::BaseDataFacade &facade_, const RouteParameters ¶meters_) | ||||||
|         : BaseT(facade_, parameters_), parameters(parameters_) |         : 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_source_traversed_in_reverse, | ||||||
|                                          raw_route.alt_target_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["routes"] = std::move(routes); | ||||||
|         response.values["code"] = "ok"; |         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]; |             const bool reversed_target = target_traversed_in_reverse[idx]; | ||||||
| 
 | 
 | ||||||
|             auto leg_geometry = guidance::assembleGeometry( |             auto leg_geometry = guidance::assembleGeometry( | ||||||
|                 BaseT::facade, path_data, phantoms.source_phantom, phantoms.target_phantom); |                 BaseAPI::facade, path_data, phantoms.source_phantom, phantoms.target_phantom); | ||||||
|             auto leg = guidance::assembleLeg(BaseT::facade, path_data, leg_geometry, phantoms.source_phantom, |             auto leg = guidance::assembleLeg(BaseAPI::facade, path_data, leg_geometry, | ||||||
|                                       phantoms.target_phantom, reversed_source, reversed_target); |                                              phantoms.source_phantom, phantoms.target_phantom, | ||||||
|  |                                              reversed_source, reversed_target); | ||||||
| 
 | 
 | ||||||
|             if (parameters.steps) |             if (parameters.steps) | ||||||
|             { |             { | ||||||
|                 leg.steps = guidance::assembleSteps(BaseT::facade, |                 leg.steps = guidance::assembleSteps( | ||||||
|                     path_data, leg_geometry, phantoms.source_phantom, phantoms.target_phantom, |                     BaseAPI::facade, path_data, leg_geometry, phantoms.source_phantom, | ||||||
|                     reversed_source, reversed_target); |                     phantoms.target_phantom, reversed_source, reversed_target); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             leg_geometries.push_back(std::move(leg_geometry)); |             leg_geometries.push_back(std::move(leg_geometry)); | ||||||
| @ -123,13 +120,9 @@ template <typename ChildT> class RouteAPI_ : public BaseAPI_<RouteAPI_<ChildT>> | |||||||
| 
 | 
 | ||||||
|     const RouteParameters ¶meters; |     const RouteParameters ¶meters; | ||||||
| }; | }; | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| // Expose non-templated version
 | } // ns api
 | ||||||
| using RouteAPI = detail::RouteAPI_<std::true_type>; | } // ns engine
 | ||||||
| 
 | } // ns osrm
 | ||||||
| } |  | ||||||
| } |  | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| #endif | #endif | ||||||
|  | |||||||
| @ -24,15 +24,11 @@ namespace engine | |||||||
| namespace api | namespace api | ||||||
| { | { | ||||||
| 
 | 
 | ||||||
| namespace detail | class TableAPI final : public BaseAPI | ||||||
| { | { | ||||||
| template <typename ChildT> class TableAPI_ : public BaseAPI_<TableAPI_<ChildT>> |  | ||||||
| { |  | ||||||
|     using BaseT = BaseAPI_<TableAPI_<ChildT>>; |  | ||||||
| 
 |  | ||||||
|   public: |   public: | ||||||
|     TableAPI_(const datafacade::BaseDataFacade &facade_, const TableParameters ¶meters_) |     TableAPI(const datafacade::BaseDataFacade &facade_, const TableParameters ¶meters_) | ||||||
|         : BaseT(facade_, parameters_), parameters(parameters_) |         : 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(); |         for (; phantom_iter != phantoms.end() && coordinate_iter != parameters.coordinates.end(); | ||||||
|              ++phantom_iter, ++coordinate_iter) |              ++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; |         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()); |             BOOST_ASSERT(idx < phantoms.size() && idx < parameters.coordinates.size()); | ||||||
|             json_waypoints.values.push_back( |             json_waypoints.values.push_back( | ||||||
|                 BaseT::MakeWaypoint(parameters.coordinates[idx], phantoms[idx])); |                 BaseAPI::MakeWaypoint(parameters.coordinates[idx], phantoms[idx])); | ||||||
|         } |         } | ||||||
|         return json_waypoints; |         return json_waypoints; | ||||||
|     } |     } | ||||||
| @ -106,12 +102,9 @@ template <typename ChildT> class TableAPI_ : public BaseAPI_<TableAPI_<ChildT>> | |||||||
| 
 | 
 | ||||||
|     const TableParameters ¶meters; |     const TableParameters ¶meters; | ||||||
| }; | }; | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| // Expose non-templated version
 | } // ns api
 | ||||||
| using TableAPI = detail::TableAPI_<std::true_type>; | } // ns engine
 | ||||||
| } | } // ns osrm
 | ||||||
| } |  | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| #endif | #endif | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user