#include "ttd-cmd-type.h"
-ttd_cmd_data *ttd_cmd_new(void);
+ttd_cmd_data *ttd_cmd_new(const char *cmd_id);
void ttd_cmd_free(ttd_cmd_data *cmd);
int ttd_cmd_set_state(ttd_cmd_data *cmd, ttd_cmd_state_e state);
int ttd_cmd_set_type(ttd_cmd_data *cmd, ttd_cmd_type_e type);
-int ttd_cmd_set_id(ttd_cmd_data *cmd, const char *id);
int ttd_cmd_set_command(ttd_cmd_data *cmd, int command);
int ttd_cmd_set_data(ttd_cmd_data *cmd,
void *data, unsigned int length, cmd_data_free_func free_fn);
cmd_data_free_func data_free_func;
};
-ttd_cmd_data *ttd_cmd_new(void)
+ttd_cmd_data *ttd_cmd_new(const char *cmd_id)
{
ttd_cmd_data *data = NULL;
+ char *id = NULL;
+
+ retv_if(!cmd_id, NULL);
+
+ id = g_strdup(cmd_id);
+ retv_if(!id, NULL);
data = g_try_malloc0(sizeof(struct _ttd_cmd_data_s));
+ if (!data) {
+ _E("failed to malloc");
+ g_free(id);
+ return NULL;
+ }
+
data->state = TTD_CMD_STATE_UNKNOWN;
data->type = TTD_CMD_TYPE_UNKNOWN;
+ data->cmd_id = id;
return data;
}
return 0;
}
-int ttd_cmd_set_id(ttd_cmd_data *cmd, const char *id)
-{
- retv_if(!cmd, -1);
-
- if (cmd->cmd_id)
- g_free(cmd->cmd_id);
-
- cmd->cmd_id = g_strdup(id);
-
- return 0;
-}
-
int ttd_cmd_set_command(ttd_cmd_data *cmd, int command)
{
retv_if(!cmd, -1);
continue;
}
- temp_obj = json_object_object_get(obj, TTD_CMD_KEY_TYPE);
- cmd_type = json_object_get_int(temp_obj);
+ temp_obj = json_object_object_get(obj, TTD_CMD_KEY_ID);
+ cmd_id = json_object_get_string(temp_obj);
+ if (!cmd_id) {
+ _E("failed to get cmd id - %s", json_object_get_string(obj));
+ continue;
+ }
+
+ cmd_data = ttd_cmd_new(cmd_id);
+ if (!cmd_data) {
+ _E("failed to create cmd - %s", json_object_get_string(obj));
+ continue;
+ }
- cmd_data = ttd_cmd_new();
ttd_cmd_set_state(cmd_data, TTD_CMD_STATE_CREATED);
+
+ temp_obj = json_object_object_get(obj, TTD_CMD_KEY_TYPE);
+ cmd_type = json_object_get_int(temp_obj);
ttd_cmd_set_type(cmd_data, cmd_type);
+
ret = __parse_cmd_by_type(obj, cmd_data);
if (ret) {
_E("failed to parse cmd - %s", json_object_get_string(obj));
ttd_cmd_free(cmd_data);
continue;
}
- temp_obj = json_object_object_get(obj, TTD_CMD_KEY_ID);
- cmd_id = json_object_get_string(temp_obj);
- ttd_cmd_set_id(cmd_data, cmd_id);
list = g_list_append(list, cmd_data);
}
const char *app_id = NULL;
cmd_id = ttd_cmd_get_id(c_data);
+ retv_if(!cmd_id, -1);
switch (ttd_cmd_get_command(c_data)) {
case TTD_CMD_INFO_GET_SYSINFO:
app_control_set_operation(ac_h, APP_CONTROL_OPERATION_DEFAULT);
app_control_set_app_id(ac_h, app_id);
- if (cmd_id)
- app_control_add_extra_data(ac_h, "id", cmd_id);
+ app_control_add_extra_data(ac_h, "id", cmd_id);
ac_ret = app_control_send_launch_request(ac_h, NULL, NULL);
if (ac_ret != APP_CONTROL_ERROR_NONE) {
int ret = 0;
cmd_id = ttd_cmd_get_id(c_data);
+ retv_if(!cmd_id, -1);
switch (ttd_cmd_get_command(c_data)) {
case TTD_CMD_PACKAGE_INSTALL:
app_control_set_operation(ac_h, APP_CONTROL_OPERATION_DEFAULT);
app_control_set_app_id(ac_h, WORKER_PKG_MGR);
app_control_add_extra_data(ac_h, "operation", op);
-
- if (cmd_id)
- app_control_add_extra_data(ac_h, "id", cmd_id);
+ app_control_add_extra_data(ac_h, "id", cmd_id);
if (extra)
app_control_add_extra_data(ac_h, "meta", extra);