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.
18 #ifndef INTERFACE_FOLDER_H_
19 #define INTERFACE_FOLDER_H_
25 #endif /* __cplusplus */
28 * @file interface_folder.h
29 * @brief Support to store folder item into framework
32 /** @addtogroup data_adapter
37 * @brief Structure of framework folder item instance
40 char *folder_id; /**< F/W folder id */
41 int data_store_id; /**< service data connector pluIn's ID described in F/W config file */
42 int account_id; /**< F/W account id */
43 int folder_type_id; /**< data connector plugIn has this folder type id */
44 char *service_id; /**< service folder id */
45 char *parent_folder_id;
46 /**< parent folder id if exist hierarchy */
47 char *access_name; /**< name of accessor */
48 } sync_agent_da_folder_s;
51 * @brief Enumerations of option used to fetch framework folder item list
54 SYNC_AGENT_DA_GET_FOLDER_LIST_OPTION_SERVICE_ID_MAPPING,/**< get folder list by service id mapping */
55 } sync_agent_da_get_folder_list_option_e;
58 * @brief Structure of query used to fetch framework folder item list
61 sync_agent_da_get_folder_list_option_e option;
63 /**< F/W account id - SYNC_AGENT_DA_GET_FOLDER_LIST_OPTION_SERVICE_ID_MAPPING */
64 char *folder_id;/**< F/W folder id - SYNC_AGENT_DA_GET_FOLDER_LIST_OPTION_SERVICE_ID_MAPPING */
65 } sync_agent_da_get_folder_list_query_s;
68 * @brief Enumerations of option used to fetch framework folder item id list
71 SYNC_AGENT_DA_GET_FOLDER_ID_OPTION_FOLDER_TYPE_ID, /**< get folder id by folder type */
72 SYNC_AGENT_DA_GET_FOLDER_ID_OPTION_ITEM_TYPE_ID, /**< get folder id by item type */
73 } sync_agent_da_get_folder_id_list_option_e;
76 * @brief Structure of query used to fetch framework folder item id list
79 sync_agent_da_get_folder_id_list_option_e option;
80 /**< sync_agent_da_get_folder_id_list_option_e type of enumeration for fetch option */
82 /**< F/W account id - SYNC_AGENT_DA_GET_FOLDER_ID_OPTION_FOLDER_TYPE_ID, SYNC_AGENT_DA_GET_FOLDER_ID_OPTION_ITEM_TYPE_ID */
84 /**< F/W item type id - SYNC_AGENT_DA_GET_FOLDER_ID_OPTION_FOLDER_TYPE_ID, SYNC_AGENT_DA_GET_FOLDER_ID_OPTION_ITEM_TYPE_ID */
86 /**< F/W folder type id - SYNC_AGENT_DA_GET_FOLDER_ID_OPTION_FOLDER_TYPE_ID */
87 } sync_agent_da_get_folder_id_list_query_s;
90 * @brief Create initialized folder item instance
94 sync_agent_da_return_e da_err = SYNC_AGENT_DA_SUCCESS;
95 sync_agent_da_folder_s *folder = NULL;
97 da_err = sync_agent_create_folder(&folder);
98 if (da_err != SYNC_AGENT_DA_SUCCESS) {
103 * @remarks folder item in FW corresponds to entity in service layer such as addressbook in Contact-service and calendar in Calendar-service
104 * @param[out] sync_agent_folder framework folder item instance initialized new
105 * @return operation result
106 * @retval SYNC_AGENT_DA_SUCCESS success
107 * @retval error_value fail
109 sync_agent_da_return_e sync_agent_create_folder(sync_agent_da_folder_s ** sync_agent_folder);
112 * @brief Add framework folder item instance into framework db
116 sync_agent_da_return_e da_err = SYNC_AGENT_DA_SUCCESS;
117 sync_agent_da_folder_s *folder = NULL;
118 char *folder_id = NULL;
120 da_err = sync_agent_create_folder(&folder);
121 if (da_err != SYNC_AGENT_DA_SUCCESS) {
127 da_err = sync_agent_add_folder(folder, &folder_id);
128 if (da_err != SYNC_AGENT_DA_SUCCESS) {
133 * @param[in] sync_agent_folder framework folder item instance to add
134 * @param[out] folder_id id of framework folder item instance added new
135 * @return operation result
136 * @retval SYNC_AGENT_DA_SUCCESS success
137 * @retval error_value fail
139 sync_agent_da_return_e sync_agent_add_folder(sync_agent_da_folder_s * sync_agent_folder, char **folder_id);
142 * @brief Fetch framework folder item instance
146 sync_agent_da_return_e da_err = SYNC_AGENT_DA_SUCCESS;
147 sync_agent_da_folder_s *folder = NULL;
149 da_err = sync_agent_get_folder(folder_id, &folder);
154 * @param[in] folder_id id of framework folder item instance desired to get
155 * @param[out] sync_agent_folder framework folder item instance fetched
156 * @return operation result
157 * @retval SYNC_AGENT_DA_SUCCESS success
158 * @retval error_value fail
160 sync_agent_da_return_e sync_agent_get_folder(char *folder_id, sync_agent_da_folder_s ** sync_agent_folder);
163 * @brief Fetch list of framework folder item instance
167 sync_agent_da_return_e da_err = SYNC_AGENT_DA_SUCCESS;
168 sync_agent_da_get_folder_list_query_s query;
169 GList *folder_list = NULL;
171 query.option = SYNC_AGENT_DA_GET_FOLDER_LIST_OPTION_SERVICE_ID_MAPPING;
172 query.account_id = account_id;
173 query.folder_id = folder_id;
175 da_err = sync_agent_get_folder_list(&query, &folder_list);
180 * @param[in] query sync_agent_da_get_folder_list_query_s type of query for fetch operation
181 * @param[out] list list of framework folder item instance fetched
182 * @return operation result
183 * @retval SYNC_AGENT_DA_SUCCESS success
184 * @retval error_value fail
186 sync_agent_da_return_e sync_agent_get_folder_list(sync_agent_da_get_folder_list_query_s * query, GList ** list);
189 * @brief Fetch list of framework folder item id
193 sync_agent_da_return_e da_err = SYNC_AGENT_DA_SUCCESS;
194 sync_agent_da_get_folder_id_list_query_s query;
195 GList *folder_id_list = NULL;
197 query.option = SYNC_AGENT_DA_GET_FOLDER_ID_OPTION_FOLDER_TYPE_ID;
198 query.account_id = account_id;
199 query.item_type_id = FW_CONTACT;
200 query.folder_type_id = 0;
202 da_err = sync_agent_get_folder_list(&query, &folder_id_list);
207 * @param[in] query sync_agent_da_get_folder_id_list_query_s type of query for fetch operation
208 * @param[out] list list of framework folder item id fetched
209 * @return operation result
210 * @retval SYNC_AGENT_DA_SUCCESS success
211 * @retval error_value fail
213 sync_agent_da_return_e sync_agent_get_folder_id_list(sync_agent_da_get_folder_id_list_query_s * query, GList ** list);
216 * @brief Free framework folder item instance
220 sync_agent_da_return_e da_err = SYNC_AGENT_DA_SUCCESS;
221 sync_agent_da_folder_s *folder = NULL;
223 da_err = sync_agent_get_folder(folder_id, &folder);
229 da_err = sync_agent_free_folder(folder);
234 * @param[in] sync_agent_folder framework folder item instance to free
235 * @return operation result
236 * @retval SYNC_AGENT_DA_SUCCESS success
237 * @retval error_value fail
239 sync_agent_da_return_e sync_agent_free_folder(sync_agent_da_folder_s * sync_agent_folder);
242 * @brief Free list of framework folder item instance
246 sync_agent_da_return_e da_err = SYNC_AGENT_DA_SUCCESS;
247 sync_agent_da_get_folder_list_query_s query;
248 GList *folder_list = NULL;
250 query.option = SYNC_AGENT_DA_GET_FOLDER_LIST_OPTION_SERVICE_ID_MAPPING;
251 query.account_id = account_id;
252 query.folder_id = folder_id;
254 da_err = sync_agent_get_folder_list(&query, &folder_list);
260 da_err = sync_agent_free_folder_list(folder_list);
265 * @param[in] list list of framework folder item instance to free
266 * @return operation result
267 * @retval SYNC_AGENT_DA_SUCCESS success
268 * @retval error_value fail
270 sync_agent_da_return_e sync_agent_free_folder_list(GList * list);
273 * @brief Free framework folder item id
278 sync_agent_da_return_e da_err = SYNC_AGENT_DA_SUCCESS;
279 sync_agent_da_folder_s *folder = NULL;
280 char *folder_id = NULL;
282 da_err = sync_agent_create_folder(&folder);
283 if (da_err != SYNC_AGENT_DA_SUCCESS) {
289 da_err = sync_agent_add_folder(folder, &folder_id);
290 if (da_err != SYNC_AGENT_DA_SUCCESS) {
296 da_err = sync_agent_free_folder_id(folder_id);
297 if (da_err != SYNC_AGENT_DA_SUCCESS) {
302 * @param[in] folder_id framework folder item id to free
303 * @return operation result
304 * @retval SYNC_AGENT_DA_SUCCESS success
305 * @retval error_value fail
307 sync_agent_da_return_e sync_agent_free_folder_id(char *folder_id);
310 * @brief Free list of framework folder item id
314 sync_agent_da_return_e da_err = SYNC_AGENT_DA_SUCCESS;
315 sync_agent_da_get_folder_id_list_query_s query;
316 GList *folder_id_list = NULL;
318 query.option = SYNC_AGENT_DA_GET_FOLDER_ID_OPTION_FOLDER_TYPE_ID;
319 query.account_id = account_id;
320 query.item_type_id = FW_CONTACT;
321 query.folder_type_id = 0;
323 da_err = sync_agent_get_folder_list(&query, &folder_id_list);
329 da_err = sync_agent_free_folder_id_list(folder_id_list);
330 if (da_err != SYNC_AGENT_DA_SUCCESS) {
335 * @param[in] list list of framework folder item id to free
336 * @return operation result
337 * @retval SYNC_AGENT_DA_SUCCESS success
338 * @retval error_value fail
340 sync_agent_da_return_e sync_agent_free_folder_id_list(GList * list);
348 #endif /* __cplusplus */
349 #endif /* INTERFACE_FOLDER_H_ */