From c83642c69ede418f4c4d89daa0dae4b8698e0765 Mon Sep 17 00:00:00 2001 From: Kazumasa Mitsunari Date: Mon, 19 Mar 2018 17:06:05 +0900 Subject: Change reply timing Some events were emitted in a function before it replies. This patch changes * The function checks parameter then reply error if it is incorrect. * After checking parameters, the function continues to process. The exeption is the syncronous functions such as requestSurface. Change-Id: I168eba3e2b70d53615a4221bcbbba6bc6096c1db Signed-off-by: Kazumasa Mitsunari --- src/main.cpp | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index fd96d33..2f813a3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -298,15 +298,18 @@ void windowmanager_activatesurface(afb_req req) noexcept { return; } - auto ret = g_afb_instance->app.api_activate_surface(a_drawing_name, a_drawing_area); - if (ret != nullptr) { - afb_req_fail(req, "failed", ret); - return; - } + g_afb_instance->app.api_activate_surface(a_drawing_name, a_drawing_area, + [&req](const char* errmsg){ + if (errmsg != nullptr) { + HMI_ERROR("wm", errmsg); + afb_req_fail(req, "failed", errmsg); + return; + } + afb_req_success(req, NULL, "success"); + }); - afb_req_success(req, NULL, "success"); } catch (std::exception &e) { - afb_req_fail_f(req, "failed", "Uncaught exception while calling activatesurface: %s", e.what()); + HMI_WARNING("wm", "failed", "Uncaught exception while calling activatesurface: %s", e.what()); return; } @@ -329,15 +332,18 @@ void windowmanager_deactivatesurface(afb_req req) noexcept { return; } - auto ret = g_afb_instance->app.api_deactivate_surface(a_drawing_name); - if (ret != nullptr) { - afb_req_fail(req, "failed", ret); - return; - } + g_afb_instance->app.api_deactivate_surface(a_drawing_name, + [&req](const char* errmsg){ + if (errmsg != nullptr) { + HMI_ERROR("wm", errmsg); + afb_req_fail(req, "failed", errmsg); + return; + } + afb_req_success(req, NULL, "success"); + }); - afb_req_success(req, NULL, "success"); } catch (std::exception &e) { - afb_req_fail_f(req, "failed", "Uncaught exception while calling deactivatesurface: %s", e.what()); + HMI_WARNING("wm", "Uncaught exception while calling deactivatesurface: %s", e.what()); return; } } @@ -358,16 +364,12 @@ void windowmanager_enddraw(afb_req req) noexcept { afb_req_fail(req, "failed", "Need char const* argument drawing_name"); return; } + afb_req_success(req, NULL, "success"); - auto ret = g_afb_instance->app.api_enddraw(a_drawing_name); - if (ret != nullptr) { - afb_req_fail(req, "failed", ret); - return; - } + g_afb_instance->app.api_enddraw(a_drawing_name); - afb_req_success(req, NULL, "success"); } catch (std::exception &e) { - afb_req_fail_f(req, "failed", "Uncaught exception while calling enddraw: %s", e.what()); + HMI_WARNING("wm", "failed", "Uncaught exception while calling enddraw: %s", e.what()); return; } -- cgit 1.2.3-korg