summaryrefslogtreecommitdiff
path: root/include/service-adapter/sa_common_interface.h
blob: 56d95aa8ebe2789c4246aed7fa1cba48d89a323d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
/*
 * oma-ds-agent
 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the License);
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 *   @SA_Common_Interface.h
 *   @version									0.1
 *   @brief										This file is the header file of interface of SA
 *													called by SE
 */

#ifndef SA_COMMON_INTERFACE_H_
#define SA_COMMON_INTERFACE_H_

/**
 * @par Description: API to process pre-action that has to be befor sync service
 *
 *  Exchage Pkg1 and Pkg2 with server
 *  Get Device Information
 *
 * @par Purpose:
 * @par Typical use case:
 * @par Method of function operation:
 * @par Important notes:
 * @param[in]		int  type, transport Type(obex, FW_HTTP ...)
 * @param[in]		int type, account id
 * @param[in]		string type, session id
 * @param[in]		int type, whether server is fmm server for calllog or not
 * @param[out]		pre_sync_return_obj_s structure(result from pkg2)
 *
 * @return			common_error_type_e enum value
 *
 * @par Errors:
 *
 * @pre None.
 * @post
 * @see
 * @remarks None.
 *
 * @par Sample Code:
 * @code
 * @endcode
 */
int pre_sync(int transport_type, int account_id, char *session_id, int server_flag, void **pre_sync_return_obj);

/**
 * @par Description: API to generate protocol specific msg
 *
 *  Generate MSg which be considered maxMsgSize and maxObjSize
 *
 * @par Purpose:
 * @par Typical use case:
 * @par Method of function operation:
 * @par Important notes:
 * @param[in]		sync_obj_s structure
 * @param[in]		int type, whether server is fmm server for calllog or not
 * @param[out]		msg
 * @param[out]		msg size
 *
 * @return			common_error_type_e enum value
 *
 * @par Errors:
 *
 * @pre None.
 * @post
 * @see
 * @remarks None.
 *
 * @par Sample Code:
 * @code
 * @endcode
 */
int generate_msg(void **sync_obj, int server_flag, char **msg, unsigned int *msg_size);

/**
 * @par Description: API to exchange protocol specific msg with server
 *
 *  Exchange protocol specific msg(request and response) using  header binding information with server
 *
 * @par Purpose:
 * @par Typical use case:
 * @par Method of function operation:
 * @par Important notes:
 * @param[in]		int type, transport protocol type(http, obex etc)
 * @param[in]		string type, msg to send
 * @param[in]		unsigned int type, msg size
 * @param[out]		string type, receive msg
 * @param[out]		unsigned int type, receive msg size
 *
 * @return			common_error_type_e enum value
 *
 * @par Errors:
 *
 * @pre None.
 * @post
 * @see
 * @remarks None.
 *
 * @par Sample Code:
 * @code
 * @endcode
 */
int exchange_msg(int transport_type, char *send_msg, unsigned int send_msg_length, char **recv_msg, unsigned int *recv_msg_length);

/**
 * @par Description: API to process response msg from server
 *
 *  Process response msg from server and convert to obj that return to Service Engine
 *
 * @par Purpose:
 * @par Typical use case:
 * @par Method of function operation:
 * @par Important notes:
 * @param[in]		string type, recive msg from server
 * @param[in]		unsigned int type, receive msg size
 * @param[in]		int type, whether or not to end in pkg4
 * @param[out]		sync_return_obj_s structure
 * @param[out]		int type, flag for finsih sync session
 *
 * @return			common_error_type_e enum value
 *
 * @par Errors:
 *
 * @pre None.
 * @post
 * @see
 * @remarks None.
 *
 * @par Sample Code:
 * @code
 * @endcode
 */
int process_recv_msg(char *recv_msg, unsigned int recv_msg_length, int only_from_client, void **sync_return_obj, int *is_finish);

/**
 * @par Description: API to free session_s structure and close connection
 *
 *  This API for case that error or cancel occur in ServiceEngine so need to clean up resource which using in ServiceAdapter
 *
 * @par Purpose:
 * @par Typical use case:
 * @par Method of function operation:
 * @par Important notes:
 * @param[in]
 * @param[out]
 *
 * @return
 *
 * @par Errors:
 *
 * @pre None.
 * @post
 * @see
 * @remarks None.
 *
 * @par Sample Code:
 * @code
 * @endcode
 */
void clean_up_sa();

/**
 * @par Description: API to process auto configure function
 *
 *
 * @par Purpose:
 * @par Typical use case:
 * @par Method of function operation:
 * @par Important notes:
 * @param[in]		string type, server ip
 * @param[in]		string type, id
 * @param[in]		string type, password
 * @param[out]		GList type, list of auto configure results
 *
 * @return				common_error_type_e enum value
 *
 * @par Errors:
 *
 * @pre None.
 * @post
 * @see
 * @remarks None.
 *
 * @par Sample Code:
 * @code
 * @endcode
 */
int auto_configure(char *addr, char *id, char *password, GList ** congifure);

/**
 * @par Description: API to check cancel status
 *
 *		Cancel flag is set and if engine is going to process pkg 5 & 6
 *		keep going until finish sync session
 *
 *
 * @par Purpose:
 * @par Typical use case:
 * @par Method of function operation:
 * @par Important notes:
 *
 * @return				1 means Do cancel
 *							0 means Do not cancel
 *
 * @par Errors:
 *
 * @pre None.
 * @post
 * @see
 * @remarks None.
 *
 * @par Sample Code:
 * @code
 * @endcode
 */
int check_cancel_status();

/**
 * @par Description: API to suspend current sync session
 *
 *		Send alert 224 to server and status if there are
 *
 *
 * @par Purpose:
 * @par Typical use case:
 * @par Method of function operation:
 * @par Important notes:
 * @param[in]		int  type, transport Type(obex, FW_HTTP ...)
 * @param[in]		int type, account id
 *
 * @return				common_error_type_e enum value
 *
 * @par Errors:
 *
 * @pre None.
 * @post
 * @see
 * @remarks None.
 *
 * @par Sample Code:
 * @code
 * @endcode
 */
int suspend_sync(int transport_type, int account_id, int server_flag);

/**
 * @par Description: API to cancel connection during sync session
 *
 *
 *
 * @par Purpose:
 * @par Typical use case:
 * @par Method of function operation:
 * @par Important notes:
 * @param[in]		int  type, transport Type(obex, FW_HTTP ...)
 *
 * @return				common_error_type_e enum value
 *
 * @par Errors:
 *
 * @pre None.
 * @post
 * @see
 * @remarks None.
 *
 * @par Sample Code:
 * @code
 * @endcode
 */
int cancel_connection_sync_request(int transport_type);

#endif				/* SA_COMMON_INTERFACE_H_ */