static void __do_app(enum agent_event event, void *data, bundle * b)
{
- int r = 0;
struct agent_priv *svc = data;
app_control_h app_control = NULL;
_ret_if(svc->ops == NULL);
if (app_control_create_event(b, &app_control) != 0)
- {
return;
- }
switch (event) {
case AGE_REQUEST:
if (svc->ops->app_control)
- r = svc->ops->app_control(app_control, svc->ops->data);
+ svc->ops->app_control(app_control, svc->ops->data);
svc->state = AGS_RUNNING;
break;
/* case AGE_STOP:
if(svc->state == AGS_RUNNING) {
if (svc->ops->stop)
- r = svc->ops->stop(svc->ops->data);
+ svc->ops->stop(svc->ops->data);
svc->state = AGS_STOPED;
}
break;
r = setlocale(LC_ALL, lang);
if (r == NULL) {
r = setlocale(LC_ALL, lang);
- if (r) {
+ if (r)
_DBG("*****appcore-agent setlocale=%s\n", r);
- }
}
}
setenv("LC_IDENTIFICATION", region, 1);
r = setlocale(LC_ALL, "");
- if (r != NULL) {
+ if (r != NULL)
_DBG("*****appcore-agent setlocale=%s\n", r);
- }
}
return 0;
static int __aul_handler(aul_type type, bundle *b, void *data)
{
- int ret;
-
switch (type) {
case AUL_START:
- ret = __agent_request(data, b);
+ __agent_request(data, b);
break;
case AUL_RESUME:
break;
/* case AUL_STOP:
- ret = __service_stop(data);
+ __service_stop(data);
break;
*/
case AUL_TERMINATE:
case AUL_TERMINATE_BGAPP:
- ret = __agent_terminate(data);
+ __agent_terminate(data);
break;
default:
/* do nothing */
int argc, char **argv)
{
int r;
- char *dirname;
+ const char *dirname;
char *app_name = NULL;
int pid;
_retv_if(r == -1, -1);
r = aul_launch_init(__aul_handler, &core);
- if (r < 0) {
+ if (r < 0)
goto err;
- }
r = aul_launch_argv_handler(argc, argv);
- if (r < 0) {
+ if (r < 0)
goto err;
- }
core.ops = ops;
- core.state = 1; /* TODO: use enum value */
+ core.state = 1; /* TODO: use enum value */
return 0;
err:
__del_vconf_list();
- //__clear(&core);
+
return -1;
}
if (agent->ops && agent->ops->create) {
r = agent->ops->create(agent->ops->data);
if (r < 0) {
- //appcore_exit();
if (agent->ops && agent->ops->terminate)
agent->ops->terminate(agent->ops->data);
errno = ECANCELED;
{
__del_vconf_list();
ecore_main_loop_thread_safe_call_sync((Ecore_Data_Cb)__exit_loop, NULL);
+
return 0;
}
EXPORT_API int appcore_agent_terminate_without_restart()
{
- int ret;
-
__del_vconf_list();
aul_status_update(STATUS_NORESTART);
ecore_main_loop_thread_safe_call_sync((Ecore_Data_Cb)__exit_loop, NULL);
+
return 0;
}
_retv_if(r == -1, -1);
r = __before_loop(&priv, argc, argv);
- if (r == -1) {
- //__unset_data(&priv);
+ if (r == -1)
return -1;
- }
ecore_main_loop_begin();
__after_loop(&priv);
- //__unset_data(&priv);
-
return 0;
}
static const char* service_app_error_to_string(app_error_e error)
{
- switch (error)
- {
+ switch (error) {
case APP_ERROR_NONE:
return "NONE";
-
case APP_ERROR_INVALID_PARAMETER:
return "INVALID_PARAMETER";
-
case APP_ERROR_OUT_OF_MEMORY:
return "OUT_OF_MEMORY";
-
case APP_ERROR_INVALID_CONTEXT:
return "INVALID_CONTEXT";
-
case APP_ERROR_NO_SUCH_FILE:
return "NO_SUCH_FILE";
-
case APP_ERROR_ALREADY_RUNNING:
return "ALREADY_RUNNING";
-
- default :
+ default:
return "UNKNOWN";
}
}
int service_app_error(app_error_e error, const char* function, const char *description)
{
if (description)
- {
LOGE("[%s] %s(0x%08x) : %s", function, service_app_error_to_string(error), error, description);
- }
else
- {
LOGE("[%s] %s(0x%08x)", function, service_app_error_to_string(error), error);
- }
return error;
}
#include <stdlib.h>
-
+#include <unistd.h>
#include <bundle.h>
#include <aul.h>
#include <dlog.h>
#include <vconf-internal-keys.h>
#include <app_common.h>
-
#include <Eina.h>
-
#include <appcore-agent.h>
+
#include "service_app_private.h"
#include "service_app_extension.h"
-#include <unistd.h>
-
-
#ifdef LOG_TAG
#undef LOG_TAG
#endif
#define TIZEN_PATH_MAX 1024
#endif
-
#define LOG_TAG "CAPI_APPFW_APPLICATION"
typedef enum {
- SERVICE_APP_STATE_NOT_RUNNING, // The application has been launched or was running but was terminated
- SERVICE_APP_STATE_CREATING, // The application is initializing the resources on service_app_create_cb callback
- SERVICE_APP_STATE_RUNNING, // The application is running in the foreground and background
+ SERVICE_APP_STATE_NOT_RUNNING, /* The application has been launched or was running but was terminated */
+ SERVICE_APP_STATE_CREATING, /* The application is initializing the resources on service_app_create_cb callback */
+ SERVICE_APP_STATE_RUNNING, /* The application is running in the foreground and background */
} service_app_state_e;
static int _service_app_get_id(char **id)
int ret = -1;
if (id == NULL)
- {
return service_app_error(APP_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
- }
- if (id_buf[0] == '\0')
- {
+ if (id_buf[0] == '\0') {
ret = aul_app_get_appid_bypid(getpid(), id_buf, sizeof(id_buf));
-
- if (ret < 0) {
+ if (ret < 0)
return service_app_error(APP_ERROR_INVALID_CONTEXT, __FUNCTION__, "failed to get the application ID");
- }
}
if (id_buf[0] == '\0')
- {
return service_app_error(APP_ERROR_INVALID_CONTEXT, __FUNCTION__, "failed to get the application ID");
- }
*id = strdup(id_buf);
-
if (*id == NULL)
- {
return service_app_error(APP_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL);
- }
return APP_ERROR_NONE;
}
char *name_token = NULL;
if (appid == NULL)
- {
return service_app_error(APP_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
- }
- // com.vendor.name -> name
+ /* com.vendor.name -> name */
name_token = strrchr(appid, '.');
-
if (name_token == NULL)
- {
return service_app_error(APP_ERROR_INVALID_CONTEXT, __FUNCTION__, NULL);
- }
name_token++;
*name = strdup(name_token);
-
if (*name == NULL)
- {
return service_app_error(APP_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL);
- }
return APP_ERROR_NONE;
}
service_app_create_cb create_cb;
if (app_context == NULL)
- {
return service_app_error(APP_ERROR_INVALID_CONTEXT, __FUNCTION__, NULL);
- }
appcore_agent_initialized = 1;
_service_app_set_appcore_event_cb();
create_cb = app_context->callback->create;
-
if (create_cb == NULL || create_cb(app_context->data) == false)
- {
return service_app_error(APP_ERROR_INVALID_CONTEXT, __FUNCTION__, "service_app_create_cb() returns false");
- }
app_context->state = SERVICE_APP_STATE_RUNNING;
service_app_terminate_cb terminate_cb;
if (app_context == NULL)
- {
return service_app_error(APP_ERROR_INVALID_CONTEXT, __FUNCTION__, NULL);
- }
terminate_cb = app_context->callback->terminate;
-
if (terminate_cb != NULL)
- {
terminate_cb(app_context->data);
- }
_service_app_unset_appcore_event_cb();
service_app_control_cb service_cb;
if (app_context == NULL)
- {
return service_app_error(APP_ERROR_INVALID_CONTEXT, __FUNCTION__, NULL);
- }
service_cb = app_context->callback->app_control;
-
if (service_cb != NULL)
- {
service_cb(app_control, app_context->data);
- }
return APP_ERROR_NONE;
}
};
if (argc <= 0 || argv == NULL || callback == NULL)
- {
return service_app_error(APP_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
- }
if (callback->create == NULL)
- {
return service_app_error(APP_ERROR_INVALID_PARAMETER, __FUNCTION__, "service_app_create_cb() callback must be registered");
- }
if (app_context.state != SERVICE_APP_STATE_NOT_RUNNING)
- {
return service_app_error(APP_ERROR_ALREADY_RUNNING, __FUNCTION__, NULL);
- }
-
- if (_service_app_get_id(&(app_context.package)) == APP_ERROR_NONE)
- {
- if (_service_appget_package_app_name(app_context.package, &(app_context.service_app_name)) != APP_ERROR_NONE)
- {
+ if (_service_app_get_id(&(app_context.package)) == APP_ERROR_NONE) {
+ if (_service_appget_package_app_name(app_context.package, &(app_context.service_app_name)) != APP_ERROR_NONE) {
free(app_context.package);
+ app_context.package = NULL;
}
}