summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunghoon Park <jh9216.park@samsung.com>2017-09-12 14:48:36 +0900
committerJunghoon Park <jh9216.park@samsung.com>2017-09-12 17:48:33 +0900
commit489c2da49da3328605515d4df35ed9c0aec48996 (patch)
tree2e9831153c584abd5182d01a6ea2364a42fa9806
parent3cf7c8cb85e2f85836ca4140c760ceec6f80408f (diff)
downloadwidget-service-accepted/tizen_3.0_mobile.tar.gz
widget-service-accepted/tizen_3.0_mobile.tar.bz2
widget-service-accepted/tizen_3.0_mobile.zip
- Require: https://review.tizen.org/gerrit/#/c/149321/ Change-Id: Id27334ebacbe0e228642b3b4f2007620b186aad8 Signed-off-by: Junghoon Park <jh9216.park@samsung.com>
-rw-r--r--include/widget_instance.h1
-rw-r--r--src/widget_instance.c25
2 files changed, 24 insertions, 2 deletions
diff --git a/include/widget_instance.h b/include/widget_instance.h
index f33ff5c..f3e7c29 100644
--- a/include/widget_instance.h
+++ b/include/widget_instance.h
@@ -62,6 +62,7 @@ int widget_instance_get_content(widget_instance_h instance, char **content);
int widget_instance_get_width(widget_instance_h instance, int *w);
int widget_instance_get_height(widget_instance_h instance, int *h);
int widget_instance_get_period(widget_instance_h instance, double *period);
+int widget_instance_get_error_code(widget_instance_h instance, int *err);
int widget_instance_create(const char *widget_id, char **instance_id);
int widget_instance_launch(const char *instance_id, char *content_info, int w, int h);
diff --git a/src/widget_instance.c b/src/widget_instance.c
index a46551b..4062721 100644
--- a/src/widget_instance.c
+++ b/src/widget_instance.c
@@ -69,6 +69,7 @@ struct _widget_instance {
int status;
int stored;
int ref;
+ int err;
};
struct widget_app {
@@ -222,6 +223,7 @@ static struct _widget_instance *__add_instance(const char *id, const char *widge
instance->content_info = NULL;
instance->ref = 0;
instance->period = period;
+ instance->err = 0;
_widget_instances = g_list_append(_widget_instances, instance);
@@ -792,7 +794,8 @@ static int __connect_status_handler()
return 0;
}
-static int __widget_instance_handler(int status, char *widget_id, char *instance_id, char *content_info)
+static int __widget_instance_handler(int status, char *widget_id,
+ char *instance_id, char *content_info, int err)
{
struct _widget_instance *instance;
@@ -839,6 +842,7 @@ static int __widget_instance_handler(int status, char *widget_id, char *instance
break;
case WIDGET_INSTANCE_EVENT_CREATE_ABORTED:
instance->pid = -1;
+ instance->err = err;
break;
default:
_E("unknown status: %d", status);
@@ -857,12 +861,14 @@ static int __widget_handler(const char *viewer_id, aul_app_com_result_e e, bundl
{
char *widget_id = NULL;
char *instance_id = NULL;
+ char *error_code = NULL;
int *status = NULL;
size_t status_sz = 0;
char *content_info = NULL;
char *sender_pid_str = NULL;
int sender_pid;
int ret;
+ int err = 0;
bundle_get_str(envelope, AUL_K_WIDGET_ID, &widget_id);
bundle_get_byte(envelope, AUL_K_WIDGET_STATUS, (void **)&status, &status_sz);
@@ -882,7 +888,12 @@ static int __widget_handler(const char *viewer_id, aul_app_com_result_e e, bundl
} else {
bundle_get_str(envelope, AUL_K_WIDGET_INSTANCE_ID, &instance_id);
bundle_get_str(envelope, WIDGET_K_CONTENT_INFO, &content_info);
- __widget_instance_handler(*status, widget_id, instance_id, content_info);
+ bundle_get_str(envelope, AUL_K_WIDGET_ERROR_CODE, &error_code);
+ if (error_code)
+ err = atoi(error_code);
+
+ __widget_instance_handler(*status, widget_id, instance_id,
+ content_info, err);
}
return 0;
@@ -960,6 +971,16 @@ EAPI int widget_instance_fini()
return 0;
}
+EAPI int widget_instance_get_error_code(widget_instance_h instance, int *err)
+{
+ if (instance == NULL || err == NULL)
+ return -1;
+
+ *err = instance->err;
+
+ return 0;
+}
+
EAPI int widget_instance_get_id(widget_instance_h instance, char **id)
{
if (instance == NULL || id == NULL)