/* * 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_Session.h * @version 0.1 * @brief This file is the header file of interface of Session structure */ #ifndef SA_SESSION_H_ #define SA_SESSION_H_ #include "service-adapter/sa_define.h" /** * @par Description: API to create session_s structure * This API can be used to create session_s structure * * @par Purpose: * @par Typical use case: * @par Method of function operation: * @par Important notes: * @param[in] enum type, protocol version(VERSION_UNKNOWN, VERSION_10, VERSION_11, VERSION_12); * @param[in] enum type, protocol type(PROTOCOL_TYPE_UNKNOWN , PROTOCOL_TYPE_DS) * @param[in] int type, account id * @param[in] int type, session id * @param[in] string type, source uri(server ip) * @param[in] string type, target uri(client identifer) * @param[out] session_s structure * * @return ERROR_INTERNAL_OK on success * ERROR_INTERNAL_NO_MEMORY on error * * @par Errors: * * @pre None. * @post * @see * @remarks None. * * @par Sample Code: * @code * @endcode */ sa_error_type_e create_session(protocol_version_e protocol_version, protocol_type_e protocol_type, int account_id, char *sess_id, location_s * source_location, location_s * target_location, session_s ** session); /** * @par Description: API to free session_s structure * This API can be used to free session_s structure * * @par Purpose: * @par Typical use case: * @par Method of function operation: * @par Important notes: * @param[in] session_s structure * * @return * * @par Errors: * * @pre None. * @post * @see * @remarks None. * * @par Sample Code: * @code * @endcode */ void free_session(session_s * session); /** * @par Description: API to set cred_s structure in session_s structure * This API can be used to set cred_s structure in session_s structure * * @par Purpose: * @par Typical use case: * @par Method of function operation: * @par Important notes: * @param[in] session_s structure * @param[in] cred_s structure * * @return * * @par Errors: * * @pre None. * @post * @see * @remarks None. * * @par Sample Code: * @code * @endcode */ void set_session_cred(session_s * session, cred_s * cred); /** * @par Description: API to set devinf_s structure in session_s structure * This API can be used to set devinf_s structure in session_s structure * * @par Purpose: * @par Typical use case: * @par Method of function operation: * @par Important notes: * @param[in] session_s structure * @param[in] devinf_s structure * * @return * * @par Errors: * * @pre None. * @post * @see * @remarks None. * * @par Sample Code: * @code * @endcode */ void set_session_devinf(session_s * session, devinf_s * devInf); /** * @par Description: API to create command_status_s structure * This API can be used to set devinf_s structure in session_s structure * * @par Purpose: * @par Typical use case: * @par Method of function operation: * @par Important notes: * @param[in] unsigned int type, msg id * @param[in] unsigned int type, cmd id * @param[out] command_status_s structure * * @return ERROR_INTERNAL_OK on success * ERROR_INTERNAL_NO_MEMORY on error * @par Errors: * * @pre None. * @post * @see * @remarks None. * * @par Sample Code: * @code * @endcode */ sa_error_type_e create_command_status(unsigned int msg_id, unsigned int cmdID, command_status_s ** command_status); /** * @par Description: API to process sync_hdr_s structure from server * This API manage responseURI * set server info in session_s structure * check header credential * create Status structure for header * * @par Purpose: * @par Typical use case: * @par Method of function operation: * @par Important notes: * @param[in] session_s structure * @param[in] sync_hdr_s structure * * @return ERROR_INTERNAL_OK on success * ERROR_INTERNAL_NO_MEMORY on error * @par Errors: * * @pre None. * @post * @see * @remarks None. * * @par Sample Code: * @code * @endcode */ sa_error_type_e receive_header(session_s * session, sync_hdr_s * header); /** * @par Description: API to process list of status_s structure from server * This API check credential status * process Status structure for each type * create AppliedStatus structure for passing to ServiceEngine * * @par Purpose: * @par Typical use case: * @par Method of function operation: * @par Important notes: * @param[in] session_s structure * @param[in] GList type, list of status_s structure * @param[out] GList type, list of applied_status_s structure * * @return ERROR_INTERNAL_OK on success * ERROR_INTERNAL_ERROR, ERROR_SERVER_FAILURE, ERROR_INTERNAL_BUSY_SIGNALING on error * @par Errors: * * @pre None. * @post * @see * @remarks None. * * @par Sample Code: * @code * @endcode */ sa_error_type_e receive_statuses(session_s * session, GList * receive_status, GList ** return_status); /** * @par Description: API to process list of command_s structure from server * This API check credential status * process command_ structure for each type * create changed_datastore_s structure for passing to ServiceEngine * * @par Purpose: * @par Typical use case: * @par Method of function operation: * @par Important notes: * @param[in] session structure * @param[in] GList type, list of command_s structure * @param[in] whether auto configure or not * @param[out] GList type, list of changed_datastore_s structure * * @return ERROR_INTERNAL_OK on success * ERROR_INTERNAL_ERROR, ERROR_INTERNAL_NO_MEMORY, ERROR_INTERNAL_NOT_DEFINED on error * @par Errors: * * @pre None. * @post * @see * @remarks None. * * @par Sample Code: * @code * @endcode */ sa_error_type_e receive_commands(session_s * session, GList * receive_command, bool auto_config, GList ** return_datastore); /** * @par Description: API to reset cmd id(1) in session * * @par Purpose: * @par Typical use case: * @par Method of function operation: * @par Important notes: * @param[in] session_s structure * * @return * * @par Errors: * * @pre None. * @post * @see * @remarks None. * * @par Sample Code: * @code * @endcode */ void reset_cmd_id_session(session_s * session); #endif /* SE_SESSION_H_ */