3 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 * Licensed under the Apache License, Version 2.0 (the License);
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
19 * @OMA_DS_Engine_Controller_Task.c
21 * @brief This file is the source file of implementation of make and register task to Engine Controller
26 #include <sync_agent.h>
28 #include "framework/task/oma_ds_engine_controller_task.h"
29 #include "service-engine/se_account.h"
30 #include "service-engine/se_sync.h"
31 #include "service-engine/se_storage.h"
33 #ifndef OMADS_AGENT_LOG
35 #define LOG_TAG "OMA_DS_COMMON"
38 static GList *sync_request_id_list = NULL;
40 static void _free_sync_categorie_list(void *list);
41 static void _free_delete_profile_list(void *list);
42 static void _free_resource_cp_list(void *list);
44 static void _request_msg_info_free(request_msg_info_t * info);
45 static void *_string_copy_struct(void *string);
46 static request_msg_info_t *_create_request_msg_info(int sync_type, unsigned int request_id, int profile_id);
48 static void __free_resource_cp(resource_cp_s * resource);
50 static void _free_sync_categorie_list(void *list)
53 retm_if(list == NULL, "list is NULL");
55 GList *categories = (GList *) list;
57 for (iter = categories; iter != NULL; iter = g_list_next(iter))
58 free_sync_service(iter->data);
60 g_list_free(categories);
64 static void _free_delete_profile_list(void *list)
67 retm_if(list == NULL, "list is NULL");
69 GList *profiles = (GList *) list;
71 for (iter = profiles; iter != NULL; iter = g_list_next(iter))
74 g_list_free(profiles);
78 static void _free_resource_cp_list(void *list)
81 retm_if(list == NULL, "list is NULL");
83 GList *profiles = (GList *) list;
85 for (iter = profiles; iter != NULL; iter = g_list_next(iter))
86 __free_resource_cp(iter->data);
88 g_list_free(profiles);
92 static void __free_resource_cp(resource_cp_s * resource)
95 retm_if(resource == NULL, "resource is NULL");
97 if (resource->name != NULL)
100 if (resource->accept != NULL)
101 free(resource->accept);
103 if (resource->id != NULL)
106 if (resource->password != NULL)
107 free(resource->password);
109 if (resource->auth_type != NULL)
110 free(resource->auth_type);
112 if (resource->auth_data != NULL)
113 free(resource->auth_data);
119 static request_msg_info_t *_create_request_msg_info(int sync_type, unsigned int request_id, int profile_id)
122 request_msg_info_t *pInfo = (request_msg_info_t *) calloc(1, sizeof(request_msg_info_t));
123 retvm_if(pInfo == NULL, NULL, "pInfo is NULL");
125 pInfo->sync_type = sync_type;
126 pInfo->request_id = request_id;
127 pInfo->profile_id = profile_id;
133 static void _request_msg_info_free(request_msg_info_t * info)
143 static void *_string_copy_struct(void *string)
148 data = strdup((const char *)string);
154 sync_agent_ec_task_spec_s *make_synchronize_task()
158 sync_agent_ec_param_spec_s *pParam_spec1 = sync_agent_alloc_param_spec_int("accountId", true, false, false, 0, 0, false, 0, false, 0, 0);
159 sync_agent_ec_param_spec_s *pParam_spec2 = sync_agent_alloc_param_spec_structure("syncMode", _string_copy_struct, free,
160 true, false, false, NULL, false, NULL, false, NULL);
161 sync_agent_ec_param_spec_s *pParam_spec3 = sync_agent_alloc_param_spec_structure("sanPackage", NULL, sanPackageParserFree,
162 true, false, false, NULL, false, NULL, false, NULL);
163 sync_agent_ec_param_spec_s *param_spec_array[3] = { pParam_spec1, pParam_spec2, pParam_spec3 };
165 sync_agent_ec_task_spec_s *pTask_spec = sync_agent_alloc_simple_task_spec("synchronize",
166 synchronize_task_process, NULL, NULL,
167 3, param_spec_array);
169 sync_agent_unref_param_spec(pParam_spec1);
170 sync_agent_unref_param_spec(pParam_spec2);
171 sync_agent_unref_param_spec(pParam_spec3);
177 sync_agent_ec_task_spec_s *make_add_profile_task()
181 sync_agent_ec_param_spec_s *pParam_spec1 = sync_agent_alloc_param_spec_structure("profileName", _string_copy_struct, free,
182 true, false, false, NULL, false, NULL, false, NULL);
183 sync_agent_ec_param_spec_s *pParam_spec2 = sync_agent_alloc_param_spec_structure("addr", _string_copy_struct, free,
184 true, false, false, NULL, false, NULL, false, NULL);
185 sync_agent_ec_param_spec_s *pParam_spec3 = sync_agent_alloc_param_spec_structure("id", _string_copy_struct, free,
186 true, false, false, NULL, false, NULL, false, NULL);
187 sync_agent_ec_param_spec_s *pParam_spec4 = sync_agent_alloc_param_spec_structure("password", _string_copy_struct, free,
188 true, false, false, NULL, false, NULL, false, NULL);
189 sync_agent_ec_param_spec_s *pParam_spec5 = sync_agent_alloc_param_spec_int("syncMode", true, false, false, 0, 0, false, 0, false, 0, 0);
190 sync_agent_ec_param_spec_s *pParam_spec6 = sync_agent_alloc_param_spec_int("syncType", true, false, false, 0, 0, false, 0, false, 0, 0);
191 sync_agent_ec_param_spec_s *pParam_spec7 = sync_agent_alloc_param_spec_int("interval", true, false, false, 0, 0, false, 0, false, 0, 0);
192 sync_agent_ec_param_spec_s *pParam_spec8 = sync_agent_alloc_param_spec_structure("categories", NULL, _free_sync_categorie_list,
193 true, false, false, NULL, false, NULL, false, NULL);
195 sync_agent_ec_param_spec_s *pParam_spec9 = sync_agent_alloc_param_spec_int("result", false, true, false, 0, 0, false, 0, false, 0, 0);
196 sync_agent_ec_param_spec_s *pParam_spec10 = sync_agent_alloc_param_spec_int("accountId", false, true, false, 0, 0, false, 0, false, 0, 0);
198 sync_agent_ec_param_spec_s *param_spec_array[10] = { pParam_spec1, pParam_spec2, pParam_spec3, pParam_spec4, pParam_spec5,
199 pParam_spec6, pParam_spec7, pParam_spec8, pParam_spec9, pParam_spec10
202 sync_agent_ec_task_spec_s *pTask_spec = sync_agent_alloc_simple_task_spec("add_profile",
203 add_profile_task_process, NULL, NULL,
204 10, param_spec_array);
206 sync_agent_unref_param_spec(pParam_spec1);
207 sync_agent_unref_param_spec(pParam_spec2);
208 sync_agent_unref_param_spec(pParam_spec3);
209 sync_agent_unref_param_spec(pParam_spec4);
210 sync_agent_unref_param_spec(pParam_spec5);
211 sync_agent_unref_param_spec(pParam_spec6);
212 sync_agent_unref_param_spec(pParam_spec7);
213 sync_agent_unref_param_spec(pParam_spec8);
214 sync_agent_unref_param_spec(pParam_spec9);
215 sync_agent_unref_param_spec(pParam_spec10);
221 sync_agent_ec_task_spec_s *make_edit_profile_task()
225 sync_agent_ec_param_spec_s *pParam_spec1 = sync_agent_alloc_param_spec_int("accountId", true, false, false, 0, 0, false, 0, false, 0, 0);
226 sync_agent_ec_param_spec_s *pParam_spec2 = sync_agent_alloc_param_spec_structure("profileName", _string_copy_struct, free,
227 true, false, false, NULL, false, NULL, false, NULL);
228 sync_agent_ec_param_spec_s *pParam_spec3 = sync_agent_alloc_param_spec_structure("addr", _string_copy_struct, free,
229 true, false, false, NULL, false, NULL, false, NULL);
230 sync_agent_ec_param_spec_s *pParam_spec4 = sync_agent_alloc_param_spec_structure("id", _string_copy_struct, free,
231 true, false, false, NULL, false, NULL, false, NULL);
232 sync_agent_ec_param_spec_s *pParam_spec5 = sync_agent_alloc_param_spec_structure("password", _string_copy_struct, free,
233 true, false, false, NULL, false, NULL, false, NULL);
234 sync_agent_ec_param_spec_s *pParam_spec6 = sync_agent_alloc_param_spec_int("syncMode", true, false, false, 0, 0, false, 0, false, 0, 0);
235 sync_agent_ec_param_spec_s *pParam_spec7 = sync_agent_alloc_param_spec_int("syncType", true, false, false, 0, 0, false, 0, false, 0, 0);
236 sync_agent_ec_param_spec_s *pParam_spec8 = sync_agent_alloc_param_spec_int("interval", true, false, false, 0, 0, false, 0, false, 0, 0);
237 sync_agent_ec_param_spec_s *pParam_spec9 = sync_agent_alloc_param_spec_structure("categories", NULL, _free_sync_categorie_list,
238 true, false, false, NULL, false, NULL, false, NULL);
240 sync_agent_ec_param_spec_s *pParam_spec10 = sync_agent_alloc_param_spec_int("result", false, true, false, 0, 0, false, 0, false, 0, 0);
242 sync_agent_ec_param_spec_s *param_spec_array[10] = { pParam_spec1, pParam_spec2, pParam_spec3, pParam_spec4, pParam_spec5,
243 pParam_spec6, pParam_spec7, pParam_spec8, pParam_spec9, pParam_spec10
246 sync_agent_ec_task_spec_s *pTask_spec = sync_agent_alloc_simple_task_spec("edit_profile",
247 edit_profile_task_process, NULL, NULL,
248 10, param_spec_array);
250 sync_agent_unref_param_spec(pParam_spec1);
251 sync_agent_unref_param_spec(pParam_spec2);
252 sync_agent_unref_param_spec(pParam_spec3);
253 sync_agent_unref_param_spec(pParam_spec4);
254 sync_agent_unref_param_spec(pParam_spec5);
255 sync_agent_unref_param_spec(pParam_spec6);
256 sync_agent_unref_param_spec(pParam_spec7);
257 sync_agent_unref_param_spec(pParam_spec8);
258 sync_agent_unref_param_spec(pParam_spec9);
259 sync_agent_unref_param_spec(pParam_spec10);
265 sync_agent_ec_task_spec_s *make_delete_profile_task()
269 sync_agent_ec_param_spec_s *pParam_spec1 = sync_agent_alloc_param_spec_int("accountId", true, false, false, 0, 0, false, 0, false, 0, 0);
270 sync_agent_ec_param_spec_s *pParam_spec2 = sync_agent_alloc_param_spec_structure("profiles", NULL, _free_delete_profile_list,
271 true, false, false, NULL, false, NULL, false, NULL);
273 sync_agent_ec_param_spec_s *pParam_spec3 = sync_agent_alloc_param_spec_int("result", false, true, false, 0, 0, false, 0, false, 0, 0);
275 sync_agent_ec_param_spec_s *param_spec_array[3] = { pParam_spec1, pParam_spec2, pParam_spec3 };
277 sync_agent_ec_task_spec_s *pTask_spec = sync_agent_alloc_simple_task_spec("delete_profile",
278 delete_profile_task_process, NULL, NULL,
279 3, param_spec_array);
281 sync_agent_unref_param_spec(pParam_spec1);
282 sync_agent_unref_param_spec(pParam_spec2);
283 sync_agent_unref_param_spec(pParam_spec3);
289 sync_agent_ec_task_spec_s *make_get_profile_data_task()
293 sync_agent_ec_param_spec_s *pParam_spec1 = sync_agent_alloc_param_spec_int("accountId", true, false, false, 0, 0, false, 0, false, 0, 0);
295 sync_agent_ec_param_spec_s *pParam_spec2 = sync_agent_alloc_param_spec_int("result", false, true, false, 0, 0, false, 0, false, 0, 0);
296 sync_agent_ec_param_spec_s *pParam_spec3 = sync_agent_alloc_param_spec_structure("profile_dir_name", _string_copy_struct, free,
297 false, true, false, NULL, false, NULL, false, NULL);
298 sync_agent_ec_param_spec_s *pParam_spec4 = sync_agent_alloc_param_spec_structure("profile_name", _string_copy_struct, free,
299 false, true, false, NULL, false, NULL, false, NULL);
300 sync_agent_ec_param_spec_s *pParam_spec5 = sync_agent_alloc_param_spec_structure("addr", _string_copy_struct, free,
301 false, true, false, NULL, false, NULL, false, NULL);
302 sync_agent_ec_param_spec_s *pParam_spec6 = sync_agent_alloc_param_spec_structure("id", _string_copy_struct, free,
303 false, true, false, NULL, false, NULL, false, NULL);
304 sync_agent_ec_param_spec_s *pParam_spec7 = sync_agent_alloc_param_spec_structure("password", _string_copy_struct, free,
305 false, true, false, NULL, false, NULL, false, NULL);
306 sync_agent_ec_param_spec_s *pParam_spec8 = sync_agent_alloc_param_spec_int("syncMode", false, true, false, 0, 0, false, 0, false, 0, 0);
307 sync_agent_ec_param_spec_s *pParam_spec9 = sync_agent_alloc_param_spec_int("syncType", false, true, false, 0, 0, false, 0, false, 0, 0);
308 sync_agent_ec_param_spec_s *pParam_spec10 = sync_agent_alloc_param_spec_int("interval", false, true, false, 0, 0, false, 0, false, 0, 0);
309 sync_agent_ec_param_spec_s *pParam_spec11 = sync_agent_alloc_param_spec_int("lastSessionStatus", false, true, false, 0, 0, false, 0, false, 0, 0);
310 sync_agent_ec_param_spec_s *pParam_spec12 = sync_agent_alloc_param_spec_int("lastSessionTime", false, true, false, 0, 0, false, 0, false, 0, 0);
312 sync_agent_ec_param_spec_s *param_spec_array[12] = { pParam_spec1, pParam_spec2, pParam_spec3,
313 pParam_spec4, pParam_spec5, pParam_spec6, pParam_spec7, pParam_spec8,
314 pParam_spec9, pParam_spec10, pParam_spec11, pParam_spec12
317 sync_agent_ec_task_spec_s *pTask_spec = sync_agent_alloc_simple_task_spec("get_profile_data",
318 get_profile_data_task_process, NULL, NULL,
319 12, param_spec_array);
321 sync_agent_unref_param_spec(pParam_spec1);
322 sync_agent_unref_param_spec(pParam_spec2);
323 sync_agent_unref_param_spec(pParam_spec3);
324 sync_agent_unref_param_spec(pParam_spec4);
325 sync_agent_unref_param_spec(pParam_spec5);
326 sync_agent_unref_param_spec(pParam_spec6);
327 sync_agent_unref_param_spec(pParam_spec7);
328 sync_agent_unref_param_spec(pParam_spec8);
329 sync_agent_unref_param_spec(pParam_spec9);
330 sync_agent_unref_param_spec(pParam_spec10);
331 sync_agent_unref_param_spec(pParam_spec11);
332 sync_agent_unref_param_spec(pParam_spec12);
338 sync_agent_ec_task_spec_s *make_get_profile_sync_category_task()
342 sync_agent_ec_param_spec_s *pParam_spec1 = sync_agent_alloc_param_spec_int("accountId", true, false, false, 0, 0, false, 0, false, 0, 0);
343 sync_agent_ec_param_spec_s *pParam_spec2 = sync_agent_alloc_param_spec_int("contentType", true, false, false, 0, 0, false, 0, false, 0, 0);
345 sync_agent_ec_param_spec_s *pParam_spec3 = sync_agent_alloc_param_spec_int("result", false, true, false, 0, 0, false, 0, false, 0, 0);
346 sync_agent_ec_param_spec_s *pParam_spec4 = sync_agent_alloc_param_spec_int("enabled", false, true, false, 0, 0, false, 0, false, 0, 0);
347 sync_agent_ec_param_spec_s *pParam_spec5 = sync_agent_alloc_param_spec_int("srcURI", false, true, false, 0, 0, false, 0, false, 0, 0);
348 sync_agent_ec_param_spec_s *pParam_spec6 = sync_agent_alloc_param_spec_structure("tgtURI", _string_copy_struct, free,
349 false, true, false, NULL, false, NULL, false, NULL);
350 sync_agent_ec_param_spec_s *pParam_spec7 = sync_agent_alloc_param_spec_structure("id", _string_copy_struct, free,
351 false, true, false, NULL, false, NULL, false, NULL);
352 sync_agent_ec_param_spec_s *pParam_spec8 = sync_agent_alloc_param_spec_structure("password", _string_copy_struct, free,
353 false, true, false, NULL, false, NULL, false, NULL);
355 sync_agent_ec_param_spec_s *param_spec_array[8] = { pParam_spec1, pParam_spec2, pParam_spec3, pParam_spec4,
356 pParam_spec5, pParam_spec6, pParam_spec7, pParam_spec8
359 sync_agent_ec_task_spec_s *pTask_spec = sync_agent_alloc_simple_task_spec("get_profile_sync_category",
360 get_profile_sync_category_task_process, NULL, NULL,
361 8, param_spec_array);
363 sync_agent_unref_param_spec(pParam_spec1);
364 sync_agent_unref_param_spec(pParam_spec2);
365 sync_agent_unref_param_spec(pParam_spec3);
366 sync_agent_unref_param_spec(pParam_spec4);
367 sync_agent_unref_param_spec(pParam_spec5);
368 sync_agent_unref_param_spec(pParam_spec6);
369 sync_agent_unref_param_spec(pParam_spec7);
370 sync_agent_unref_param_spec(pParam_spec8);
376 sync_agent_ec_task_spec_s *make_get_profile_statistics_task()
380 sync_agent_ec_param_spec_s *pParam_spec1 = sync_agent_alloc_param_spec_int("accountId", true, false, false, 0, 0, false, 0, false, 0, 0);
381 sync_agent_ec_param_spec_s *pParam_spec2 = sync_agent_alloc_param_spec_int("contentType", true, false, false, 0, 0, false, 0, false, 0, 0);
383 sync_agent_ec_param_spec_s *pParam_spec3 = sync_agent_alloc_param_spec_int("result", false, true, false, 0, 0, false, 0, false, 0, 0);
384 sync_agent_ec_param_spec_s *pParam_spec4 = sync_agent_alloc_param_spec_structure("dbSynced", _string_copy_struct, free,
385 false, true, false, NULL, false, NULL, false, NULL);
386 sync_agent_ec_param_spec_s *pParam_spec5 = sync_agent_alloc_param_spec_int("lastSessionTime", false, true, false, 0, 0, false, 0, false, 0, 0);
387 sync_agent_ec_param_spec_s *pParam_spec6 = sync_agent_alloc_param_spec_int("server2Client_Total", false, true, false, 0, 0, false, 0, false, 0, 0);
388 sync_agent_ec_param_spec_s *pParam_spec7 = sync_agent_alloc_param_spec_int("server2Client_NrOfAdd", false, true, false, 0, 0, false, 0, false, 0, 0);
389 sync_agent_ec_param_spec_s *pParam_spec8 = sync_agent_alloc_param_spec_int("server2Client_NrOfDelete", false, true, false, 0, 0, false, 0, false, 0, 0);
390 sync_agent_ec_param_spec_s *pParam_spec9 = sync_agent_alloc_param_spec_int("server2Client_NrOfReplace", false, true, false, 0, 0, false, 0, false, 0, 0);
391 sync_agent_ec_param_spec_s *pParam_spec10 = sync_agent_alloc_param_spec_int("client2Server_Total", false, true, false, 0, 0, false, 0, false, 0, 0);
392 sync_agent_ec_param_spec_s *pParam_spec11 = sync_agent_alloc_param_spec_int("client2Server_NrOfAdd", false, true, false, 0, 0, false, 0, false, 0, 0);
393 sync_agent_ec_param_spec_s *pParam_spec12 = sync_agent_alloc_param_spec_int("client2Server_NrOfDelete", false, true, false, 0, 0, false, 0, false, 0, 0);
394 sync_agent_ec_param_spec_s *pParam_spec13 = sync_agent_alloc_param_spec_int("client2Server_NrOfReplace", false, true, false, 0, 0, false, 0, false, 0, 0);
396 sync_agent_ec_param_spec_s *param_spec_array[13] = { pParam_spec1, pParam_spec2, pParam_spec3,
397 pParam_spec4, pParam_spec5, pParam_spec6, pParam_spec7, pParam_spec8,
398 pParam_spec9, pParam_spec10, pParam_spec11, pParam_spec12, pParam_spec13
401 sync_agent_ec_task_spec_s *pTask_spec = sync_agent_alloc_simple_task_spec("get_profile_statistics",
402 get_profile_statistics_task_process, NULL, NULL,
403 13, param_spec_array);
405 sync_agent_unref_param_spec(pParam_spec1);
406 sync_agent_unref_param_spec(pParam_spec2);
407 sync_agent_unref_param_spec(pParam_spec3);
408 sync_agent_unref_param_spec(pParam_spec4);
409 sync_agent_unref_param_spec(pParam_spec5);
410 sync_agent_unref_param_spec(pParam_spec6);
411 sync_agent_unref_param_spec(pParam_spec7);
412 sync_agent_unref_param_spec(pParam_spec8);
413 sync_agent_unref_param_spec(pParam_spec9);
414 sync_agent_unref_param_spec(pParam_spec10);
415 sync_agent_unref_param_spec(pParam_spec11);
416 sync_agent_unref_param_spec(pParam_spec12);
417 sync_agent_unref_param_spec(pParam_spec13);
423 sync_agent_ec_task_spec_s *make_reset_synchronizing_profiles_task()
427 sync_agent_ec_task_spec_s *pTask_spec = sync_agent_alloc_simple_task_spec("reset_synchronizing_profiles",
428 reset_synchronizing_profiles_task_process, NULL, NULL,
435 sync_agent_ec_task_spec_s *make_add_profile_cp_task()
439 sync_agent_ec_param_spec_s *pParam_spec1 = sync_agent_alloc_param_spec_structure("profileName", _string_copy_struct, free,
440 true, false, false, NULL, false, NULL, false, NULL);
441 sync_agent_ec_param_spec_s *pParam_spec2 = sync_agent_alloc_param_spec_structure("addr", _string_copy_struct, free,
442 true, false, false, NULL, false, NULL, false, NULL);
443 sync_agent_ec_param_spec_s *pParam_spec3 = sync_agent_alloc_param_spec_structure("id", _string_copy_struct, free,
444 true, false, false, NULL, false, NULL, false, NULL);
445 sync_agent_ec_param_spec_s *pParam_spec4 = sync_agent_alloc_param_spec_structure("password", _string_copy_struct, free,
446 true, false, false, NULL, false, NULL, false, NULL);
447 sync_agent_ec_param_spec_s *pParam_spec5 = sync_agent_alloc_param_spec_structure("categories", NULL, _free_resource_cp_list,
448 true, false, false, NULL, false, NULL, false, NULL);
450 sync_agent_ec_param_spec_s *pParam_spec6 = sync_agent_alloc_param_spec_int("result", false, true, false, 0, 0, false, 0, false, 0, 0);
451 sync_agent_ec_param_spec_s *pParam_spec7 = sync_agent_alloc_param_spec_int("accountId", false, true, false, 0, 0, false, 0, false, 0, 0);
453 sync_agent_ec_param_spec_s *param_spec_array[7] = { pParam_spec1, pParam_spec2, pParam_spec3, pParam_spec4, pParam_spec5,
454 pParam_spec6, pParam_spec7
457 sync_agent_ec_task_spec_s *pTask_spec = sync_agent_alloc_simple_task_spec("add_profile_cp",
458 add_profile_cp_task_process, NULL, NULL,
459 7, param_spec_array);
461 sync_agent_unref_param_spec(pParam_spec1);
462 sync_agent_unref_param_spec(pParam_spec2);
463 sync_agent_unref_param_spec(pParam_spec3);
464 sync_agent_unref_param_spec(pParam_spec4);
465 sync_agent_unref_param_spec(pParam_spec5);
466 sync_agent_unref_param_spec(pParam_spec6);
467 sync_agent_unref_param_spec(pParam_spec7);
473 sync_agent_ec_task_spec_s *make_refresh_from_service_task()
477 sync_agent_ec_param_spec_s *pParam_spec1 = sync_agent_alloc_param_spec_int("accountId", true, false, false, 0, 0, false, 0, false, 0, 0);
479 sync_agent_ec_param_spec_s *param_spec_array[1] = { pParam_spec1 };
481 sync_agent_ec_task_spec_s *pTask_spec = sync_agent_alloc_simple_task_spec("refresh_from_service",
482 refresh_from_service_task_process, NULL, NULL,
483 1, param_spec_array);
485 sync_agent_unref_param_spec(pParam_spec1);
491 sync_agent_ec_task_spec_s *make_cancel_request_task()
495 sync_agent_ec_task_spec_s *pTask_spec = sync_agent_alloc_simple_task_spec("cancel_sync_request",
496 cancel_sync_request_task_process, NULL, NULL,
503 sync_agent_ec_task_spec_s *make_reset_all_data_task()
507 sync_agent_ec_param_spec_s *pParam_spec1 = sync_agent_alloc_param_spec_int("result", false, true, false, 0, 0, false, 0, false, 0, 0);
508 sync_agent_ec_param_spec_s *param_spec_array[1] = { pParam_spec1 };
510 sync_agent_ec_task_spec_s *pTask_spec = sync_agent_alloc_simple_task_spec("reset_all_data",
511 reset_all_data_task_process, NULL, NULL,
512 1, param_spec_array);
514 sync_agent_unref_param_spec(pParam_spec1);
520 sync_agent_ec_task_spec_s *make_get_all_profiles_data_task()
524 sync_agent_ec_param_spec_s *pParam_spec1 = sync_agent_alloc_param_spec_int("result", false, true, false, 0, 0, false, 0, false, 0, 0);
525 sync_agent_ec_param_spec_s *pParam_spec2 = sync_agent_alloc_param_spec_structure("profilesData", NULL, NULL,
526 false, true, false, NULL, false, NULL, false, NULL);
528 sync_agent_ec_param_spec_s *param_spec_array[2] = { pParam_spec1, pParam_spec2 };
530 sync_agent_ec_task_spec_s *pTask_spec = sync_agent_alloc_simple_task_spec("get_all_profiles_data",
531 get_all_profiles_data_task_process, NULL, NULL,
532 2, param_spec_array);
538 sync_agent_ec_task_error_e synchronize_task_process(unsigned int param_cnt, sync_agent_ec_param_param_s ** param_array)
542 sync_agent_ec_task_error_e err = SYNC_AGENT_EC_TASK_ERROR_RUN_SUCCESS;
545 sync_agent_get_param_value(&(param_array[0]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &accountId);
546 retvm_if(accountId < 0, SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED, "account id = %d", accountId);
548 char *syncMode = NULL;
549 sync_agent_get_param_value(&(param_array[1]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &syncMode);
551 san_package_s *pSanPackage = NULL;
552 sync_agent_get_param_value(&(param_array[2]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &pSanPackage);
554 _DEBUG_INFO("accountId = %d", accountId);
555 _DEBUG_INFO("syncMode = %s", syncMode);
557 bool result = synchronize(accountId, syncMode, pSanPackage);
559 err = SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED;
565 sync_agent_ec_task_error_e add_profile_task_process(unsigned int param_cnt, sync_agent_ec_param_param_s ** param_array)
569 sync_agent_ec_task_error_e err = SYNC_AGENT_EC_TASK_ERROR_RUN_SUCCESS;
571 char *profileName = NULL;
574 char *password = NULL;
578 GList *categories = NULL;
584 sync_agent_get_param_value(&(param_array[0]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &profileName);
585 sync_agent_get_param_value(&(param_array[1]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &addr);
586 sync_agent_get_param_value(&(param_array[2]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &id);
587 sync_agent_get_param_value(&(param_array[3]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &password);
588 sync_agent_get_param_value(&(param_array[4]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &syncMode);
589 sync_agent_get_param_value(&(param_array[5]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &syncType);
590 sync_agent_get_param_value(&(param_array[6]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &interval);
591 sync_agent_get_param_value(&(param_array[7]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &categories);
593 res = add_profile(profileName, addr, id, password, syncMode, syncType, interval, categories, &accountId);
595 err = SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED;
600 sync_agent_set_param_value(&(param_array[8]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &result);
601 sync_agent_set_param_value(&(param_array[9]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &accountId);
603 /*step 2 : start refresh_from_service for added account */
604 void *in_param_value_array[1] = { &accountId };
605 int in_param_index_array[1] = { 0 };
606 sync_agent_ec_value_type_e in_param_value_type_array[1] = { SYNC_AGENT_EC_VALUE_TYPE_INT };
607 unsigned int request_msg_id = 0;
608 sync_agent_request_async_task(EC_MSG_TYPE_SYNC_TASK_REFRESH_FROM_SERVICE, 0, 1, in_param_index_array, in_param_value_type_array, in_param_value_array, NULL, NULL, (int *)&request_msg_id);
614 sync_agent_ec_task_error_e edit_profile_task_process(unsigned int param_cnt, sync_agent_ec_param_param_s ** param_array)
618 sync_agent_ec_task_error_e err = SYNC_AGENT_EC_TASK_ERROR_RUN_SUCCESS;
621 int sync_profile_id = 0;
622 char *profileName = NULL;
625 char *password = NULL;
629 GList *categories = NULL;
634 sync_agent_get_param_value(&(param_array[0]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &profile_id);
635 sync_agent_get_param_value(&(param_array[1]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &profileName);
636 sync_agent_get_param_value(&(param_array[2]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &addr);
637 sync_agent_get_param_value(&(param_array[3]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &id);
638 sync_agent_get_param_value(&(param_array[4]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &password);
639 sync_agent_get_param_value(&(param_array[5]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &syncMode);
640 sync_agent_get_param_value(&(param_array[6]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &syncType);
641 sync_agent_get_param_value(&(param_array[7]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &interval);
642 sync_agent_get_param_value(&(param_array[8]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &categories);
644 // get sync_profile_id
645 res = get_synchronizing_profile_id(&sync_profile_id);
648 _DEBUG_INFO("get_synchronizing_profile_id failed!!");
651 _DEBUG_INFO("profile_id: [%d]", profile_id);
652 _DEBUG_INFO("sync_profile_id: [%d]", sync_profile_id);
654 if (sync_profile_id != profile_id) {
655 res = edit_profile(profile_id, profileName, addr, id, password, syncMode, syncType, interval, categories);
657 err = SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED;
658 _DEBUG_INFO("edit_profile failed!!");
661 _DEBUG_INFO("edit_profile success!!");
665 _DEBUG_INFO("profile is synchronising!!");
669 sync_agent_set_param_value(&(param_array[9]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &result);
675 sync_agent_ec_task_error_e delete_profile_task_process(unsigned int param_cnt, sync_agent_ec_param_param_s ** param_array)
681 sync_agent_ec_task_error_e err = SYNC_AGENT_EC_TASK_ERROR_RUN_SUCCESS;
684 int sync_profile_id = 0;
685 GList *profiles = NULL;
687 sync_agent_get_param_value(&(param_array[0]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &profile_id);
688 sync_agent_get_param_value(&(param_array[1]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &profiles);
690 // get sync_profile_id
691 res = get_synchronizing_profile_id(&sync_profile_id);
694 _DEBUG_INFO("get_synchronizing_profile_id failed!!");
697 _DEBUG_INFO("profile_id: [%d]", profile_id);
698 _DEBUG_INFO("sync_profile_id: [%d]", sync_profile_id);
700 if (sync_profile_id != profile_id) {
701 res = delete_profiles(profiles);
703 err = SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED;
704 _DEBUG_INFO("delete_profiles failed!!");
707 _DEBUG_INFO("delete_profiles success!!");
711 _DEBUG_INFO("profile is synchronising!!");
715 sync_agent_set_param_value(&(param_array[2]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &result);
722 sync_agent_ec_task_error_e get_profile_data_task_process(unsigned int param_cnt, sync_agent_ec_param_param_s ** param_array)
726 sync_agent_ec_task_error_e err = SYNC_AGENT_EC_TASK_ERROR_RUN_SUCCESS;
729 char *profile_dir_name = NULL;
730 char *profileName = NULL;
733 char *password = NULL;
737 int lastSessionStatus;
742 sync_agent_get_param_value(&(param_array[0]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &accountId);
743 retvm_if(accountId < 1, SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED, "account id = %d", accountId);
745 res = get_profile_data(accountId, &profile_dir_name, &profileName, &addr, &id, &password, &sync_mode, &syncType, &interval, &lastSessionStatus, &lastSessionTime);
747 err = SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED;
752 sync_agent_set_param_value(&(param_array[1]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &result);
753 sync_agent_set_param_value(&(param_array[2]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &profile_dir_name);
754 sync_agent_set_param_value(&(param_array[3]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &profileName);
755 sync_agent_set_param_value(&(param_array[4]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &addr);
756 sync_agent_set_param_value(&(param_array[5]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &id);
757 sync_agent_set_param_value(&(param_array[6]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &password);
758 sync_agent_set_param_value(&(param_array[7]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &sync_mode);
759 sync_agent_set_param_value(&(param_array[8]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &syncType);
760 sync_agent_set_param_value(&(param_array[9]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &interval);
761 sync_agent_set_param_value(&(param_array[10]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &lastSessionStatus);
762 sync_agent_set_param_value(&(param_array[11]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &lastSessionTime);
769 sync_agent_ec_task_error_e get_profile_sync_category_task_process(unsigned int param_cnt, sync_agent_ec_param_param_s ** param_array)
773 sync_agent_ec_task_error_e err = SYNC_AGENT_EC_TASK_ERROR_RUN_SUCCESS;
782 char *password = NULL;
786 sync_agent_get_param_value(&(param_array[0]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &accountId);
787 retvm_if(accountId < 0, SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED, "account id = %d", accountId);
789 sync_agent_get_param_value(&(param_array[1]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &contentType);
791 res = get_profile_sync_category(accountId, contentType, &enabled, &srcURI, &tgtURI, &id, &password);
793 err = SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED;
798 sync_agent_set_param_value(&(param_array[2]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &result);
799 sync_agent_set_param_value(&(param_array[3]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &enabled);
800 sync_agent_set_param_value(&(param_array[4]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &srcURI);
801 sync_agent_set_param_value(&(param_array[5]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &tgtURI);
802 sync_agent_set_param_value(&(param_array[6]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &id);
803 sync_agent_set_param_value(&(param_array[7]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &password);
809 sync_agent_ec_task_error_e get_profile_statistics_task_process(unsigned int param_cnt, sync_agent_ec_param_param_s ** param_array)
813 sync_agent_ec_task_error_e err = SYNC_AGENT_EC_TASK_ERROR_RUN_SUCCESS;
818 char *dbSynced = NULL;
819 int lastSessionTime = -1;
820 int server2Client_Total = 0;
821 int server2Client_NrOfAdd = 0;
822 int server2Client_NrOfDelete = 0;
823 int server2Client_NrOfReplace = 0;
824 int client2Server_Total = 0;
825 int client2Server_NrOfAdd = 0;
826 int client2Server_NrOfDelete = 0;
827 int client2Server_NrOfReplace = 0;
832 sync_agent_get_param_value(&(param_array[0]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &accountId);
833 retvm_if(accountId < 0, SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED, "account id = %d", accountId);
835 sync_agent_get_param_value(&(param_array[1]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &contentType);
837 res = get_profile_statistics(accountId, contentType, &dbSynced, &lastSessionTime,
838 &server2Client_Total, &server2Client_NrOfAdd, &server2Client_NrOfDelete, &server2Client_NrOfReplace, &client2Server_Total, &client2Server_NrOfAdd, &client2Server_NrOfDelete, &client2Server_NrOfReplace);
841 err = SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED;
846 sync_agent_set_param_value(&(param_array[2]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &result);
847 sync_agent_set_param_value(&(param_array[3]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &dbSynced);
848 sync_agent_set_param_value(&(param_array[4]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &lastSessionTime);
849 sync_agent_set_param_value(&(param_array[5]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &server2Client_Total);
850 sync_agent_set_param_value(&(param_array[6]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &server2Client_NrOfAdd);
851 sync_agent_set_param_value(&(param_array[7]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &server2Client_NrOfDelete);
852 sync_agent_set_param_value(&(param_array[8]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &server2Client_NrOfReplace);
853 sync_agent_set_param_value(&(param_array[9]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &client2Server_Total);
854 sync_agent_set_param_value(&(param_array[10]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &client2Server_NrOfAdd);
855 sync_agent_set_param_value(&(param_array[11]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &client2Server_NrOfDelete);
856 sync_agent_set_param_value(&(param_array[12]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &client2Server_NrOfReplace);
862 sync_agent_ec_task_error_e reset_synchronizing_profiles_task_process(unsigned int param_cnt, sync_agent_ec_param_param_s ** param_array)
866 sync_agent_ec_task_error_e err = SYNC_AGENT_EC_TASK_ERROR_RUN_SUCCESS;
868 reset_synchronizing_profiles();
874 sync_agent_ec_task_error_e add_profile_cp_task_process(unsigned int param_cnt, sync_agent_ec_param_param_s ** param_array)
878 sync_agent_ec_task_error_e err = SYNC_AGENT_EC_TASK_ERROR_RUN_SUCCESS;
880 char *profileName = NULL;
883 char *password = NULL;
884 GList *categories = NULL;
890 sync_agent_get_param_value(&(param_array[0]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &profileName);
891 sync_agent_get_param_value(&(param_array[1]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &addr);
892 sync_agent_get_param_value(&(param_array[2]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &id);
893 sync_agent_get_param_value(&(param_array[3]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &password);
894 sync_agent_get_param_value(&(param_array[4]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &categories);
896 res = add_profile_cp(profileName, addr, id, password, categories, &accountId);
898 err = SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED;
903 sync_agent_set_param_value(&(param_array[5]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &result);
904 sync_agent_set_param_value(&(param_array[6]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &accountId);
910 sync_agent_ec_task_error_e refresh_from_service_task_process(unsigned int param_cnt, sync_agent_ec_param_param_s ** param_array)
914 sync_agent_ec_task_error_e err = SYNC_AGENT_EC_TASK_ERROR_RUN_SUCCESS;
919 sync_agent_get_param_value(&(param_array[0]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &accountId);
921 res = refresh_from_service_all(accountId);
923 err = SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED;
929 sync_agent_ec_task_error_e cancel_sync_request_task_process(unsigned int param_cnt, sync_agent_ec_param_param_s ** param_array)
933 sync_agent_ec_task_error_e err = SYNC_AGENT_EC_TASK_ERROR_RUN_SUCCESS;
935 cancel_sync_request();
941 sync_agent_ec_task_error_e reset_all_data_task_process(unsigned int param_cnt, sync_agent_ec_param_param_s ** param_array)
945 sync_agent_ec_task_error_e err = SYNC_AGENT_EC_TASK_ERROR_RUN_SUCCESS;
948 /* delete all profiles */
949 result = delete_all_profiles();
951 /* delete all agent default table */
952 result = delete_all_agent_default_table();
954 sync_agent_set_param_value(&(param_array[0]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &result);
960 sync_agent_ec_task_error_e get_all_profiles_data_task_process(unsigned int param_cnt, sync_agent_ec_param_param_s ** param_array)
964 sync_agent_ec_task_error_e err = SYNC_AGENT_EC_TASK_ERROR_RUN_SUCCESS;
968 GList *profiles_data = NULL;
970 res = get_all_profiles_data(&profiles_data);
973 err = SYNC_AGENT_EC_TASK_ERROR_RUN_FAILED;
978 sync_agent_set_param_value(&(param_array[0]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &result);
979 sync_agent_set_param_value(&(param_array[1]->param_value), SYNC_AGENT_EC_VALUE_TYPE_STRUCT, &profiles_data);
986 void insert_request_msg_info(int sync_type, unsigned int request_id, int profile_id)
990 _DEBUG_INFO("sync_type: [%d]", sync_type);
991 _DEBUG_INFO("request_id: [%d]", request_id);
992 _DEBUG_INFO("profile_id: [%d]", profile_id);
994 sync_request_id_list = g_list_prepend(sync_request_id_list, _create_request_msg_info(sync_type, request_id, profile_id));
999 void delete_request_msg_info(unsigned int request_id)
1004 request_msg_info_t *pMsg_info = NULL;
1006 for (iter = sync_request_id_list; iter != NULL; iter = g_list_next(iter)) {
1007 pMsg_info = iter->data;
1009 if (pMsg_info->request_id == request_id) {
1010 sync_request_id_list = g_list_remove_link(sync_request_id_list, iter);
1016 _request_msg_info_free(iter->data);
1017 g_list_free_1(iter);
1022 bool get_synchronizing_request_id(unsigned int *pRequest_id)
1026 bool success = false;
1027 request_msg_info_t *pMsg_info = NULL;
1030 for (iter = sync_request_id_list; iter != NULL; iter = g_list_next(iter)) {
1031 pMsg_info = iter->data;
1033 if (pMsg_info->sync_type == SYNC_MODE_MANUAL || pMsg_info->sync_type == SYNC_MODE_PERIODIC || pMsg_info->sync_type == SYNC_MODE_SAN) {
1035 *pRequest_id = pMsg_info->request_id;
1037 _request_msg_info_free(pMsg_info);
1038 sync_request_id_list = g_list_delete_link(sync_request_id_list, iter);
1048 bool get_synchronizing_profile_id(int *pProfile_id)
1052 bool success = false;
1053 request_msg_info_t *pMsg_info = NULL;
1056 for (iter = sync_request_id_list; iter != NULL; iter = g_list_next(iter)) {
1057 pMsg_info = iter->data;
1059 if (pMsg_info->sync_type == SYNC_MODE_MANUAL || pMsg_info->sync_type == SYNC_MODE_PERIODIC || pMsg_info->sync_type == SYNC_MODE_SAN) {
1061 *pProfile_id = pMsg_info->profile_id;
1063 sync_request_id_list = g_list_first(sync_request_id_list);
1073 bool get_manual_sync_request_id(unsigned int *pRequest_id)
1077 bool success = false;
1078 request_msg_info_t *pMsg_info = NULL;
1081 for (iter = sync_request_id_list; iter != NULL; iter = g_list_next(iter)) {
1082 pMsg_info = iter->data;
1084 if (pMsg_info->sync_type == SYNC_MODE_MANUAL) {
1086 *pRequest_id = pMsg_info->request_id;
1088 _request_msg_info_free(pMsg_info);
1089 sync_request_id_list = g_list_delete_link(sync_request_id_list, iter);
1098 bool get_periodic_sync_request_id(unsigned int *pRequest_id)
1102 bool success = false;
1103 request_msg_info_t *pMsg_info = NULL;
1106 for (iter = sync_request_id_list; iter != NULL; iter = g_list_next(iter)) {
1107 pMsg_info = iter->data;
1109 if (pMsg_info->sync_type == SYNC_MODE_PERIODIC) {
1111 *pRequest_id = pMsg_info->request_id;
1113 _request_msg_info_free(pMsg_info);
1114 sync_request_id_list = g_list_delete_link(sync_request_id_list, iter);
1124 bool get_san_sync_request_id(unsigned int *pRequest_id)
1128 bool success = false;
1129 request_msg_info_t *pMsg_info = NULL;
1132 for (iter = sync_request_id_list; iter != NULL; iter = g_list_next(iter)) {
1133 pMsg_info = iter->data;
1135 if (pMsg_info->sync_type == SYNC_MODE_SAN) {
1137 *pRequest_id = pMsg_info->request_id;
1139 _request_msg_info_free(pMsg_info);
1140 sync_request_id_list = g_list_delete_link(sync_request_id_list, iter);
1150 bool get_auto_configure_request_id(unsigned int *pRequest_id)
1154 bool success = false;
1155 request_msg_info_t *pMsg_info = NULL;
1158 for (iter = sync_request_id_list; iter != NULL; iter = g_list_next(iter)) {
1159 pMsg_info = iter->data;
1161 if (pMsg_info->sync_type == SYNC_MODE_AUTOCONFIG) {
1163 *pRequest_id = pMsg_info->request_id;
1165 _request_msg_info_free(pMsg_info);
1166 sync_request_id_list = g_list_delete_link(sync_request_id_list, iter);
1176 bool cancel_current_sync_task()
1180 unsigned int request_msg_id_to_cancel = 0;
1181 unsigned int request_msg_id = 0;
1182 bool has_autoconfig = get_auto_configure_request_id(&request_msg_id_to_cancel);
1183 if (has_autoconfig) {
1184 _DEBUG_INFO("has_autoconfig [%d] ", request_msg_id_to_cancel);
1185 sync_agent_cancel_task(request_msg_id_to_cancel);
1187 bool has_sync = get_synchronizing_request_id(&request_msg_id_to_cancel);
1189 _DEBUG_INFO("has_manual_sync [%d] ", request_msg_id_to_cancel);
1190 sync_agent_cancel_task(request_msg_id_to_cancel);
1192 /*request network session cancel */
1193 sync_agent_request_async_task(EC_MSG_TYPE_SYNC_TASK_CANCEL_SYNC_REQUEST, 0, 0, NULL, NULL, NULL, NULL, NULL, (int *)&request_msg_id);