diff options
author | Junghoon Park <jh9216.park@samsung.com> | 2017-09-12 14:48:36 +0900 |
---|---|---|
committer | Junghoon Park <jh9216.park@samsung.com> | 2017-09-12 17:48:33 +0900 |
commit | 489c2da49da3328605515d4df35ed9c0aec48996 (patch) | |
tree | 2e9831153c584abd5182d01a6ea2364a42fa9806 | |
parent | 3cf7c8cb85e2f85836ca4140c760ceec6f80408f (diff) | |
download | widget-service-accepted/tizen_3.0_tv.tar.gz widget-service-accepted/tizen_3.0_tv.tar.bz2 widget-service-accepted/tizen_3.0_tv.zip |
Receive error code from providersubmit/tizen_3.0/20171011.073910accepted/tizen/3.0/wearable/20171013.121124accepted/tizen/3.0/tv/20171013.121105accepted/tizen/3.0/mobile/20171013.121046accepted/tizen/3.0/common/20171013.190649accepted/tizen_3.0_wearableaccepted/tizen_3.0_tvaccepted/tizen_3.0_mobileaccepted/tizen_3.0_common
- 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.h | 1 | ||||
-rw-r--r-- | src/widget_instance.c | 25 |
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) |