upload tizen1.0 source
[pkgs/o/oma-ds-service.git] / include / Framework / SAN_parser / PM_SanParser.h
1 /*
2  * oma-ds-service
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: JuHak Park <juhaki.park@samsung.com>,
7  *          JuneHyuk Lee <junhyuk7.lee@samsung.com>,
8  *          SunBong Ha <sunbong.ha@samsung.com>
9  *
10  * Licensed under the Apache License, Version 2.0 (the "License");
11  * you may not use this file except in compliance with the License.
12  * You may obtain a copy of the License at
13  *
14  * http://www.apache.org/licenses/LICENSE-2.0
15  *
16  * Unless required by applicable law or agreed to in writing, software
17  * distributed under the License is distributed on an "AS IS" BASIS,
18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  * See the License for the specific language governing permissions and
20  * limitations under the License.
21  *
22  */
23
24
25
26 \r
27 \r
28 /*\r
29  * For any sort of issue you concern as to this software,\r
30  * you may use following point of contact.\r
31  * All resources contributed on this software\r
32  * are orinigally written by S-Core Inc., a member of Samsung Group.\r
33  *\r
34  * SeongWon Shim <seongwon.shim@samsung.com>\r
35  */\r
36 \r
37 /**\r
38  *   @PM_SanParser.h\r
39  *   @version                                                                   0.1\r
40  *   @brief                                                                             This file is the header file of interface and defined structure for San Parser\r
41  */\r
42 \r
43 #ifndef PM_SANPARSER_H_\r
44 #define PM_SANPARSER_H_\r
45 \r
46 /* FIXME : When initialize, set "Server_id" at config_tbl..\r
47 #define SMLDS_MOBILEDIT_SERVER                                                          (char *)"mobiledit"\r
48 #define SMLDS_FUNAMBOL_SERVER                                                           (char *)"funambol"\r
49 #define SMLDS_O3SIS_SERVER_SAN_IDENTIFIER               (char *)"O3SIS SyncML Server"\r
50 */\r
51 \r
52 typedef enum {\r
53         SAN_UIMODE_UNSPECIFIED  = 0,\r
54         SAN_UIMODE_BACKGROUND   = 1,\r
55         SAN_UIMODE_INFORMATIVE  = 2,\r
56         SAN_UIMODE_USER                 = 3\r
57 } SanUIMode;\r
58 \r
59 typedef enum {\r
60         SAN_INITIATOR_USER              = 0,\r
61         SAN_INITIATOR_SERVER    = 1\r
62 } SanInitiator;\r
63 \r
64 typedef enum {\r
65         SAN_SYNC_TYPE_TWO_WAY_BY_SERVER                         = 206,\r
66         SAN_SYNC_TYPE_ONE_WAY_FROM_CLIENT_BY_SERVER     = 207,\r
67         SAN_SYNC_TYPE_REFRESH_FROM_CLIENT_BY_SERVER     = 208,\r
68         SAN_SYNC_TYPE_ONE_WAY_FROM_SERVER_BY_SERVER     = 209,\r
69         SAN_SYNC_TYPE_REFRESH_FROM_SERVER_BY_SERVER     = 210,\r
70 } SanSyncType;\r
71 \r
72 typedef struct SanCred SanCred;\r
73 struct SanCred {\r
74         char *credFormat;\r
75         char *credAuth;\r
76         char *credData;\r
77 };\r
78 \r
79 typedef struct SanContentType SanContentType;\r
80 struct SanContentType {\r
81         unsigned int type;\r
82         char *strType;\r
83 };\r
84 \r
85 typedef struct SanSyncAlert SanSyncAlert;\r
86 struct SanSyncAlert {\r
87         SanSyncType syncType;\r
88         char *contentType;\r
89         char *serverURI;\r
90 };\r
91 \r
92 typedef struct SanPackage SanPackage;\r
93 struct SanPackage {\r
94         char *msgBodyWithoutDigest;\r
95         unsigned int msgBodyWithoutDigestLength;\r
96         char *digest;\r
97         unsigned int version;\r
98         SanUIMode uiMode;\r
99         SanInitiator initiator;\r
100         unsigned int sessionID;\r
101         SanCred *cred;\r
102         char *serverID;\r
103         unsigned int cntSyncAlerts;\r
104         SanSyncAlert *syncAlerts;\r
105 };\r
106 \r
107 /**\r
108  * @par Description: API to parse for SAN version 1.2\r
109  *\r
110  *\r
111  * @par Purpose:\r
112  * @par Typical use case:\r
113  * @par Method of function operation:\r
114  * @par Important notes:\r
115  * @param[in]           string type, msg body\r
116  * @param[in]           unsigned int type, size of msg\r
117  * @param[out]\r
118  *\r
119  * @return                              SanPackage structure on success\r
120  *                                                      NULL on error\r
121  *\r
122  * @par Errors:\r
123  *\r
124  * @pre None.\r
125  * @post\r
126  * @see\r
127  * @remarks None.\r
128  *\r
129  * @par Sample Code:\r
130  * @code\r
131  * @endcode\r
132  */\r
133 SanPackage *sanPackage12Parser(const char *msgBody, unsigned int msgSize);\r
134 \r
135 /**\r
136  * @par Description: API to parse for SAN version 1.1\r
137  *\r
138  *\r
139  * @par Purpose:\r
140  * @par Typical use case:\r
141  * @par Method of function operation:\r
142  * @par Important notes:\r
143  * @param[in]           string type, msg body\r
144  * @param[in]           unsigned int type, size of msg\r
145  * @param[out]\r
146  *\r
147  * @return                              SanPackage structure on success\r
148  *                                                      NULL on error\r
149  *\r
150  * @par Errors:\r
151  *\r
152  * @pre None.\r
153  * @post\r
154  * @see\r
155  * @remarks None.\r
156  *\r
157  * @par Sample Code:\r
158  * @code\r
159  * @endcode\r
160  */\r
161 SanPackage *sanPackage11Parser(const char *msgBody, unsigned int msgSize);\r
162 \r
163 /**\r
164  * @par Description: API to free SanPackage structure\r
165  *\r
166  *\r
167  * @par Purpose:\r
168  * @par Typical use case:\r
169  * @par Method of function operation:\r
170  * @par Important notes:\r
171  * @param[in]           SanPackage structure\r
172  * @param[out]\r
173  *\r
174  * @return\r
175  *\r
176  * @par Errors:\r
177  *\r
178  * @pre None.\r
179  * @post\r
180  * @see\r
181  * @remarks None.\r
182  *\r
183  * @par Sample Code:\r
184  * @code\r
185  * @endcode\r
186  */\r
187 void sanPackageParserFree(void *point);\r
188 \r
189 /**\r
190  * @par Description: API to print SAN msg for debugging\r
191  *\r
192  *\r
193  * @par Purpose:\r
194  * @par Typical use case:\r
195  * @par Method of function operation:\r
196  * @par Important notes:\r
197  * @param[in]           SanPackage structure\r
198  * @param[out]\r
199  *\r
200  * @return\r
201  *\r
202  * @par Errors:\r
203  *\r
204  * @pre None.\r
205  * @post\r
206  * @see\r
207  * @remarks None.\r
208  *\r
209  * @par Sample Code:\r
210  * @code\r
211  * @endcode\r
212  */\r
213 void sanPrintMsg(SanPackage *san);\r
214 \r
215 #endif /* PM_SANPARSER_H_ */\r
216 \r