Tizen 2.1 base
[platform/core/system/sync-agent.git] / src / framework / data-adapter / common.c
1 /*
2  * sync-agent
3  * Copyright (c) 2012 Samsung Electronics Co., Ltd.
4  *
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
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
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.
16  */
17
18 #include "data-adapter/common.h"
19 #include "data-adapter/common_internal.h"
20 #include "utility/sync_util.h"
21
22 #ifndef EXPORT_API
23 #define EXPORT_API __attribute__ ((visibility("default")))
24 #endif
25
26 #ifndef SYNC_AGENT_LOG
27 #undef LOG_TAG
28 #define LOG_TAG "AF_DACI"
29 #endif
30
31 /*
32  * ==========================================================
33  * Structure Memory Free
34  * ==========================================================
35  */
36 void sync_agent_free_memory_folder(sync_agent_da_folder_s * folder, int count)
37 {
38         _EXTERN_FUNC_ENTER;
39
40         retm_if(folder == NULL, "sync_agent_da_folder_s is NULL !!");
41
42         int i;
43         for (i = 0; i < count; i++) {
44                 SYNC_AGENT_DA_MEMORY_FREE(folder[i].folder_id);
45                 SYNC_AGENT_DA_MEMORY_FREE(folder[i].parent_folder_id);
46                 SYNC_AGENT_DA_MEMORY_FREE(folder[i].service_id);
47                 SYNC_AGENT_DA_MEMORY_FREE(folder[i].access_name);
48         }
49         SYNC_AGENT_DA_MEMORY_FREE(folder);
50
51         _EXTERN_FUNC_EXIT;
52 }
53
54 void sync_agent_free_memory_item(sync_agent_da_item_s * item, int count)
55 {
56         _EXTERN_FUNC_ENTER;
57
58         retm_if(item == NULL, "sync_agent_da_item_s is NULL !!");
59
60         int i;
61         for (i = 0; i < count; i++) {
62                 SYNC_AGENT_DA_MEMORY_FREE(item[i].item_id);
63                 SYNC_AGENT_DA_MEMORY_FREE(item[i].folder_id);
64                 SYNC_AGENT_DA_MEMORY_FREE(item[i].service_id);
65                 SYNC_AGENT_DA_MEMORY_FREE(item[i].access_name);
66         }
67         SYNC_AGENT_DA_MEMORY_FREE(item);
68
69         _EXTERN_FUNC_EXIT;
70 }
71
72 void da_free_memory_config(sync_agent_da_config_s * config, int count)
73 {
74         _EXTERN_FUNC_ENTER;
75
76         retm_if(config == NULL, "sync_agent_da_config_s is NULL !!");
77
78         int i;
79         for (i = 0; i < count; i++) {
80                 SYNC_AGENT_DA_MEMORY_FREE(config[i].key);
81                 SYNC_AGENT_DA_MEMORY_FREE(config[i].value);
82                 SYNC_AGENT_DA_MEMORY_FREE(config[i].type);
83                 SYNC_AGENT_DA_MEMORY_FREE(config[i].access_name);
84         }
85         SYNC_AGENT_DA_MEMORY_FREE(config);
86
87         _EXTERN_FUNC_EXIT;
88 }
89
90 void da_free_memory_item_changelog(sync_agent_da_item_changelog_s * item_changelog, int count)
91 {
92         _EXTERN_FUNC_ENTER;
93
94         retm_if(item_changelog == NULL, "sync_agent_da_item_changelog_s is NULL !!");
95
96         int i;
97         for (i = 0; i < count; i++) {
98                 SYNC_AGENT_DA_MEMORY_FREE(item_changelog[i].item_id);
99                 SYNC_AGENT_DA_MEMORY_FREE(item_changelog[i].status);
100                 SYNC_AGENT_DA_MEMORY_FREE(item_changelog[i].access_name);
101         }
102         SYNC_AGENT_DA_MEMORY_FREE(item_changelog);
103
104         _EXTERN_FUNC_EXIT;
105 }
106
107 EXPORT_API void sync_agent_free_memory_last_anchor(sync_agent_da_last_anchor_s * last_anchor, int count)
108 {
109         _EXTERN_FUNC_ENTER;
110
111         retm_if(last_anchor == NULL, "sync_agent_da_last_anchor_s is NULL !!");
112
113         int i;
114         for (i = 0; i < count; i++) {
115                 SYNC_AGENT_DA_MEMORY_FREE(last_anchor[i].last_anchor_server);
116                 SYNC_AGENT_DA_MEMORY_FREE(last_anchor[i].last_anchor_client);
117                 SYNC_AGENT_DA_MEMORY_FREE(last_anchor[i].access_name);
118         }
119         SYNC_AGENT_DA_MEMORY_FREE(last_anchor);
120
121         _EXTERN_FUNC_EXIT;
122 }
123
124 EXPORT_API void sync_agent_free_memory_mapping(sync_agent_da_mapping_s * mapping, int count)
125 {
126         _EXTERN_FUNC_ENTER;
127
128         retm_if(mapping == NULL, "sync_agent_da_mapping_s is NULL !!");
129
130         int i;
131         for (i = 0; i < count; i++) {
132                 SYNC_AGENT_DA_MEMORY_FREE(mapping[i].luid);
133                 SYNC_AGENT_DA_MEMORY_FREE(mapping[i].guid);
134                 SYNC_AGENT_DA_MEMORY_FREE(mapping[i].access_name);
135         }
136         SYNC_AGENT_DA_MEMORY_FREE(mapping);
137
138         _EXTERN_FUNC_EXIT;
139 }
140
141 EXPORT_API void sync_agent_free_memory_item_info(sync_agent_da_item_info_s * item_info, int count)
142 {
143         _EXTERN_FUNC_ENTER;
144
145         retm_if(item_info == NULL, "sync_agent_da_item_info_s is NULL !!");
146
147         int i;
148         for (i = 0; i < count; i++) {
149                 SYNC_AGENT_DA_MEMORY_FREE(item_info[i].itemId);
150                 SYNC_AGENT_DA_MEMORY_FREE(item_info[i].serviceId);
151                 SYNC_AGENT_DA_MEMORY_FREE(item_info[i].syncStatus);
152         }
153         SYNC_AGENT_DA_MEMORY_FREE(item_info);
154
155         _EXTERN_FUNC_EXIT;
156 }
157
158 EXPORT_API void sync_agent_free_memory_id_list(sync_agent_da_id_list_s * id_list)
159 {
160         _EXTERN_FUNC_ENTER;
161
162         retm_if(id_list == NULL, "sync_agent_da_id_list_s is NULL !!");
163
164         int i;
165         for (i = 0; i < id_list->count; i++) {
166                 SYNC_AGENT_DA_MEMORY_FREE(id_list->id[i]);
167         }
168         SYNC_AGENT_DA_MEMORY_FREE(id_list->id);
169         SYNC_AGENT_DA_MEMORY_FREE(id_list);
170
171         _EXTERN_FUNC_EXIT;
172 }