Add watch_manager_send_terminate 55/71155/4
authorDaehyeon Jung <darrenh.jung@samsung.com>
Tue, 24 May 2016 09:11:47 +0000 (18:11 +0900)
committerDaehyeon Jung <darrenh.jung@samsung.com>
Tue, 24 May 2016 10:44:38 +0000 (19:44 +0900)
Change-Id: I4670602b4c62500284073bf4e137c34392733dee
Signed-off-by: Daehyeon Jung <darrenh.jung@samsung.com>
watch-control/include/watch_control.h
watch-control/src/control.c

index d806c74..f89614b 100644 (file)
@@ -36,6 +36,7 @@ typedef enum {
 extern int watch_manager_init(Evas_Object *win);
 extern int watch_manager_fini();
 extern int watch_manager_get_app_control(const char *app_id, app_control_h *app_control);
+extern int watch_manager_send_terminate(Evas_Object *watch);
 extern int watch_policy_set_size_hint(watch_policy_size_hint hint);
 
 #ifdef __cplusplus
index dc70f58..667c197 100644 (file)
@@ -19,6 +19,7 @@
 #include <app_control_internal.h>
 #include <compositor.h>
 #include <dlog.h>
+#include <unistd.h>
 #include "watch_control.h"
 #include <aul.h>
 
@@ -129,6 +130,25 @@ static void __pepper_cb(const char *app_id, const char *event, Evas_Object *obj,
        }
 }
 
+API int watch_manager_send_terminate(Evas_Object *watch)
+{
+       int pid = _compositor_get_pid(watch);
+       int r;
+
+       if (pid < 1) {
+               _E("failed to get pid from %p", watch);
+               return -1;
+       }
+
+       r = aul_terminate_pid(pid);
+       if (r < 0) {
+               _E("failed to terminate pid:%d (%d)", pid, r);
+               return -1;
+       }
+
+       return 0;
+}
+
 API int watch_manager_get_app_control(const char *app_id, app_control_h *app_control)
 {
        char buf[10];