diff --git a/3party/opening_hours/adapted_structs.hpp b/3party/opening_hours/adapted_structs.hpp new file mode 100644 index 0000000000..35ff3d2c75 --- /dev/null +++ b/3party/opening_hours/adapted_structs.hpp @@ -0,0 +1,45 @@ +#include "osm_time_range.hpp" + +#include + + +BOOST_FUSION_ADAPT_STRUCT +( + osmoh::Time, + (uint8_t, hours) + (uint8_t, minutes) + (uint8_t, flags) + ) + +BOOST_FUSION_ADAPT_STRUCT +( + osmoh::TimeSpan, + (osmoh::Time, from) + (osmoh::Time, to) + (uint8_t, flags) + (osmoh::Time, period) + ) + +BOOST_FUSION_ADAPT_STRUCT +( + osmoh::Weekday, + (uint8_t, weekdays) + (uint16_t, nth) + (int32_t, offset) + ) + +BOOST_FUSION_ADAPT_STRUCT +( + osmoh::State, + (uint8_t, state) + (std::string, comment) + ) + +BOOST_FUSION_ADAPT_STRUCT +( + osmoh::TimeRule, + (osmoh::TWeekdays, weekdays) + (osmoh::TTimeSpans, timespan) + (osmoh::State, state) + (uint8_t, int_flags) + ) diff --git a/3party/opening_hours/opening_hours.pro b/3party/opening_hours/opening_hours.pro index 1136266018..3ee83c0cf4 100644 --- a/3party/opening_hours/opening_hours.pro +++ b/3party/opening_hours/opening_hours.pro @@ -14,4 +14,6 @@ ROOT_DIR = ../.. include($$ROOT_DIR/common.pri) SOURCES += osm_time_range.cpp -HEADERS += osm_time_range.hpp +HEADERS += osm_time_range.hpp \ + osm_parsers.hpp \ + adapted_structs.hpp diff --git a/3party/opening_hours/opening_hours_tests/opening_hours_tests.pro b/3party/opening_hours/opening_hours_tests/opening_hours_tests.pro index 4046504d30..9944d9b7e9 100644 --- a/3party/opening_hours/opening_hours_tests/opening_hours_tests.pro +++ b/3party/opening_hours/opening_hours_tests/opening_hours_tests.pro @@ -1,4 +1,3 @@ - TARGET = opening_hours_tests CONFIG += console worn_off CONFIG -= app_bundle @@ -9,7 +8,10 @@ DEPENDENCIES += opening_hours \ include($$ROOT_DIR/common.pri) -INCLUDEPATH += $$ROOT_DIR/3party/opening_hours +OPENING_HOURS_INCLUDE = $$ROOT_DIR/3party/opening_hours +INCLUDEPATH += $$OPENING_HOURS_INCLUDE SOURCES += osm_time_range_tests.cpp -SOURCES += ../osm_time_range.hpp +HEADERS += $$OPENING_HOURS_INCLUDE/osm_time_range.hpp \ + $$OPENING_HOURS_INCLUDE/osm_parsers.hpp + $$OPENING_HOURS_INCLUDE/adopted_structs.hpp diff --git a/3party/opening_hours/opening_hours_tests/osm_time_range_tests.cpp b/3party/opening_hours/opening_hours_tests/osm_time_range_tests.cpp index 27d754a3db..f9300db5be 100644 --- a/3party/opening_hours/opening_hours_tests/osm_time_range_tests.cpp +++ b/3party/opening_hours/opening_hours_tests/osm_time_range_tests.cpp @@ -21,9 +21,11 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#include "osm_time_range.hpp" +#include +#include #include +#include #include #include #include @@ -54,6 +56,41 @@ bool test(Char const * in, Parser const & p, bool full_match = true) return boost::spirit::qi::parse(in, last, p) && (!full_match || (in == last)); } +template