/* * 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_ */