From 3060f4414dd77004ce40dff41f09dc0a0e63ff1d Mon Sep 17 00:00:00 2001 From: Patrick Niklaus Date: Fri, 4 Mar 2016 23:17:57 +0100 Subject: [PATCH] Move bearing to public namespace --- CMakeLists.txt | 2 +- include/engine/api/base_parameters.hpp | 21 ++------------ include/engine/bearing.hpp | 25 ++++++++++++++++ include/osrm/bearing.hpp | 11 +++++++ include/osrm/tile_parameters.hpp | 11 +++++++ .../server/api/base_parameters_grammar.hpp | 7 +++-- unit_tests/server/parameters_parser.cpp | 29 +++++++++---------- 7 files changed, 68 insertions(+), 38 deletions(-) create mode 100644 include/engine/bearing.hpp create mode 100644 include/osrm/bearing.hpp create mode 100644 include/osrm/tile_parameters.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index edd00632d..ec19c7fef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -377,7 +377,7 @@ set_property(TARGET osrm-routed PROPERTY INSTALL_RPATH_USE_LINK_PATH TRUE) file(GLOB VariantGlob third_party/variant/*.hpp) file(GLOB LibraryGlob include/osrm/*.hpp) file(GLOB ParametersGlob include/engine/api/*.hpp) -set(EngineHeader include/engine/status.hpp include/engine/engine_config.hpp include/engine/hint.hpp include/engine/object_encoder.hpp include/engine/phantom_node.hpp) +set(EngineHeader include/engine/status.hpp include/engine/engine_config.hpp include/engine/hint.hpp include/engine/bearing.hpp include/engine/object_encoder.hpp include/engine/phantom_node.hpp) set(UtilHeader include/util/coordinate.hpp include/util/json_container.hpp include/util/typedefs.hpp include/util/strong_typedef.hpp) set(ExtractorHeader include/extractor/extractor.hpp include/extractor/extractor_config.hpp include/extractor/travel_mode.hpp) set(ContractorHeader include/contractor/contractor.hpp include/contractor/contractor_config.hpp) diff --git a/include/engine/api/base_parameters.hpp b/include/engine/api/base_parameters.hpp index 2798c398e..7a7bcda32 100644 --- a/include/engine/api/base_parameters.hpp +++ b/include/engine/api/base_parameters.hpp @@ -2,6 +2,7 @@ #define ENGINE_API_BASE_PARAMETERS_HPP #include "engine/hint.hpp" +#include "engine/bearing.hpp" #include "util/coordinate.hpp" #include @@ -17,12 +18,6 @@ namespace api { struct BaseParameters { - struct Bearing - { - short bearing; - short range; - }; - std::vector coordinates; std::vector> hints; std::vector> radiuses; @@ -39,24 +34,12 @@ struct BaseParameters { if (bearing_and_range) { - return bearing_and_range->bearing >= 0 && - bearing_and_range->bearing <= 360 && - bearing_and_range->range >= 0 && - bearing_and_range->range <= 180; + return bearing_and_range->IsValid(); } return true; }); } }; - -inline bool operator==(const BaseParameters::Bearing lhs, const BaseParameters::Bearing rhs) -{ - return lhs.bearing == rhs.bearing && lhs.range == rhs.range; -} -inline bool operator!=(const BaseParameters::Bearing lhs, const BaseParameters::Bearing rhs) -{ - return !(lhs == rhs); -} } } } diff --git a/include/engine/bearing.hpp b/include/engine/bearing.hpp new file mode 100644 index 000000000..27f35ba40 --- /dev/null +++ b/include/engine/bearing.hpp @@ -0,0 +1,25 @@ +#ifndef OSRM_ENGINE_BEARING_HPP +#define OSRM_ENGINE_BEARING_HPP + +namespace osrm +{ +namespace engine +{ + +struct Bearing +{ + short bearing; + short range; + + bool IsValid() const { return bearing >= 0 && bearing <= 360 && range >= 0 && range <= 180; } +}; + +inline bool operator==(const Bearing lhs, const Bearing rhs) +{ + return lhs.bearing == rhs.bearing && lhs.range == rhs.range; +} +inline bool operator!=(const Bearing lhs, const Bearing rhs) { return !(lhs == rhs); } +} +} + +#endif diff --git a/include/osrm/bearing.hpp b/include/osrm/bearing.hpp new file mode 100644 index 000000000..e4a5d3b8f --- /dev/null +++ b/include/osrm/bearing.hpp @@ -0,0 +1,11 @@ +#ifndef OSRM_BEARING_HPP +#define OSRM_BEARING_HPP + +#include "engine/bearing.hpp" + +namespace osrm +{ + using engine::Bearing; +} + +#endif diff --git a/include/osrm/tile_parameters.hpp b/include/osrm/tile_parameters.hpp new file mode 100644 index 000000000..1b10e547d --- /dev/null +++ b/include/osrm/tile_parameters.hpp @@ -0,0 +1,11 @@ +#ifndef GLOBAL_TILE_PARAMETERS_HPP +#define GLOBAL_TILE_PARAMETERS_HPP + +#include "engine/api/tile_parameters.hpp" + +namespace osrm +{ +using engine::api::TileParameters; +} + +#endif diff --git a/include/server/api/base_parameters_grammar.hpp b/include/server/api/base_parameters_grammar.hpp index 44f0ae17d..2f9a95e9d 100644 --- a/include/server/api/base_parameters_grammar.hpp +++ b/include/server/api/base_parameters_grammar.hpp @@ -5,6 +5,7 @@ #include "engine/polyline_compressor.hpp" #include "engine/hint.hpp" +#include "engine/bearing.hpp" #include #include @@ -39,11 +40,11 @@ struct BaseParametersGrammar : boost::spirit::qi::grammar const auto add_bearing = [this](boost::optional> bearing_range) { - boost::optional bearing; + boost::optional bearing; if (bearing_range) { - bearing = engine::api::BaseParameters::Bearing{ - boost::fusion::at_c<0>(*bearing_range), boost::fusion::at_c<1>(*bearing_range)}; + bearing = engine::Bearing{boost::fusion::at_c<0>(*bearing_range), + boost::fusion::at_c<1>(*bearing_range)}; } base_parameters.bearings.push_back(std::move(bearing)); }; diff --git a/unit_tests/server/parameters_parser.cpp b/unit_tests/server/parameters_parser.cpp index 7f79dc356..fca794625 100644 --- a/unit_tests/server/parameters_parser.cpp +++ b/unit_tests/server/parameters_parser.cpp @@ -5,6 +5,7 @@ #include "engine/api/table_parameters.hpp" #include "engine/api/match_parameters.hpp" #include "engine/api/trip_parameters.hpp" +#include "engine/api/tile_parameters.hpp" #include "engine/api/nearest_parameters.hpp" #include @@ -48,14 +49,14 @@ std::ostream &operator<<(std::ostream &out, api::RouteParameters::OverviewType o } return out; } -std::ostream &operator<<(std::ostream &out, api::RouteParameters::Bearing bearing) +} +std::ostream &operator<<(std::ostream &out, Bearing bearing) { out << bearing.bearing << "," << bearing.range; return out; } } } -} #include #include @@ -175,16 +176,15 @@ BOOST_AUTO_TEST_CASE(valid_route_urls) "_4ghA4JuzAD_IAAAo28BAOYAAAAzAAAAAgAAAEwAAAAAAAAAdIwAAJ4AAAAXiSEDfm7MAAEAAQGLSzmR"), engine::Hint::FromBase64( "03AhA0vnzAA_SAAA_____3wEAAAYAAAAQAAAAB4AAABAAAAAoUYBAJ4AAADlcCEDSefMAAMAAQGLSzmR")}; - engine::api::RouteParameters reference_4{ - false, - true, - engine::api::RouteParameters::GeometriesType::Polyline, - engine::api::RouteParameters::OverviewType::Simplified, - std::vector>{}, - coords_1, - hints_4, - std::vector>{}, - std::vector>{}}; + engine::api::RouteParameters reference_4{false, + true, + engine::api::RouteParameters::GeometriesType::Polyline, + engine::api::RouteParameters::OverviewType::Simplified, + std::vector>{}, + coords_1, + hints_4, + std::vector>{}, + std::vector>{}}; auto result_4 = api::parseParameters( "1,2;3,4?steps=false&hints=" "rVghAzxMzABMAwAA5h4CAKMIAAAQAAAAGAAAAAYAAAAAAAAAch8BAJ4AAACpWCED_" @@ -201,9 +201,8 @@ BOOST_AUTO_TEST_CASE(valid_route_urls) CHECK_EQUAL_RANGE(reference_4.radiuses, result_4->radiuses); CHECK_EQUAL_RANGE(reference_4.coordinates, result_4->coordinates); - std::vector> bearings_4 = { - boost::none, engine::api::BaseParameters::Bearing{200, 10}, - engine::api::BaseParameters::Bearing{100, 5}, + std::vector> bearings_4 = { + boost::none, engine::Bearing{200, 10}, engine::Bearing{100, 5}, }; engine::api::RouteParameters reference_5{false, true,