From bbf684fb596414141190958dbd0b0abcc0f7f6d3 Mon Sep 17 00:00:00 2001 From: Kazumasa Mitsunari Date: Tue, 19 Jun 2018 10:26:46 +0900 Subject: Modify the description Change-Id: I99a0485189580fb3df0519c5ce7308c88f85fd31 Signed-off-by: Kazumasa Mitsunari --- src/app.cpp | 9 +++++++++ src/app.hpp | 1 + src/applist.cpp | 4 ++-- src/main.cpp | 9 ++++++--- 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; } } -- cgit 1.2.3-korg