Tizen 2.1 base
[platform/core/system/sync-agent.git] / include / event / oma_ds_api.h
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 #ifndef OMA_DS_API_H_
19 #define OMA_DS_API_H_
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif                          /* __cplusplus */
24
25 /** @addtogroup event
26  *      @{
27  */
28
29 /**
30  * Enumerations of error codes for OMA DS API
31  */
32         typedef enum {
33                 SYNC_AGENT_DS_FAIL = -1,        /**< Fail */
34                 SYNC_AGENT_DS_SUCCESS = 0       /**< Successful */
35         } sync_agent_ds_error_e;
36
37 /**
38  * Enumerations of service type
39  */
40         typedef enum {
41                 SYNC_AGENT_CONTACT = 0,         /**< Contact */
42                 SYNC_AGENT_CALENDAR = 1,        /**< Calendar */
43                 SYNC_AGENT_MEMO = 2,            /**< Memo */
44                 SYNC_AGENT_CALLLOG = 3          /**< Calllog */
45         } sync_agent_ds_service_type_e;
46
47 /**
48  * @brief       Structure of OMA DS Server information instance
49  */
50         typedef struct {
51                 char *addr;                                     /**< Server ip */
52                 char *id;                                       /**< Id */
53                 char *password;                         /**< Password */
54         } sync_agent_ds_server_info;
55
56 /**
57  * @brief       Structure of OMA DS Sync information instance
58  */
59         typedef struct {
60                 char *sync_mode;                /**< Sync mode */
61                 char *sync_type;                /**< Sync type */
62                 char *interval;                 /**< Interval */
63         } sync_agent_ds_sync_info;
64
65 /**
66  * @brief       Structure of OMA DS Service information instance
67  */
68         typedef struct {
69                 sync_agent_ds_service_type_e service_type;      /**< Service type */
70                 int enabled;                                                            /**< Enable or not */
71                 char *src_uri;                                                          /**< Source uri */
72                 char *tgt_uri;                                                          /**< Target uri */
73                 char *id;                                                                       /**< Id */
74                 char *password;                                                         /**< password */
75         } sync_agent_ds_service_info;
76
77 /**
78  * @brief       Structure of OMA DS Profile information instance
79  */
80         typedef struct {
81                 char *profile_dir_name;                                         /**< Profile dir name */
82                 char *profile_name;                                                     /**< Profile name */
83                 sync_agent_ds_server_info server_info;          /**< Server information */
84                 sync_agent_ds_sync_info sync_info;                      /**< Sync information */
85                 GList *service_list;                                            /**< Service list */
86                 int last_sync_status;                                           /**< Last sync status */
87                 int last_sync_time;                                                     /**< Last sync time */
88         } sync_agent_ds_profile_info;
89
90 /**
91  * @brief       Structure of OMA DS Statistics information instance
92  */
93         typedef struct {
94                 char *dbsynced;                                                         /**< Sync result(success, fail, stop) */
95                 int last_session_time;                                          /**< Sync time */
96                 int server2client_total;                                        /**< Total items(server to client) */
97                 int server2client_nrofadd;                                      /**< Add items(server to client) */
98                 int server2client_nrofdelete;                           /**< Delete items(server to client) */
99                 int server2client_nrofreplace;                          /**< Replace items(server to client) */
100                 int client2server_total;                                        /**< Total items(client to server) */
101                 int client2server_nrofadd;                                      /**< Add items(client to server) */
102                 int client2server_nrofdelete;                           /**< Delete items(client to server) */
103                 int client2server_nrofreplace;                          /**< Replace items(client to server) */
104         } sync_agent_ds_statistics_info;
105
106 /**
107  * @brief       profile info handler
108  */
109         typedef void *ds_profile_h;
110
111 /**
112  * @brief initialize OMA DS
113  * @par Usage:
114  * @code
115  *
116  * sync_agent_ds_error_e ds_err = sync_agent_ds_init();
117  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
118  *      ...
119  * }
120  *
121  *      ...
122  *
123  * @endcode
124  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
125  * @see sync_agent_ds_deinit
126  */
127         sync_agent_ds_error_e sync_agent_ds_init();
128
129 /**
130  * @brief create profile info
131  * @par Usage:
132  * @code
133  *
134  * ds_profile_h profile_h = NULL;
135  *
136  * ds_err = sync_agent_ds_create_profile_info(&profile_h);
137  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
138  *      ...
139  * }
140  *
141  *      ...
142  *
143  * @endcode
144  * @param[out]  profile_h        profile info initialized
145  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
146  * @see sync_agent_ds_free_profile_info
147  */
148         sync_agent_ds_error_e sync_agent_ds_create_profile_info(ds_profile_h * profile_h);
149
150 /**
151  * @brief set profile name into profile info
152  * @par Usage:
153  * @code
154  *
155  * ds_profile_h profile_h = NULL;
156  * char *profile_dir_name = "Sync1";
157  * char *profile_name = "profile name";
158  *
159  * sync_agent_ds_error_e ds_err = sync_agent_ds_create_profile_info(&profile_h);
160  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
161  *      ...
162  * }
163  *
164  *      ...
165  *
166  * ds_err = sync_agent_ds_set_profile_name(profile_h, profile_dir_name, profile_name);
167  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
168  *      ...
169  * }
170  *
171  *      ...
172  *
173  * @endcode
174  * @param[in]   profile_h                       profile info initialized
175  * @param[in]   profile_dir_name        profile dir name
176  * @param[in]   profile_name            profile name
177  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
178  */
179         sync_agent_ds_error_e sync_agent_ds_set_profile_name(ds_profile_h profile_h, char *profile_dir_name, char *profile_name);
180
181 /**
182  * @brief set server information into profile info
183  * @par Usage:
184  * @code
185  *
186  * ds_profile_h profile_h = NULL;
187  * char *addr = "http://xxx.xxx.xxx";
188  * char *id = "id";
189  * char *password = "password";
190  *
191  * sync_agent_ds_error_e ds_err = sync_agent_ds_create_profile_info(&profile_h);
192  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
193  *      ...
194  * }
195  *
196  *      ...
197  *
198  * ds_err = sync_agent_ds_set_server_info(profile_h, addr, id, password);
199  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
200  *      ...
201  * }
202  *
203  *      ...
204  *
205  * @endcode
206  * @param[in]   profile_h               profile info initialized
207  * @param[in]   addr                    server ip address
208  * @param[in]   id                              account id
209  * @param[in]   password                account password
210  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
211  */
212         sync_agent_ds_error_e sync_agent_ds_set_server_info(ds_profile_h profile_h, char *addr, char *id, char *password);
213
214 /**
215  * @brief set sync information into profile info
216  * @par Usage:
217  * @code
218  *
219  * ds_profile_h profile_h = NULL;
220  * char *sync_mode = "Periodic";
221  * char *sync_type = "Update both";
222  * char *interval = "1 hour";
223  *
224  * sync_agent_ds_error_e ds_err = sync_agent_ds_create_profile_info(&profile_h);
225  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
226  *      ...
227  * }
228  *
229  *      ...
230  *
231  * ds_err = sync_agent_ds_set_sync_info(profile_h, sync_mode, sync_type, interval);
232  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
233  *      ...
234  * }
235  *
236  *      ...
237  *
238  * @endcode
239  * @param[in]   profile_h               profile info initialized
240  * @param[in]   sync_mode               sync mode(Push, Manual, Periodic)
241  * @param[in]   sync_type               sync type(Full, Update both, Update to server, Update to phone, Refresh from server, Refresh from phone)
242  * @param[in]   interval                interval(only for periodic sync(5 minutes, 15 minutes, 1 hour, 4 hours, 12 hours, 1 day, 1 week))
243  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
244  */
245         sync_agent_ds_error_e sync_agent_ds_set_sync_info(ds_profile_h profile_h, char *sync_mode, char *sync_type, char *interval);
246
247 /**
248  * @brief set service information into profile info
249  * @par Usage:
250  * @code
251  *
252  * ds_profile_h profile_h = NULL;
253  * sync_agent_ds_service_type_e service_type = SYNC_AGENT_CONTACT;
254  * int enabled = 1;
255  * char *src_uri = "Contacts";
256  * char *tgt_uri = "card";
257  * char *id = "id";
258  * char *password = "password";
259  *
260  * sync_agent_ds_error_e ds_err = sync_agent_ds_create_profile_info(&profile_h);
261  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
262  *      ...
263  * }
264  *
265  *      ...
266  *
267  * ds_err = sync_agent_ds_set_sync_category(profile_h, service_type, enabled, src_uri, tgt_uri, id, password);
268  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
269  *      ...
270  * }
271  *
272  *      ...
273  *
274  * @endcode
275  * @param[in]   profile_h               profile info initialized
276  * @param[in]   service_type    service type(SYNC_AGENT_CONTACT, SYNC_AGENT_CALENDAR, SYNC_AGENT_MEMO,  SYNC_AGENT_CALLLOG)
277  * @param[in]   enabled                 enable or not( 1 =  enable, 0 = prevent)
278  * @param[in]   src_uri                 source uri
279  * @param[in]   tgt_uri                 target uri
280  * @param[in]   id                              id
281  * @param[in]   password                password
282  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
283  */
284         sync_agent_ds_error_e sync_agent_ds_set_sync_service_info(ds_profile_h profile_h, sync_agent_ds_service_type_e service_type, int enabled, char *src_uri, char *tgt_uri, char *id, char *password);
285
286 /**
287  * @brief get profile dir name, profile name from profile info
288  * @par Usage:
289  * @code
290  *
291  * ds_profile_h profile_h = NULL;
292  * char *profile_dir_name = "Sync1";
293  * char *get_profile_dir_name = NULL;
294  * char *profile_name = NULL;
295  *
296  * sync_agent_ds_error_e ds_err = sync_agent_ds_get_profile(profile_dir_name, &profile_h);
297  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
298  *      ...
299  * }
300  *
301  *      ...
302  *
303  * ds_err = sync_agent_ds_get_profile_name(profile_h, &get_profile_dir_name, &profile_name);
304  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
305  *      ...
306  * }
307  *
308  *      ...
309  *
310  * @endcode
311  * @param[in]   profile_h                       profile info
312  * @param[out]  profile_dir_name        profile dir name
313  * @param[out]  profile_name            profile name
314  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
315  * @see sync_agent_ds_get_profile
316  */
317         sync_agent_ds_error_e sync_agent_ds_get_profile_name(ds_profile_h profile_h, char **profile_dir_name, char **profile_name);
318
319 /**
320  * @brief get profile server information from profile info
321  * @par Usage:
322  * @code
323  *
324  * ds_profile_h profile_h = NULL;
325  * char *profile_dir_name = "Sync1";
326  * sync_agent_ds_server_info server_info = {NULL};
327  *
328  * sync_agent_ds_error_e ds_err = sync_agent_ds_get_profile(profile_dir_name, &profile_h);
329  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
330  *      ...
331  * }
332  *
333  *      ...
334  *
335  * ds_err = sync_agent_ds_get_server_info(profile_h, &server_info);
336  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
337  *      ...
338  * }
339  *
340  *      ...
341  *
342  * @endcode
343  * @param[in]   profile_h                       profile info
344  * @param[out]  server_info                     server info structure
345  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
346  * @see sync_agent_ds_get_profile
347  */
348         sync_agent_ds_error_e sync_agent_ds_get_server_info(ds_profile_h profile_h, sync_agent_ds_server_info * server_info);
349
350 /**
351  * @brief get profile sync information from profile info
352  * @par Usage:
353  * @code
354  *
355  * ds_profile_h profile_h = NULL;
356  * char *profile_dir_name = "Sync1";
357  * sync_agent_ds_sync_info sync_info = {NULL};
358  *
359  * sync_agent_ds_error_e ds_err = sync_agent_ds_get_profile(profile_dir_name, &profile_h);
360  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
361  *      ...
362  * }
363  *
364  *      ...
365  *
366  * ds_err = sync_agent_ds_get_sync_info(profile_h, &sync_info);
367  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
368  *      ...
369  * }
370  *
371  *      ...
372  *
373  * @endcode
374  * @param[in]   profile_h                       profile info
375  * @param[out]  sync_info                       sync info structure
376  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
377  * @see sync_agent_ds_get_profile
378  */
379         sync_agent_ds_error_e sync_agent_ds_get_sync_info(ds_profile_h profile_h, sync_agent_ds_sync_info * sync_info);
380
381 /**
382  * @brief get profile service information list from profile info
383  * @par Usage:
384  * @code
385  *
386  * ds_profile_h profile_h = NULL;
387  * char *profile_dir_name = "Sync1";
388  * GList service_list = NULL;
389  *
390  * sync_agent_ds_error_e ds_err = sync_agent_ds_get_profile(profile_dir_name, &profile_h);
391  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
392  *      ...
393  * }
394  *
395  *      ...
396  *
397  * ds_err = sync_agent_ds_get_sync_category_info(profile_h, &service_list);
398  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
399  *      ...
400  * }
401  *
402  *      ...
403  *
404  * @endcode
405  * @param[in]   profile_h                               profile info
406  * @param[out]  service_list                    list of service_info structure
407  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
408  * @see sync_agent_ds_get_profile
409  */
410         sync_agent_ds_error_e sync_agent_ds_get_sync_service_info(ds_profile_h profile_h, GList ** service_list);
411
412 /**
413  * @brief get profile last sync status, last sync time from profile info
414  * @par Usage:
415  * @code
416  *
417  * ds_profile_h profile_h = NULL;
418  * char *profile_dir_name = "Sync1";
419  * int last_sync_status = 0;
420  * int last_sync_time = 0;
421  *
422  * sync_agent_ds_error_e ds_err = sync_agent_ds_get_profile(profile_dir_name, &profile_h);
423  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
424  *      ...
425  * }
426  *
427  *      ...
428  *
429  * ds_err = sync_agent_ds_get_last_sync_info(profile_h, &last_sync_status, &last_sync_time);
430  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
431  *      ...
432  * }
433  *
434  *      ...
435  *
436  * @endcode
437  * @param[in]   profile_h                               profile info
438  * @param[out]  last_sync_status                last sync status
439  * @param[out]  last_sync_time                  last sync time
440  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
441  * @see sync_agent_ds_get_profile
442  */
443         sync_agent_ds_error_e sync_agent_ds_get_last_sync_info(ds_profile_h profile_h, int *last_sync_status, int *last_sync_time);
444
445 /**
446  * @brief get statistics info list from profile info
447  * @par Usage:
448  * @code
449  *
450  * ds_profile_h profile_h = NULL;
451  * char *profile_dir_name = "Sync1";
452  * GList *statistics_list = NULL;
453  *
454  * sync_agent_ds_error_e ds_err = sync_agent_ds_get_profile(profile_dir_name, &profile_h);
455  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
456  *      ...
457  * }
458  *
459  *      ...
460  *
461  * ds_err = sync_agent_ds_get_sync_statistics(profile_h, &statistics_list);
462  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
463  *      ...
464  * }
465  *
466  *      ...
467  *
468  * @endcode
469  * @param[in]   profile_h                               profile info
470  * @param[out]  statistics_list                 list of statistics info structure
471  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
472  * @see sync_agent_ds_get_profile
473  */
474         sync_agent_ds_error_e sync_agent_ds_get_sync_statistics(ds_profile_h profile_h, GList ** statistics_list);
475
476 /**
477  * @brief add profile
478  * @par Usage:
479  * @code
480  *
481  * ds_profile_h profile_h = NULL;
482  * char *profile_dir_name = "Sync1";
483  * char *profile_name = "profile name";
484  *
485  * char *addr = "http://xxx.xxx.xxx";
486  * char *id = "id";
487  * char *password = "password";
488  *
489  * char *sync_mode = "Periodic";
490  * char *sync_type = "Update both";
491  * char *interval = "1 hour";
492  *
493  * sync_agent_ds_service_type_e service_type = SYNC_AGENT_CONTACT;
494  * int enabled = 1;
495  * char *src_uri = "Contacts";
496  * char *tgt_uri = "card";
497  * char *id = "id";
498  * char *password = "password";
499  *
500  * int profile_id = 0;
501  *
502  * sync_agent_ds_error_e ds_err = sync_agent_ds_create_profile_info(&profile_h);
503  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
504  *      ...
505  * }
506  *
507  *
508  * ds_err = sync_agent_ds_set_profile_name(profile_h, profile_dir_name, profile_name);
509  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
510  *      ...
511  * }
512  *
513  *
514  * ds_err = sync_agent_ds_set_server_info(profile_h, addr, id, password);
515  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
516  *      ...
517  * }
518  *
519  *
520  * ds_err = sync_agent_ds_set_sync_info(profile_h, sync_mode, sync_type, interval);
521  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
522  *      ...
523  * }
524  *
525  *
526  * ds_err = sync_agent_ds_set_sync_category(profile_h, service_type, enabled, src_uri, tgt_uri, id, password);
527  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
528  *      ...
529  * }
530  *
531  *
532  * ds_err = sync_agent_ds_add_profile(profile_h, &profile_id);
533  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
534  *      ...
535  * }
536  *
537  *
538  * @endcode
539  * @param[in]   profile_h               profile info
540  * @param[out]  profile_id              profile id
541  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
542  * @see sync_agent_ds_create_profile_info, sync_agent_ds_set_profile_name, sync_agent_ds_set_server_info, sync_agent_ds_set_sync_info, sync_agent_ds_set_sync_category
543  */
544         sync_agent_ds_error_e sync_agent_ds_add_profile(ds_profile_h profile_h, int *profile_id);
545
546 /**
547  * @brief get profile info
548  * @par Usage:
549  * @code
550  *
551  * ds_profile_h profile_h = NULL;
552  * char * profile_dir_name = "Sync1";
553  *
554  * sync_agent_ds_error_e ds_err = sync_agent_ds_get_profile(profile_dir_name, &profile_h);
555  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
556  *      ...
557  * }
558  *
559  * @endcode
560  * @param[in]   profile_dir_name                profile dir name
561  * @param[out]  profile_h               profile info
562  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
563  * @see sync_agent_ds_free_profile_info
564  */
565         sync_agent_ds_error_e sync_agent_ds_get_profile(char *profile_dir_name, ds_profile_h * profile_h);
566
567 /**
568  * @brief get all profiles info
569  * @par Usage:
570  * @code
571  *
572  * ds_profile_h profile_h = NULL;
573  * GList **profile_list = NULL;
574  *
575  * sync_agent_ds_error_e ds_err = sync_agent_ds_get_all_profile(&profile_list);
576  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
577  *      ...
578  * }
579  *
580  * @endcode
581  * @param[out]  profile_list            list of profile info
582  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
583  * @see sync_agent_ds_free_profile_info
584  */
585         sync_agent_ds_error_e sync_agent_ds_get_all_profile(GList ** profile_list);
586
587 /**
588  * @brief update profile
589  * @par Usage:
590  * @code
591  *
592  * ds_profile_h profile_h = NULL;
593  * char *profile_dir_name = "Sync1";
594  * char *profile_name = "updated profile name";
595  *
596  * char *addr = "http://xxx.xxx.xxx";
597  * char *id = "id";
598  * char *password = "password";
599  *
600  * char *sync_mode = "Periodic";
601  * char *sync_type = "Update both";
602  * char *interval = "1 hour";
603  *
604  * sync_agent_ds_service_type_e service_type = SYNC_AGENT_CONTACT;
605  * int enabled = 1;
606  * char *src_uri = "Contacts";
607  * char *tgt_uri = "card";
608  * char *id = "id";
609  * char *password = "password";
610  *
611  * sync_agent_ds_error_e ds_err = sync_agent_ds_create_profile_info(&profile_h);
612  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
613  *      ...
614  * }
615  *
616  *
617  * ds_err = sync_agent_ds_set_profile_name(profile_h, profile_dir_name, profile_name);
618  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
619  *      ...
620  * }
621  *
622  *
623  * ds_err = sync_agent_ds_set_server_info(profile_h, addr, id, password);
624  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
625  *      ...
626  * }
627  *
628  *
629  * ds_err = sync_agent_ds_set_sync_info(profile_h, sync_mode, sync_type, interval);
630  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
631  *      ...
632  * }
633  *
634  *
635  * ds_err = sync_agent_ds_set_sync_category(profile_h, service_type, enabled, src_uri, tgt_uri, id, password);
636  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
637  *      ...
638  * }
639  *
640  *
641  * ds_err = sync_agent_ds_update_profile(profile_h);
642  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
643  *      ...
644  * }
645  *
646  * @endcode
647  * @param[in]   profile_h               profile info
648  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
649  * @see sync_agent_ds_create_profile_info, sync_agent_ds_set_profile_name, sync_agent_ds_set_server_info, sync_agent_ds_set_sync_info, sync_agent_ds_set_sync_category
650  */
651         sync_agent_ds_error_e sync_agent_ds_update_profile(ds_profile_h profile_h);
652
653 /**
654  * @brief delete profile
655  * @par Usage:
656  * @code
657  *
658  * sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_FAIL;
659  * ds_profile_h profile_h = NULL;
660  * char *profileDirName = "Sync1";
661  *
662  * ds_err = sync_agent_ds_create_profile_info(&profile_h);
663  * if (result == SYNC_AGENT_DS_FAIL) {
664  *      ...
665  * }
666  *
667  * ds_err = sync_agent_ds_set_profile_name(profile_h, profileDirName, NULL);
668  * if (result == SYNC_AGENT_DS_FAIL) {
669  *      ...
670  * }
671  *
672  *
673  * ds_err = sync_agent_ds_delete_profile(profile_h);
674  * if (result == SYNC_AGENT_DS_FAIL) {
675  *      ...
676  * }
677  *
678  * @endcode
679  * @param[in]   profile_h               profile info
680  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
681  * @see sync_agent_ds_create_profile_info, sync_agent_ds_set_profile_name
682  */
683         sync_agent_ds_error_e sync_agent_ds_delete_profile(ds_profile_h profile_h);
684
685 /**
686  * @brief start sync
687  * @par Usage:
688  * @code
689  *
690  * sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_FAIL;
691  * ds_profile_h profile_h = NULL;
692  * char *profileDirName = "Sync1";
693  *
694  * ds_err = sync_agent_ds_create_profile_info(&profile_h);
695  * if (result == SYNC_AGENT_DS_FAIL) {
696  *      ...
697  * }
698  *
699  * ds_err = sync_agent_ds_set_profile_name(profile_h, profileDirName, NULL);
700  * if (result == SYNC_AGENT_DS_FAIL) {
701  *      ...
702  * }
703  *
704  *
705  * ds_err = sync_agent_ds_start_sync(profile_h);
706  * if (result == SYNC_AGENT_DS_FAIL) {
707  *      ...
708  * }
709  *
710  * @endcode
711  * @param[in]   profile_h               profile info
712  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
713  * @see sync_agent_ds_create_profile_info, sync_agent_ds_set_profile_name
714  */
715         sync_agent_ds_error_e sync_agent_ds_start_sync(ds_profile_h profile_h);
716
717 /**
718  * @brief stop sync
719  * @par Usage:
720  * @code
721  *
722  * sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_FAIL;
723  * ds_profile_h profile_h = NULL;
724  * char *profileDirName = "Sync1";
725  *
726  * ds_err = sync_agent_ds_create_profile_info(&profile_h);
727  * if (result == SYNC_AGENT_DS_FAIL) {
728  *      ...
729  * }
730  *
731  * ds_err = sync_agent_ds_set_profile_name(profile_h, profileDirName, NULL);
732  * if (result == SYNC_AGENT_DS_FAIL) {
733  *      ...
734  * }
735  *
736  *
737  * ds_err = sync_agent_ds_stop_sync(profile_h);
738  * if (result == SYNC_AGENT_DS_FAIL) {
739  *      ...
740  * }
741  *
742  * @endcode
743  * @param[in]   profile_h               profile info
744  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
745  * @see sync_agent_ds_create_profile_info, sync_agent_ds_set_profile_name
746  */
747         sync_agent_ds_error_e sync_agent_ds_stop_sync(ds_profile_h profile_h);
748
749 /**
750  * @brief free profile info
751  * @par Usage:
752  * @code
753  *
754  * sync_agent_ds_error_e ds_err = SYNC_AGENT_DS_FAIL;
755  * ds_profile_h profile_h = NULL;
756  *
757  * ds_err = sync_agent_ds_create_profile_info(&profile_h);
758  * if (result == SYNC_AGENT_DS_FAIL) {
759  *      ...
760  * }
761  *
762  * sync_agent_ds_free_profile_info(profile_h);
763  *
764  * @endcode
765  * @param[in]   profile_h               profile info
766  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
767  * @see sync_agent_ds_create_profile_info, sync_agent_ds_get_profile, sync_agent_ds_get_all_profile
768  */
769         void
770          sync_agent_ds_free_profile_info(ds_profile_h profile_h);
771
772 /**
773  * @brief deinitialize OMA DS
774  * @par Usage:
775  * @code
776  *
777  * sync_agent_ds_error_e ds_err = sync_agent_ds_init();
778  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
779  *      ...
780  * }
781  *
782  *
783  * ds_err = sync_agent_ds_deinit();
784  * if(ds_err != SYNC_AGENT_DS_SUCCESS) {
785  *      ...
786  * }
787  *
788  * @endcode
789  * @return SYNC_AGENT_DS_SUCCESS on success, SYNC_AGENT_DS_FAIL on fail
790  * @see sync_agent_ds_init
791  */
792         sync_agent_ds_error_e sync_agent_ds_deinit();
793
794 /**
795  *      @}
796  */
797
798 #ifdef __cplusplus
799 }
800 #endif                          /* __cplusplus */
801 #endif                          /* OMA_DS_API_H_ */