/* * 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. */ /** * @oma_ds_protocol_binder.h * @version 0.1 * @brief This file is the header file of interface of protocol binder */ #ifndef OMA_DS_PROTOCOL_BINDER_H_ #define OMA_DS_PROTOCOL_BINDER_H_ #include #include "service-adapter/protocol-binder/oma_ds_protocol_binder_definition.h" /** * @par Description: API to Initialize protocol binder function set * * * @par Purpose: * @par Typical use case: * @par Method of function operation: * @par Important notes: * @param[in] sync_agent_pb_protocol_binder_function_set_s structure * @param[out] * * @return sync_agent_pb_error_e type * * @par Errors: * * @pre None. * @post * @see * @remarks None. * * @par Sample Code: * @code * @endcode */ sync_agent_pb_error_e init_oma_ds_1_2_binder_function_set(sync_agent_pb_protocol_binder_function_set_s ** binder_function_set); /** * @par Description: API to free sync_agent_pb_protocol_binder_function_set_s structure * * * @par Purpose: * @par Typical use case: * @par Method of function operation: * @par Important notes: * @param[in] sync_agent_pb_protocol_binder_function_set_s structure * @param[out] * * @return * * @par Errors: * * @pre None. * @post * @see * @remarks None. * * @par Sample Code: * @code * @endcode */ void free_oma_ds_1_2_binder_function_set(sync_agent_pb_protocol_binder_function_set_s * binder_function_set); /** * @par Description: API to Initialize protocol binder * * * @par Purpose: * @par Typical use case: * @par Method of function operation: * @par Important notes: * @param[in] sync_agent_pb_protocol_binder_info_s structure * @param[in] enum type, sync_agent_pb_encoding_e(SYNC_AGENT_PB_ENCODING_XML, SYNC_AGENT_PB_ENCODING_WBXML_10, SYNC_AGENT_PB_ENCODING_WBXML_11, SYNC_AGENT_PB_ENCODING_WBXML_12, SYNC_AGENT_PB_ENCODING_WBXML_13) * @param[in] boolean type, whether encode xml header or not * @param[in] boolean type, whether use string table or not * @param[in] boolean type, whether protocol is anonymous or not * @param[in] boolean type, whether use flow mode or not * @param[in] boolean type, whether use textual public id or not * @param[in] sync_agent_pb_protocol_binder_function_set_s structure * @param[out] * * @return sync_agent_pb_protocol_binder_info_s on success * NULL on error * * @par Errors: * * @pre None. * @post * @see * @remarks None. * * @par Sample Code: * @code * @endcode */ sync_agent_pb_protocol_binder_info_s *oma_ds_1_2_binder_init(sync_agent_pb_protocol_binder_info_s * binder, sync_agent_pb_encoding_e enc, bool encode_xml_header, bool use_strtbl, bool produce_anonymous, bool use_flow_mode, bool text_public_id, sync_agent_pb_protocol_binder_function_set_s * binder_function_set); /** * @par Description: API to append specific element to WBXML tree * * * @par Purpose: * @par Typical use case: * @par Method of function operation: * @par Important notes: * @param[in] sync_agent_pb_protocol_binder_info_s structure * @param[in] enum type, protocol element * @param[in] content(structure to append) * @param[out] * * @return SYNC_AGENT_PB_RETURN_OK on success * others on error * * @par Errors: * * @pre None. * @post * @see * @remarks None. * * @par Sample Code: * @code * @endcode */ sync_agent_pb_error_e oma_ds_1_2_binder_append(sync_agent_pb_protocol_binder_info_s * binder, oma_ds_protocol_element_e protocol_element, Content_Ptr content); /** * @par Description: API to terminate sync_agent_pb_protocol_binder_info_s structure * * * @par Purpose: * @par Typical use case: * @par Method of function operation: * @par Important notes: * @param[in] sync_agent_pb_protocol_binder_info_s structure * @param[out] * * @return * * @par Errors: * * @pre None. * @post * @see * @remarks None. * * @par Sample Code: * @code * @endcode */ void oma_ds_1_2_binder_terminate(sync_agent_pb_protocol_binder_info_s * binder); /** * @par Description: API to get stream * * * @par Purpose: * @par Typical use case: * @par Method of function operation: * @par Important notes: * @param[in] sync_agent_pb_protocol_binder_info_s structure * @param[out] string type, stream from WBXML tree * @param[out] unsigned int type, size of stream * * @return SYNC_AGENT_PB_RETURN_OK on success * others on error * * @par Errors: * * @pre None. * @post * @see * @remarks None. * * @par Sample Code: * @code * @endcode */ sync_agent_pb_error_e oma_ds_1_2_binder_get_stream(sync_agent_pb_protocol_binder_info_s * binder, char **byte_stream, unsigned int *byte_stream_size); /** * @par Description: API to get stream size * * * @par Purpose: * @par Typical use case: * @par Method of function operation: * @par Important notes: * @param[in] sync_agent_pb_protocol_binder_info_s structure * @param[out] unsigned int type, size of stream * * @return SYNC_AGENT_PB_RETURN_OK on success * others on error * * @par Errors: * * @pre None. * @post * @see * @remarks None. * * @par Sample Code: * @code * @endcode */ sync_agent_pb_error_e oma_ds_1_2_binder_get_stream_size(sync_agent_pb_protocol_binder_info_s * binder, unsigned int *byte_stream_size); /** * @par Description: API to get encoding type * * * @par Purpose: * @par Typical use case: * @par Method of function operation: * @par Important notes: * @param[in] sync_agent_pb_protocol_binder_info_s structure * @param[out] enum type, sync_agent_pb_encoding_e(SYNC_AGENT_PB_ENCODING_XML, SYNC_AGENT_PB_ENCODING_WBXML_10, SYNC_AGENT_PB_ENCODING_WBXML_11, SYNC_AGENT_PB_ENCODING_WBXML_12, SYNC_AGENT_PB_ENCODING_WBXML_13) * * @return SYNC_AGENT_PB_RETURN_OK on success * others on error * * @par Errors: * * @pre None. * @post * @see * @remarks None. * * @par Sample Code: * @code * @endcode */ sync_agent_pb_error_e oma_ds_1_2_binder_get_encoding(sync_agent_pb_protocol_binder_info_s * binder, sync_agent_pb_encoding_e * enc); /** * @par Description: API to Initialize reverse protocol binder * * * @par Purpose: * @par Typical use case: * @par Method of function operation: * @par Important notes: * @param[in] string type, WBXML stream to parse * @param[in] unsigned int type, size of stream * @param[in] enum type, decoding(SYNC_AGENT_PB_DECODING_XML, SYNC_AGENT_PB_DECODING_WBXML) * @param[in] user data * @param[out] sync_agent_pb_protocol_binder_reverse_info_s structure * * @return SYNC_AGENT_PB_RETURN_OK on success * others on error * * @par Errors: * * @pre None. * @post * @see * @remarks None. * * @par Sample Code: * @code * @endcode */ sync_agent_pb_error_e reverse_oma_ds_1_2_binder_init(char *byte_stream, unsigned int byte_stream_len, sync_agent_pb_decoding_e dec, sync_agent_pb_protocol_binder_function_set_s * binder_function_set, void *user_data, sync_agent_pb_protocol_binder_reverse_info_s ** binder); /** * @par Description: API to parse and get next contents * * * @par Purpose: * @par Typical use case: * @par Method of function operation: * @par Important notes: * @param[in] sync_agent_pb_protocol_binder_reverse_info_s structure * @param[out] protocol element * @param[out] string type, protocol element * @param[out] parsed contents(defined structure) * * @return SYNC_AGENT_PB_RETURN_OK on success * others on error * * @par Errors: * * @pre None. * @post * @see * @remarks None. * * @par Sample Code: * @code * @endcode */ sync_agent_pb_error_e reverse_oma_ds_1_2_binder_next(sync_agent_pb_protocol_binder_reverse_info_s * binder, Protocol_Element * protocol_element, char **protocol_element_name, Content_Ptr * content); #endif /* OMA_DS_PROTOCOL_BINDER_H_ */