Support multiple instance launch 05/108805/4
authorHwankyu Jhun <h.jhun@samsung.com>
Fri, 6 Jan 2017 00:53:45 +0000 (09:53 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Fri, 13 Jan 2017 04:19:47 +0000 (13:19 +0900)
- Add new internal APIs
app_control_set_instance_id()
app_control_get_instance_id()
- When the application is launched by using multiple instance launch,
It has the specified instance ID.

- Requires:
[aul] https://review.tizen.org/gerrit/#/c/108620/
[amd] https://review.tizen.org/gerrit/#/c/109746/
[rua] https://review.tizen.org/gerrit/#/c/109906/
[app-manager] https://review.tizen.org/gerrit/#/c/110114/

Change-Id: I057e5bd09890a489245b93fe143d49d189462119
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
app_control/app_control.c
include/app_control_internal.h

index 9efcba0..5a3f983 100755 (executable)
@@ -1218,3 +1218,34 @@ int app_control_enable_app_started_result_event(app_control_h app_control)
        return APP_CONTROL_ERROR_NONE;
 }
 
+int app_control_set_instance_id(app_control_h app_control, const char *instance_id)
+{
+       int ret;
+
+       if (app_control_validate(app_control) || instance_id == NULL)
+               return app_control_error(APP_CONTROL_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
+
+       ret = aul_svc_set_instance_id(app_control->data, instance_id);
+       if (ret < 0)
+               return app_control_error(APP_CONTROL_ERROR_OUT_OF_MEMORY, __FUNCTION__, "Out of memory");
+
+       return APP_CONTROL_ERROR_NONE;
+}
+
+int app_control_get_instance_id(app_control_h app_control, char **instance_id)
+{
+       const char *id;
+
+       if (app_control_validate(app_control) || instance_id == NULL)
+               return app_control_error(APP_CONTROL_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
+
+       id = aul_svc_get_instance_id(app_control->data);
+       if (id == NULL)
+               return app_control_error(APP_CONTROL_ERROR_INVALID_PARAMETER, __FUNCTION__, "Failed to get the instance id");
+
+       *instance_id = strdup(id);
+       if (*instance_id == NULL)
+               return app_control_error(APP_CONTROL_ERROR_OUT_OF_MEMORY, __FUNCTION__, "Failed to duplicate the instance id");
+
+       return APP_CONTROL_ERROR_NONE;
+}
index 99aa537..afd8399 100644 (file)
@@ -204,6 +204,33 @@ int app_control_set_defapp(app_control_h app_control, const char *app_id);
  *
  */
 int app_control_unset_defapp(const char *app_id);
+
+/**
+ * @brief Sets the instance ID of the application
+ *
+ * @since_tizen tizen_3.0
+ * @param[in] app_control The app_control handle
+ * @param[in] instance_id The instance ID of the application
+ * @return 0 on success, otherwise a negative error value
+ * @retval #APP_CONTROL_ERROR_NONE Successful
+ * @retval #APP_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #APP_CONTROL_OUT_OF_MEMORY Out of memory
+ */
+int app_control_set_instance_id(app_control_h app_control, const char *instance_id);
+
+/**
+ * @brief Gets the instance ID of the application
+ *
+ * @since_tizen tizen_3.0
+ * @param[in] app_control The app_control handle
+ * @param[out] instance_id The instance ID of the application
+ * @return 0 on success, otherwise a negative error value
+ * @retval #APP_CONTROL_ERROR_NONE Successful
+ * @retval #APP_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #APP_CONTROL_OUT_OF_MEMORY Out of memory
+ */
+int app_control_get_instance_id(app_control_h app_control, char **instance_id);
+
 /**
  * @}
  */
@@ -213,4 +240,3 @@ int app_control_unset_defapp(const char *app_id);
 #endif
 
 #endif /* __TIZEN_APPFW_APP_CONTROL_INTERNAL_H__ */
-