Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Byko-Ianko <v.bykoianko@corp.mail.ru>2020-01-17 11:57:56 +0300
committergmoryes <gmoryes@gmail.com>2020-01-21 13:02:02 +0300
commit70a475a97b4a372721d1c121cdbb5b88b4459e52 (patch)
treecc66823cb6f3c4ef5bd4e20758c86fd279711e54
parent017d40a27eed408ed61ef61aa23ca8271f86c3c8 (diff)
[routing] Renaming SessionState::RoutingNotActive to SessionState::NoValidRoute.
-rw-r--r--routing/routing_callbacks.hpp4
-rw-r--r--routing/routing_session.cpp40
-rw-r--r--routing/routing_session.hpp4
-rw-r--r--routing/routing_tests/routing_session_test.cpp8
4 files changed, 29 insertions, 27 deletions
diff --git a/routing/routing_callbacks.hpp b/routing/routing_callbacks.hpp
index 3aca3f360c..516b29f0e0 100644
--- a/routing/routing_callbacks.hpp
+++ b/routing/routing_callbacks.hpp
@@ -42,7 +42,7 @@ enum class RouterResultCode
enum class SessionState
{
- RoutingNotActive, // No valid route: no route after application launching or the route was removed.
+ NoValidRoute, // No valid route: no route after application launching or the route was removed.
RouteBuilding, // We requested a route and wait when it will be built. User may be following
// the previous route.
RouteBuildingError, // The route was not built because of an error.
@@ -56,7 +56,7 @@ enum class SessionState
};
/*
- * RoutingNotActive -> RouteBuilding // start route building
+ * NoValidRoute -> RouteBuilding // start route building
* RouteBuilding -> RouteBuildingError // route was built with an error
* RouteBuilding -> RouteNotStarted // route is built in case of building a new route
* RouteRebuilding -> RouteBuildingError // waiting for route in case of rebuilding
diff --git a/routing/routing_session.cpp b/routing/routing_session.cpp
index 21ffecb531..41ae8b66d4 100644
--- a/routing/routing_session.cpp
+++ b/routing/routing_session.cpp
@@ -53,7 +53,7 @@ void FormatDistance(double dist, string & value, string & suffix)
RoutingSession::RoutingSession()
: m_router(nullptr)
, m_route(make_shared<Route>(string() /* router */, 0 /* route id */))
- , m_state(SessionState::RoutingNotActive)
+ , m_state(SessionState::NoValidRoute)
, m_isFollowing(false)
, m_speedCameraManager(m_turnNotificationsMgr)
, m_routingSettings(GetRoutingSettings(VehicleType::Car))
@@ -61,7 +61,7 @@ RoutingSession::RoutingSession()
, m_lastCompletionPercent(0.0)
{
// To call |m_changeSessionStateCallback| on |m_state| initialization.
- SetState(SessionState::RoutingNotActive);
+ SetState(SessionState::NoValidRoute);
m_speedCameraManager.SetRoute(m_route);
}
@@ -137,10 +137,12 @@ void RoutingSession::DoReadyCallback::operator()(shared_ptr<Route> route, Router
m_callback(*m_rs.m_route, e);
}
-void RoutingSession::RemoveRoute()
+void RoutingSession::RemoveRoute(bool changeStateToNoValidRoute)
{
CHECK_THREAD_CHECKER(m_threadChecker, ());
- SetState(SessionState::RoutingNotActive);
+ if (changeStateToNoValidRoute)
+ SetState(SessionState::NoValidRoute);
+
m_lastDistance = 0.0;
m_moveAwayCounter = 0;
m_turnNotificationsMgr.Reset();
@@ -160,7 +162,7 @@ void RoutingSession::RebuildRouteOnTrafficUpdate()
switch (m_state)
{
- case SessionState::RoutingNotActive:
+ case SessionState::NoValidRoute:
case SessionState::RouteBuildingError:
case SessionState::RouteFinished: return;
@@ -187,7 +189,7 @@ void RoutingSession::RebuildRouteOnTrafficUpdate()
bool RoutingSession::IsActive() const
{
CHECK_THREAD_CHECKER(m_threadChecker, ());
- return (m_state != SessionState::RoutingNotActive);
+ return (m_state != SessionState::NoValidRoute);
}
bool RoutingSession::IsNavigable() const
@@ -256,7 +258,7 @@ void RoutingSession::Reset()
CHECK_THREAD_CHECKER(m_threadChecker, ());
ASSERT(m_router != nullptr, ());
- RemoveRoute();
+ RemoveRoute(true /* changeStateToNoValidRoute */);
m_router->ClearState();
m_passedDistanceOnRouteMeters = 0.0;
@@ -266,6 +268,7 @@ void RoutingSession::Reset()
void RoutingSession::SetState(SessionState state)
{
+ CHECK_THREAD_CHECKER(m_threadChecker, ());
if (m_changeSessionStateCallback && m_state != state)
m_changeSessionStateCallback(m_state, state);
@@ -275,20 +278,18 @@ void RoutingSession::SetState(SessionState state)
SessionState RoutingSession::OnLocationPositionChanged(GpsInfo const & info)
{
CHECK_THREAD_CHECKER(m_threadChecker, ());
- ASSERT_NOT_EQUAL(m_state, SessionState::RoutingNotActive, ());
+ ASSERT_NOT_EQUAL(m_state, SessionState::NoValidRoute, ());
ASSERT(m_router, ());
- if (m_state == SessionState::RouteFinished || m_state == SessionState::RouteBuilding
- || m_state == SessionState::RouteBuildingError || m_state == SessionState::RouteNoFollowing)
+ if (m_state == SessionState::RouteFinished || m_state == SessionState::RouteBuilding ||
+ m_state == SessionState::RouteBuildingError || m_state == SessionState::RouteNoFollowing ||
+ m_state == SessionState::NoValidRoute)
{
return m_state;
}
- // If a route cancelled while the first building |m_route| is invalid and still may be rebuild.
- if (!m_route->IsValid())
- return m_state;
-
- ASSERT(m_route, ());
+ CHECK(m_route, ());
+ CHECK(m_route->IsValid(), ());
m_turnNotificationsMgr.SetSpeedMetersPerSecond(info.m_speedMpS);
@@ -497,14 +498,15 @@ void RoutingSession::AssignRoute(shared_ptr<Route> route, RouterResultCode e)
if (m_route->IsValid())
SetState(SessionState::OnRoute);
else
- SetState(SessionState::RoutingNotActive);
+ SetState(SessionState::NoValidRoute);
return;
}
- RemoveRoute();
+ // Note. RemoveRoute() should not change state to NoValidRoute in this case.
+ RemoveRoute(false /* changeStateToNoValidRoute */);
+ SetState(SessionState::RouteNotStarted);
m_lastCompletionPercent = 0;
m_checkpoints.SetPointFrom(route->GetPoly().Front());
- SetState(SessionState::RouteNotStarted);
route->SetRoutingSettings(m_routingSettings);
m_route = route;
@@ -783,7 +785,7 @@ string DebugPrint(SessionState state)
{
switch (state)
{
- case SessionState::RoutingNotActive: return "RoutingNotActive";
+ case SessionState::NoValidRoute: return "NoValidRoute";
case SessionState::RouteBuilding: return "RouteBuilding";
case SessionState::RouteBuildingError: return "RouteBuildingError";
case SessionState::RouteNotStarted: return "RouteNotStarted";
diff --git a/routing/routing_session.hpp b/routing/routing_session.hpp
index 761fe37d9d..862c903139 100644
--- a/routing/routing_session.hpp
+++ b/routing/routing_session.hpp
@@ -181,8 +181,8 @@ private:
};
void AssignRoute(std::shared_ptr<Route> route, RouterResultCode e);
- /// RemoveRoute removes m_route and resets route attributes (m_state, m_lastDistance, m_moveAwayCounter).
- void RemoveRoute();
+ /// RemoveRoute() removes m_route and resets route attributes (m_state, m_lastDistance, m_moveAwayCounter).
+ void RemoveRoute(bool changeStateToNoValidRoute);
void RebuildRouteOnTrafficUpdate();
double GetCompletionPercent() const;
diff --git a/routing/routing_tests/routing_session_test.cpp b/routing/routing_tests/routing_session_test.cpp
index 8cc663c141..b77270e1fa 100644
--- a/routing/routing_tests/routing_session_test.cpp
+++ b/routing/routing_tests/routing_session_test.cpp
@@ -199,7 +199,7 @@ UNIT_CLASS_TEST(AsyncGuiThreadTestWithRoutingSession, TestRouteRebuildingMovingA
info.m_verticalAccuracy = 0.01;
info.m_longitude = 0.;
info.m_latitude = 1.;
- SessionState code = SessionState::RoutingNotActive;
+ SessionState code = SessionState::NoValidRoute;
{
SessionStateTest sessionStateTest({SessionState::RouteNotStarted, SessionState::OnRoute},
@@ -234,7 +234,7 @@ UNIT_CLASS_TEST(AsyncGuiThreadTestWithRoutingSession, TestRouteRebuildingMovingA
info.m_longitude = 0.;
info.m_latitude = 1.;
info.m_speedMpS = routing::KMPH2MPS(60);
- SessionState code = SessionState::RoutingNotActive;
+ SessionState code = SessionState::NoValidRoute;
for (size_t i = 0; i < 10; ++i)
{
code = m_session->OnLocationPositionChanged(info);
@@ -281,7 +281,7 @@ UNIT_CLASS_TEST(AsyncGuiThreadTestWithRoutingSession, TestRouteRebuildingMovingT
info.m_longitude = 0.0;
info.m_latitude = 0.0;
info.m_speedMpS = routing::KMPH2MPS(60);
- SessionState code = SessionState::RoutingNotActive;
+ SessionState code = SessionState::NoValidRoute;
{
SessionStateTest sessionStateTest(
{SessionState::RouteNotStarted, SessionState::RouteNeedRebuild},
@@ -362,7 +362,7 @@ UNIT_CLASS_TEST(AsyncGuiThreadTestWithRoutingSession, TestFollowRouteFlagPersist
info.m_longitude = 0.;
info.m_latitude = 1.;
info.m_speedMpS = routing::KMPH2MPS(60);
- SessionState code = SessionState::RoutingNotActive;
+ SessionState code = SessionState::NoValidRoute;
for (size_t i = 0; i < 10; ++i)
{
code = m_session->OnLocationPositionChanged(info);