diff options
author | Vladimir Byko-Ianko <v.bykoianko@corp.mail.ru> | 2016-09-08 18:17:41 +0300 |
---|---|---|
committer | Vladimir Byko-Ianko <v.bykoianko@corp.mail.ru> | 2016-09-08 18:17:41 +0300 |
commit | ad612cbd2792efedc94beb4872967560433d555f (patch) | |
tree | b961fccaacba94af461602564cc3bb3c9cd63686 /routing | |
parent | 2da3d96b27e341d00f92abf4cf3cf7fb9d99c7d8 (diff) |
Better implementation for chart generation in multithreading envierment.
Diffstat (limited to 'routing')
-rw-r--r-- | routing/routing_session.cpp | 14 | ||||
-rw-r--r-- | routing/routing_session.hpp | 10 |
2 files changed, 9 insertions, 15 deletions
diff --git a/routing/routing_session.cpp b/routing/routing_session.cpp index affe26a4f0..eee15c3cb4 100644 --- a/routing/routing_session.cpp +++ b/routing/routing_session.cpp @@ -534,21 +534,15 @@ bool RoutingSession::HasRouteAltitude() const return HasRouteAltitudeImpl(); } -bool RoutingSession::GetRouteAltitudes(feature::TAltitudes & routeAltitudes) const +bool RoutingSession::GetRouteAltitudesAndDistancesM(vector<double> & routeSegDistanceM, + feature::TAltitudes & routeAltitudesM) const { threads::MutexGuard guard(m_routeSessionMutex); - if (!HasRouteAltitudeImpl()) + if (!m_route.IsValid() || !HasRouteAltitudeImpl()) return false; - routeAltitudes.assign(m_route.GetAltitudes().begin(), m_route.GetAltitudes().end()); - return true; -} -bool RoutingSession::GetSegDistanceM(vector<double> & routeSegDistanceM) const -{ - threads::MutexGuard guard(m_routeSessionMutex); - if (!m_route.IsValid()) - return false; routeSegDistanceM = m_route.GetSegDistanceM(); + routeAltitudesM.assign(m_route.GetAltitudes().cbegin(), m_route.GetAltitudes().cend()); return true; } diff --git a/routing/routing_session.hpp b/routing/routing_session.hpp index 9156ab53ae..d10d637c01 100644 --- a/routing/routing_session.hpp +++ b/routing/routing_session.hpp @@ -108,12 +108,12 @@ public: /// \returns true if altitude information along |m_route| is available and /// false otherwise. bool HasRouteAltitude() const; - /// \brief copies route altitude information to |routeAltitudes| if any is available and - /// returns true. If there's no navigation route, the method returns false. - bool GetRouteAltitudes(feature::TAltitudes & routeAltitudes) const; + /// \brief copies distance from route beginning to ends of route segments in meters and - /// returns true. If the route is not valid returns false. - bool GetSegDistanceM(vector<double> & routeSegDistanceM) const; + /// route altitude information to |routeSegDistanceM| and |routeAltitudes|. + /// \returns true if there is valid route information. If the route is not valid returns false. + bool GetRouteAltitudesAndDistancesM(vector<double> & routeSegDistanceM, + feature::TAltitudes & routeAltitudesM) const; State OnLocationPositionChanged(location::GpsInfo const & info, Index const & index); void GetRouteFollowingInfo(location::FollowingInfo & info) const; |