From: Jaeho Lee Date: Mon, 24 Jun 2013 07:10:20 +0000 (+0900) Subject: merge private X-Git-Tag: submit/tizen/20131002.044811^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8cc875e23fd7755acc292ae564c3a3938ff64975;p=platform%2Fcore%2Fapi%2Fapplication.git merge private Signed-off-by: Jaeho Lee --- diff --git a/include/app_service.h b/include/app_service.h index eae2c5e..fc8bab3 100755 --- a/include/app_service.h +++ b/include/app_service.h @@ -31,6 +31,9 @@ extern "C" { */ +typedef struct _bundle_t bundle; + + /** * @brief Service handle. */ @@ -277,6 +280,17 @@ int service_create(service_h *service); int service_destroy(service_h service); +/** + * @brief Converts the service handle to bundle data. + * + * @param [in] service The service handle + * @param [out] data a bundle data on success + * @return 0 on success, otherwise a negative error value. + * @retval #SERVICE_ERROR_NONE Successful + * @retval #SERVICE_ERROR_INVALID_PARAMETER Invalid parameter + */ +int service_to_bundle(service_h service, bundle **data); + /** * @brief Sets the operation to be performed. * diff --git a/include/app_service_private.h b/include/app_service_private.h index 6f71533..f5a4963 100755 --- a/include/app_service_private.h +++ b/include/app_service_private.h @@ -28,8 +28,6 @@ int service_create_request(bundle *data, service_h *service); int service_create_event(bundle *data, service_h *service); -int service_to_bundle(service_h service, bundle **data); - #ifdef __cplusplus } #endif diff --git a/packaging/capi-appfw-application.spec b/packaging/capi-appfw-application.spec index be89ed2..af7d029 100755 --- a/packaging/capi-appfw-application.spec +++ b/packaging/capi-appfw-application.spec @@ -1,7 +1,7 @@ Name: capi-appfw-application Summary: An Application library in SLP C API Version: 0.1.0 -Release: 54 +Release: 55 Group: API License: Apache-2.0 Source0: %{name}-%{version}.tar.gz diff --git a/src/service.c b/src/service.c index e01f86a..7c88313 100755 --- a/src/service.c +++ b/src/service.c @@ -60,6 +60,7 @@ struct service_s { int id; service_type_e type; bundle *data; + int launch_pid; }; typedef struct service_request_context_s { @@ -265,6 +266,7 @@ int service_create_request(bundle *data, service_h *service) } service_request->id = service_new_id(); + service_request->launch_pid = -1; *service = service_request; @@ -754,6 +756,26 @@ int service_send_launch_request(service_h service, service_reply_cb callback, vo } } + service->launch_pid = launch_pid; + + return SERVICE_ERROR_NONE; +} + + +int service_send_terminate_request(service_h service) +{ + if (service_valiate_service(service)) + { + return service_error(SERVICE_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL); + } + + if(service->type != SERVICE_TYPE_REQUEST || service->launch_pid < 0) + { + return service_error(SERVICE_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL); + } + + appsvc_subapp_terminate_request_pid(service->launch_pid); + return SERVICE_ERROR_NONE; }