aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-06-19 10:26:46 +0900
committerKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-06-19 10:26:46 +0900
commitbbf684fb596414141190958dbd0b0abcc0f7f6d3 (patch)
tree3a2e9002ed06a479530e55d547a1cbce8f3bbf7c
parent6ef8b4043c689f16cafd45ea7f661a50ffba8ec1 (diff)
Modify the description
Change-Id: I99a0485189580fb3df0519c5ce7308c88f85fd31 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
-rw-r--r--src/app.cpp9
-rw-r--r--src/app.hpp1
-rw-r--r--src/applist.cpp4
-rw-r--r--src/main.cpp9
4 files changed, 18 insertions, 5 deletions
diff --git a/src/app.cpp b/src/app.cpp
index 90d2512..ba49d74 100644
--- a/src/app.cpp
+++ b/src/app.cpp
@@ -133,6 +133,15 @@ void App::removeClient(const std::string &appid)
g_app_list.removeClient(appid);
}
+void App::exeptionProcessForTransition()
+{
+ unsigned req_num = g_app_list.currentRequestNumber();
+ HMI_SEQ_NOTICE(req_num, "Process exeption handling for request. Remove current request %d", req_num);
+ g_app_list.removeRequest(req_num);
+ HMI_SEQ_NOTICE(g_app_list.currentRequestNumber(), "Process next request if exists");
+ this->processNextRequest();
+}
+
bool App::subscribeEventForApp(const std::string &appid, afb_req req, const std::string &evname)
{
if(!g_app_list.contains(appid)){
diff --git a/src/app.hpp b/src/app.hpp
index 047436b..ded952a 100644
--- a/src/app.hpp
+++ b/src/app.hpp
@@ -234,6 +234,7 @@ struct App
void surface_removed(uint32_t surface_id);
void removeClient(const std::string &appid);
+ void exeptionProcessForTransition();
bool subscribeEventForApp(const std::string &appid, afb_req req, const std::string &evname);
// Do not use this function
//static int processTimerHandler(sd_event_source *s, uint64_t usec, void *userdata);
diff --git a/src/applist.cpp b/src/applist.cpp
index 5ca82fe..6ea0230 100644
--- a/src/applist.cpp
+++ b/src/applist.cpp
@@ -154,8 +154,8 @@ int AppList::countClient() const
*
* @param unsigned[in] surfaceID
* @param string[in] role
- * @param bool[in,out] (key)
- * @return WMClient object
+ * @param bool[in,out] AppID is found or not
+ * @return AppID
* @attention If AppID is not found, param found will be false.
*/
string AppList::getAppID(unsigned surface, const string& role, bool* found) const
diff --git a/src/main.cpp b/src/main.cpp
index fe73b69..25fbf2a 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -364,7 +364,8 @@ void windowmanager_activatesurface(afb_req req) noexcept
}
catch (std::exception &e)
{
- HMI_WARNING("wm", "failed", "Uncaught exception while calling activatesurface: %s", e.what());
+ HMI_WARNING("wm", "failed: Uncaught exception while calling activatesurface: %s", e.what());
+ g_afb_instance->app.exeptionProcessForTransition();
return;
}
}
@@ -404,7 +405,8 @@ void windowmanager_deactivatesurface(afb_req req) noexcept
}
catch (std::exception &e)
{
- HMI_WARNING("wm", "Uncaught exception while calling deactivatesurface: %s", e.what());
+ HMI_WARNING("wm", "failed: Uncaught exception while calling deactivatesurface: %s", e.what());
+ g_afb_instance->app.exeptionProcessForTransition();
return;
}
}
@@ -436,7 +438,8 @@ void windowmanager_enddraw(afb_req req) noexcept
}
catch (std::exception &e)
{
- HMI_WARNING("wm", "failed", "Uncaught exception while calling enddraw: %s", e.what());
+ HMI_WARNING("wm", "failed: Uncaught exception while calling enddraw: %s", e.what());
+ g_afb_instance->app.exeptionProcessForTransition();
return;
}
}