3 * Copyright (c) 2000-2012 Samsung Electronics Co., Ltd. All Rights Reserved.
5 * This file is part of msg-service.
7 * Contact: Jaeyun Jeong <jyjeong@samsung.com>
8 * Sangkoo Kim <sangkoo.kim@samsung.com>
9 * Seunghwan Lee <sh.cat.lee@samsung.com>
10 * SoonMin Jung <sm0415.jung@samsung.com>
11 * Jae-Young Lee <jy4710.lee@samsung.com>
12 * KeeBum Kim <keebum.kim@samsung.com>
14 * PROPRIETARY/CONFIDENTIAL
16 * This software is the confidential and proprietary information of
17 * SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
18 * disclose such Confidential Information and shall use it only in
19 * accordance with the terms of the license agreement you entered
20 * into with SAMSUNG ELECTRONICS.
22 * SAMSUNG make no representations or warranties about the suitability
23 * of the software, either express or implied, including but not limited
24 * to the implied warranties of merchantability, fitness for a particular
25 * purpose, or non-infringement. SAMSUNG shall not be liable for any
26 * damages suffered by licensee as a result of using, modifying or
27 * distributing this software or its derivatives.
33 * @brief Defines storage API of messaging framework
37 #ifndef MAPI_STORAGE_H
38 #define MAPI_STORAGE_H
41 * @section Introduction
42 * - Introduction : Overview on Messaging Storage API
44 * - Program : Messaging Storage API Reference
47 /*==================================================================================================
49 ==================================================================================================*/
51 #include "MsgStorageTypes.h"
59 * @ingroup MESSAGING_FRAMEWORK
60 * @defgroup MESSAGING_STORAGE_API Messaging Storage API
64 /*==================================================================================================
66 ==================================================================================================*/
71 * Saves a message to the database.
74 * This API is used to save Message object to the database.
76 * \par Typical use case:
77 * Save Message feature is used when the message is to be stored to persistent memory for later reference.
79 * \par Method of function operation:
80 * Sets up the database connection and inserts the message to message table.
82 * \par Sync (or) Async:
83 * This is a Synchronous API.
85 * \par Important notes:
86 * - Mandatory fields of a message structure MUST be valid, otherwise the function will be failed.
88 * \param input - MSG_HANDLE_T handle is Message handle.
89 * \param input - msg_message_t msg is a pointer to an msg_message_t structure.
90 * \param input - send_opt is a pointer to an MSG_SENDINGOPT_S structure.
92 * \return Return Type (int(MSG_ERROR_T)) \n
93 * - MSG_SUCCESS - Successfully connected to Messaging Service \n
94 * - MSG_ERR_NULL_POINTER - Input parameter is NULL.
95 * - MSG_ERR_STORAGE_ERROR - Storage is error.
97 * \par Prospective clients:
98 * External/Native Apps using Messaging Services.
100 * \par Related functions:
103 * \par Known issues/bugs:
110 * MSG_HANDLE_T msgHandle = NULL;
112 * MSG_SENDINGOPT_S sendingOpt = {0};
116 * err = msg_open_msg_handle(&msgHandle);
120 * err = msg_add_message(handle, (msg_message_t) &msg, &sendingOpt);
121 * if( err != MSG_SUCCESS )
123 * printf("err [%d]", err);
130 /*================================================================================================*/
131 int msg_add_message(MSG_HANDLE_T handle, const msg_message_t msg, const MSG_SENDINGOPT_S *send_opt);
137 * Adds a SyncML message to the database.
140 * This API is used to save a SyncML message to the database.
142 * \par Typical use case:
143 * Save Message feature is used when the message is to be stored to persistent memory for later reference.
145 * \par Method of function operation:
146 * Sets up the database connection and inserts the syncml message to message table.
148 * \par Sync (or) Async:
149 * This is a Synchronous API.
151 * \par Important notes:
152 * - Mandatory fields of a message structure MUST be valid, otherwise the function will be failed.
154 * \param input - MSG_HANDLE_T handle is Message handle.
155 * \param input - MSG_SYNCML_MESSAGE_S syncml_msg is a pointer to an MSG_SYNCML_MESSAGE_S structure.
157 * \return Return Type (int(MSG_ERROR_T)) \n
158 * - MSG_SUCCESS - Success in operation.
159 * - MSG_ERR_NULL_POINTER - pMsg is NULL.
160 * - MSG_ERR_INVALID_MSGHANDLE - Message handle is invalid.
161 * - MSG_ERR_MSGHANDLE_NOT_CONNECTED - Message handle is not connected.
162 * - MSG_ERR_STORAGE_FULL - Storage is FULL.
163 * - MSG_ERR_COMMUNICATION_ERROR - Communication between client and server is error.
164 * - MSG_ERR_MEMORY_ERROR - Memory is error.
165 * - MSG_ERR_MAX_NUMBER_REACHED - Max number is reached.
166 * - MSG_ERR_PLUGIN - Generic error code for plugin.
168 * \par Prospective clients:
169 * External/Native Apps using Messaging Services.
171 * \par Related functions:
174 * \par Known issues/bugs:
181 * MSG_HANDLE_T msgHandle = NULL;
182 * MSG_SYNCML_MESSAGE_S syncMLMsg;
186 * err = msg_open_msg_handle(&msgHandle);
190 * int err = msg_add_syncml_message(msgHandle, &syncMLMsg);
191 * if( err != MSG_SUCCESS )
193 * printf("err [%d]", err);
200 /*================================================================================================*/
201 int msg_add_syncml_message(MSG_HANDLE_T handle, const MSG_SYNCML_MESSAGE_S *syncml_msg);
207 * Updates a message in the database.
210 * This API is used to update a message in the database.
212 * \par Typical use case:
213 * Update message feature is used when a previously saved message is to be updated.
215 * \par Method of function operation:
216 * Sets up the database connection and set the message's new values to message table.
218 * \par Sync (or) Async:
219 * This is a Synchronous API.
221 * \par Important notes:
222 * - The function is to update message data for the message indentified by the given msgId as long as the given values are valid.
223 * - msg->msgId MUST NOT be updated because msg->msgId is a unique Id on platform.
224 * - If applications want to move a message between folders, applications SHOULD call msg_move_to_folder.
225 * - msg->storageId MUST NOT be updated.
226 * - The function will return MSG_ERR_INVALID_MESSAGE, if inputting a new msg->storageId.
227 * - If applications want to move the message between storages, applications SHOULD call msg_move_to_storage.
229 * \param input - handle is Message handle.
230 * \param input - msg is a pointer to an msg_message_t structure.
231 * \param input - send_opt is a pointer to an MSG_SENDINGOPT_S structure.
233 * \return Return Type (int(MSG_ERROR_T)) \n
234 * - MSG_SUCCESS - Success in operation.
235 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
236 * - MSG_ERR_STORAGE_ERROR - Storage is error.
238 * \par Prospective clients:
239 * External/Native Apps using Messaging Services.
241 * \par Related functions:
244 * \par Known issues/bugs:
251 * MSG_HANDLE_T msgHandle = NULL;
252 * MSG_SYNCML_MESSAGE_S syncMLMsg;
253 * MSG_SENDINGOPT_S sendingOpt = {0};
257 * err = msg_open_msg_handle(&msgHandle);
261 * err = msg_update_message(hMsgHandle, pMsg, &sendOpt);
262 * if( err != MSG_SUCCESS )
264 * printf("err [%d]", err);
271 /*================================================================================================*/
272 int msg_update_message(MSG_HANDLE_T handle, const msg_message_t msg, const MSG_SENDINGOPT_S *send_opt);
278 * Updates a message's read status in the database.
281 * This API is used to Updates a message's read status in the database.
283 * \par Typical use case:
284 * Update message's read status for a previously saved message.
286 * \par Method of function operation:
287 * Sets up the database connection and updates the message's read status to message table.
289 * \par Sync (or) Async:
290 * This is a Synchronous API.
292 * \par Important notes:
295 * \param input - handle is Message handle.
296 * \param input - msg_id is Message ID.
297 * \parem input - read is boolean for indicating whether a message is read or not.
299 * \return Return Type (int(MSG_ERROR_T)) \n
300 * - MSG_SUCCESS - Success in operation.
301 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
302 * - MSG_ERR_STORAGE_ERROR - Storage is error.
304 * \par Prospective clients:
305 * External/Native Apps using Messaging Services.
307 * \par Related functions:
310 * \par Known issues/bugs:
317 * MSG_HANDLE_T msgHandle = NULL;
318 * MSG_SYNCML_MESSAGE_S syncMLMsg;
319 * MSG_SENDINGOPT_S sendingOpt = {0};
323 * err = msg_open_msg_handle(&msgHandle);
327 * err = msg_update_message(hMsgHandle, pMsg, &sendOpt);
328 * if( err != MSG_SUCCESS )
330 * printf("err [%d]", err);
337 /*================================================================================================*/
338 int msg_update_read_status(MSG_HANDLE_T handle, MSG_MESSAGE_ID_T msg_id, bool read);
344 * Updates a message's protected status in the database.
347 * This API is used to Updates a message's protected status in the database.
349 * \par Typical use case:
350 * Update message's protected status for a previously saved message.
352 * \par Method of function operation:
353 * Sets up the database connection and updates the message's protected status to message table.
355 * \par Sync (or) Async:
356 * This is a Synchronous API.
358 * \par Important notes:
361 * \param input - handle is Message handle.
362 * \param input - msg_id is Message ID.
363 * \parem input - is_protected is boolean for indicating whether a message is protected or not.
365 * \return Return Type (int(MSG_ERROR_T)) \n
366 * - MSG_SUCCESS - Success in operation.
367 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
368 * - MSG_ERR_STORAGE_ERROR - Storage is error.
370 * \par Prospective clients:
371 * External/Native Apps using Messaging Services.
373 * \par Related functions:
376 * \par Known issues/bugs:
383 * MSG_HANDLE_T msgHandle = NULL;
384 * MSG_SYNCML_MESSAGE_S syncMLMsg;
385 * MSG_SENDINGOPT_S sendingOpt = {0};
389 * err = msg_open_msg_handle(&msgHandle);
393 * err = msg_update_protected_status(hMsgHandle, 0, true);
394 * if( err != MSG_SUCCESS )
396 * printf("err [%d]", err);
403 /*================================================================================================*/
404 int msg_update_protected_status(MSG_HANDLE_T handle, MSG_MESSAGE_ID_T msg_id, bool is_protected);
410 * Deletes a message by Message ID from the database.
413 * This API is used to delete a message by Message ID from the database.
415 * \par Typical use case:
416 * Deletes a previously saved message from the database.
418 * \par Method of function operation:
419 * Sets up the database connection and deletes a message by Message ID from the message table.
421 * \par Sync (or) Async:
422 * This is a Synchronous API.
424 * \par Important notes:
427 * \param input - handle is Message handle.
428 * \param input - msg_id is the ID of the Message to be deleted.
430 * \return Return Type (int(MSG_ERROR_T)) \n
431 * - MSG_SUCCESS - Success in operation.
432 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
433 * - MSG_ERR_STORAGE_ERROR - Storage is error.
435 * \par Prospective clients:
436 * External/Native Apps using Messaging Services.
438 * \par Related functions:
441 * \par Known issues/bugs:
448 * MSG_HANDLE_T msgHandle = NULL;
449 * MSG_SYNCML_MESSAGE_S syncMLMsg;
450 * MSG_SENDINGOPT_S sendingOpt = {0};
454 * err = msg_open_msg_handle(&msgHandle);
458 * err = msg_delete_message(msgHandle, 0);
459 * if( err != MSG_SUCCESS )
461 * printf("err [%d]", err);
468 /*================================================================================================*/
469 int msg_delete_message(MSG_HANDLE_T handle, MSG_MESSAGE_ID_T msg_id);
475 * Deletes all messages in the specified folder from the database.
478 * This API is used to delete all messages in the specified folder from the database.
480 * \par Typical use case:
481 * Deletes all messages in the specified folder from the database.
483 * \par Method of function operation:
484 * Sets up the database connection and Deletes all messages in the specified folder from the message table.
486 * \par Sync (or) Async:
487 * This is a Synchronous API.
489 * \par Important notes:
492 * \param input - handle is Message handle.
493 * \param input - folder_id is the ID of the folder to be deleted.
495 * \return Return Type (int(MSG_ERROR_T)) \n
496 * - MSG_SUCCESS - Success in operation.
497 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
498 * - MSG_ERR_STORAGE_ERROR - Storage is error.
500 * \par Prospective clients:
501 * External/Native Apps using Messaging Services.
503 * \par Related functions:
506 * \par Known issues/bugs:
513 * MSG_HANDLE_T msgHandle = NULL;
514 * MSG_SYNCML_MESSAGE_S syncMLMsg;
515 * MSG_SENDINGOPT_S sendingOpt = {0};
519 * err = msg_open_msg_handle(&msgHandle);
523 * err = msg_delete_all_msgs_in_folder(msgHandle, MSG_DRAFT_ID);
524 * if( err != MSG_SUCCESS )
526 * printf("err [%d]", err);
533 /*================================================================================================*/
534 int msg_delete_all_msgs_in_folder(MSG_HANDLE_T handle, MSG_FOLDER_ID_T folder_id, bool bOnlyDB);
541 * Moves a message to the specified folder in the database.
544 * This API is used to move a message to the specified folder the database.
546 * \par Typical use case:
547 * Deletes all messages in the specified folder from the database.
549 * \par Method of function operation:
550 * Sets up the database connection and Deletes all messages in the specified folder from the message table.
552 * \par Sync (or) Async:
553 * This is a Synchronous API.
555 * \par Important notes:
558 * \param input - handle is Message handle.
559 * \param input - msg_id is the ID of the message to be moved.
560 * \param input - dest_folder_id is the ID of the destination folder.
562 * \return Return Type (int(MSG_ERROR_T)) \n
563 * - MSG_SUCCESS - Success in operation.
564 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
565 * - MSG_ERR_STORAGE_ERROR - Storage is error.
567 * \par Prospective clients:
568 * External/Native Apps using Messaging Services.
570 * \par Related functions:
573 * \par Known issues/bugs:
580 * MSG_HANDLE_T msgHandle = NULL;
581 * MSG_SYNCML_MESSAGE_S syncMLMsg;
582 * MSG_SENDINGOPT_S sendingOpt = {0};
586 * err = msg_open_msg_handle(&msgHandle);
590 * err = msg_move_msg_to_folder(hMsgHandle, 0, MSG_OUTBOX_ID);
591 * if( err != MSG_SUCCESS )
593 * printf("err [%d]", err);
600 /*================================================================================================*/
601 int msg_move_msg_to_folder(MSG_HANDLE_T handle, MSG_MESSAGE_ID_T msg_id, MSG_FOLDER_ID_T dest_folder_id);
607 * Moves a message to the other storage.
610 * This API is usd to move a message to the other storage.
612 * \par Typical use case:
613 * Moves a message to the other storage type.
615 * \par Method of function operation:
616 * Sets up the database connection and moves a messages to specified storage type.
618 * \par Sync (or) Async:
619 * This is a Synchronous API.
621 * \par Important notes:
624 * \param input - handle is Message handle.
625 * \param input - msg_id is the ID of the message to be moved.
626 * \param input - storage_id is the ID of the destination storage.
628 * \return Return Type (int(MSG_ERROR_T)) \n
629 * - MSG_SUCCESS - Success in operation.
630 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
631 * - MSG_ERR_STORAGE_ERROR - Storage is error.
633 * \par Prospective clients:
634 * External/Native Apps using Messaging Services.
636 * \par Related functions:
639 * \par Known issues/bugs:
646 * MSG_HANDLE_T msgHandle = NULL;
647 * MSG_SYNCML_MESSAGE_S syncMLMsg;
648 * MSG_SENDINGOPT_S sendingOpt = {0};
652 * err = msg_open_msg_handle(&msgHandle);
656 * err = msg_move_msg_to_storage( msgHandle, 0, MSG_STORAGE_PHONE);
657 * if( err != MSG_SUCCESS )
659 * printf("err [%d]", err);
666 /*================================================================================================*/
667 int msg_move_msg_to_storage(MSG_HANDLE_T handle, MSG_MESSAGE_ID_T msg_id, MSG_STORAGE_ID_T storage_id);
673 * Gets the number of messages in the specified folder from the database.
676 * This API is used to get the number of messages in the specified folder from the database.
678 * \par Typical use case:
679 * Gets the number of messages in the specified folder from the database.
681 * \par Method of function operation:
682 * Sets up the database connection and Gets the number of messages in the specified folder from the message table.
684 * \par Sync (or) Async:
685 * This is a Synchronous API.
687 * \par Important notes:
690 * \param input - handle is Message handle.
691 * \param input - folder_id is the ID of the folder to be counted.
692 * \param output - count_info is a pointer to an MSG_COUNT_INFO_S structure.
694 * \return Return Type (int(MSG_ERROR_T)) \n
695 * - MSG_SUCCESS - Success in operation.
696 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
697 * - MSG_ERR_STORAGE_ERROR - Storage is error.
699 * \par Prospective clients:
700 * External/Native Apps using Messaging Services.
702 * \par Related functions:
705 * \par Known issues/bugs:
712 * MSG_HANDLE_T msgHandle = NULL;
713 * MSG_COUNT_INFO_S countInfo;
717 * err = msg_open_msg_handle(&msgHandle);
721 * err = msg_count_message(msgHandle, MSG_OUTBOX_ID, &countInfo)
722 * if( err != MSG_SUCCESS )
724 * printf("err [%d]", err);
731 /*================================================================================================*/
732 int msg_count_message(MSG_HANDLE_T handle, MSG_FOLDER_ID_T folder_id, MSG_COUNT_INFO_S *count_info);
738 * Gets the number of messages of specific message type.
741 * This API is used to get the number of messages of specific type.
743 * \par Typical use case:
744 * Gets the count of message of specific types such as SMS, MMS.
746 * \par Method of function operation:
747 * Sets up the database connection and queries the number of messages in the specified folder from the message table based on required message type.
749 * \par Sync (or) Async:
750 * This is a Synchronous API.
752 * \par Important notes:
755 * \param input - handle is Message handle.
756 * \param input - msg_type is the message type to be counted.
757 * \param output - msg_count is a pointer to the number of message.
759 * \return Return Type (int(MSG_ERROR_T)) \n
760 * - MSG_SUCCESS - Success in operation.
761 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
762 * - MSG_ERR_STORAGE_ERROR - Storage is error.
764 * \par Prospective clients:
765 * External/Native Apps using Messaging Services.
767 * \par Related functions:
770 * \par Known issues/bugs:
777 * MSG_HANDLE_T msgHandle = NULL;
778 * MSG_COUNT_INFO_S countInfo;
782 * err = msg_open_msg_handle(&msgHandle);
786 * err = msg_count_msg_by_type(msgHandle, MSG_TYPE_SMS, &countInfo);
787 * if( err != MSG_SUCCESS )
789 * printf("err [%d]", err);
796 /*================================================================================================*/
797 int msg_count_msg_by_type(MSG_HANDLE_T handle, MSG_MESSAGE_TYPE_T msg_type, int *msg_count);
803 * Gets the number of messages of specific address.
806 * This API is used to get the number of messages from a specific address.
808 * \par Typical use case:
809 * Get the count of messages from the specified address
811 * \par Method of function operation:
812 * Sets up the database connection and queries the number of messages based on address from the message table.
814 * \par Sync (or) Async:
815 * This is a Synchronous API.
817 * \par Important notes:
818 * - If addr_info is NULL, nothing happens.
820 * \param input - handle is Message handle.
821 * \param input - addr_info is a pointer to an MSG_ADDRESS_INFO_LIST_S structure.
822 * \param input - msg_thread_count_list is a pointer to an MSG_THREAD_COUNT_INFO_S structure.
824 * \return Return Type (int(MSG_ERROR_T)) \n
825 * - MSG_SUCCESS - Success in operation.
826 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
827 * - MSG_ERR_STORAGE_ERROR - Storage is error.
829 * \par Prospective clients:
830 * External/Native Apps using Messaging Services.
832 * \par Related functions:
835 * \par Known issues/bugs:
842 * MSG_HANDLE_T msgHandle = NULL;
843 * MSG_COUNT_INFO_S countInfo;
847 * err = msg_open_msg_handle(&msgHandle);
851 * err = msg_count_msg_by_type(msgHandle, MSG_TYPE_SMS, &countInfo);
852 * if( err != MSG_SUCCESS )
854 * printf("err [%d]", err);
861 /*================================================================================================*/
862 int msg_count_msg_by_contact(MSG_HANDLE_T handle, const MSG_THREAD_LIST_INDEX_S *addr_info, MSG_THREAD_COUNT_INFO_S *msg_thread_count_list);
868 * Gets the detail information of a message from the database.
871 * This API is used to get the number of messages from a specific address.
873 * \par Typical use case:
874 * Get the count of messages from the specified address
876 * \par Method of function operation:
877 * Sets up the database connection and queries the number of messages based on address from the message table.
879 * \par Sync (or) Async:
880 * This is a Synchronous API.
882 * \par Important notes:
883 * - If addr_info is NULL, nothing happens.
884 * - Applications need to call msg_release_message to free the memory.
885 * - However, if this function is failed, the memory for the message is NOT allocated in this function.
887 handle is Message handle.
888 * \param input - handle is Message handle.
889 * \param input - msg_id is the ID of the Message to be returned.
890 * \param output - msg is a pointer to an msg_message_t structure.
891 * \param input - send_opt is a pointer to an MSG_SENDINGOPT_S structure.
893 * \return Return Type (int(MSG_ERROR_T)) \n
894 * - MSG_SUCCESS - Success in operation.
895 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
896 * - MSG_ERR_STORAGE_ERROR - Storage is error.
898 * \par Prospective clients:
899 * External/Native Apps using Messaging Services.
901 * \par Related functions:
904 * \par Known issues/bugs:
911 * MSG_HANDLE_T msgHandle = NULL;
914 * msg_message_t msg = msg_new_message();
915 * MSG_SENDINGOPT_S sendOpt = {0, };
917 * err = msg_get_message(msgHandle, 0, msg, &sendOpt);
918 * if( err != MSG_SUCCESS )
920 * printf("err [%d]", err);
927 /*================================================================================================*/
928 int msg_get_message(MSG_HANDLE_T handle, MSG_MESSAGE_ID_T msg_id, msg_message_t msg, MSG_SENDINGOPT_S *send_opt);
934 * Returns the common information list of messages with selected folder id.
937 * This API is used to get the common information list of messages with selected folder id from database.
939 * \par Typical use case:
940 * Get the common information from the specified folder from database.
942 * \par Method of function operation:
943 * Sets up the database connection and queries the common information based on selected folder id from the message and folder tables.
945 * \par Sync (or) Async:
946 * This is a Synchronous API.
948 * \par Important notes:
949 * - The memory for a message will be allocated in this function.
950 * - Applications need to call msg_release_folder_view_list to free the memory.
951 * - However, if this function is failed, the memory for the message is NOT allocated in this function.
953 * \param input - handle is Message handle.
954 * \param input - folder_id is the ID of the folder to be returned.
955 * \param input - sort_rule indicates a sort type and sort order for querying messages.
956 * \param output - msg_folder_view_list is a pointer to an MSG_FOLDER_VIEW_LIST_S structure.
958 * \return Return Type (int(MSG_ERROR_T)) \n
959 * - MSG_SUCCESS - Success in operation.
960 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
961 * - MSG_ERR_STORAGE_ERROR - Storage is error.
963 * \par Prospective clients:
964 * External/Native Apps using Messaging Services.
966 * \par Related functions:
969 * \par Known issues/bugs:
976 * MSG_HANDLE_T msgHandle = NULL;
979 * MSG_FOLDER_VIEW_LIST_S folderViewList;
981 * err = msg_get_folder_view_list(hMsgHandle, 0, NULL, &folderViewList);
982 * if( err != MSG_SUCCESS )
984 * printf("err [%d]", err);
991 /*================================================================================================*/
992 int msg_get_folder_view_list(MSG_HANDLE_T handle, MSG_FOLDER_ID_T folder_id, const MSG_SORT_RULE_S *sort_rule, MSG_LIST_S *msg_folder_view_list);
998 * Returns the information of all peers to whom messages have been sent or recieved.
1001 * This API is used to get the information of all peers to whom messages have been sent or recieved.
1003 * \par Typical use case:
1004 * Get the common information from the specified folder from database.
1006 * \par Method of function operation:
1007 * Frees the memory occupied by MSG_FOLDER_VIEW_LIST_S object and its members.
1009 * \par Sync (or) Async:
1010 * This is a Synchronous API.
1012 * \par Important notes:
1013 * - The memory for a list will be allocated in this function.
1014 * - Applications need to call msg_release_thread_view_list to free the memory.
1015 * - However, if this function is failed, the memory for a list is NOT allocated in this function.
1017 * \param input - handle is Message handle.
1018 * \param input - sort_rule indicates a sort type and sort order for querying messages.
1019 * \param output - msg_thread_view_list is a pointer to an MSG_THREAD_VIEW_LIST_S structure.
1021 * \return Return Type (int(MSG_ERROR_T)) \n
1022 * - MSG_SUCCESS - Success in operation.
1023 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
1024 * - MSG_ERR_STORAGE_ERROR - Storage is error.
1026 * \par Prospective clients:
1027 * External/Native Apps using Messaging Services.
1029 * \par Related functions:
1032 * \par Known issues/bugs:
1039 * MSG_HANDLE_T msgHandle = NULL;
1042 * MSG_THREAD_VIEW_LIST_S threadViewList;
1044 * err = msg_get_thread_view_list(hMsgHandle, NULL, &threadViewList);
1046 * msg_release_thread_view_list(&threadViewList);
1047 * if( err != MSG_SUCCESS )
1049 * printf("err [%d]", err);
1054 /*================================================================================================*/
1055 int msg_get_thread_view_list(MSG_HANDLE_T handle, const MSG_SORT_RULE_S *sort_rule, MSG_THREAD_VIEW_LIST_S *msg_thread_view_list);
1061 * Frees the memory of MSG_PEER_INFO_LIST_S allocated in msg_get_thread_view_list.
1064 * This API is used to get the information of all peers to whom messages have been sent or recieved.
1066 * \par Typical use case:
1067 * Get the common information from the specified folder from database.
1069 * \par Method of function operation:
1070 * Frees the memory occupied by MSG_FOLDER_VIEW_LIST_S object and its members.
1072 * \par Sync (or) Async:
1073 * This is a Synchronous API.
1075 * \par Important notes:
1076 * - The memory for a list will be allocated in this function.
1077 * - Applications need to call msg_release_thread_view_list to free the memory.
1078 * - However, if this function is failed, the memory for a list is NOT allocated in this function.
1080 * \param input - msg_thread_view_list is a pointer to an MSG_THREAD_VIEW_LIST_S structure.
1082 * \return Return Type (int(MSG_ERROR_T)) \n
1083 * - MSG_SUCCESS - Success in operation.
1084 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
1085 * - MSG_ERR_STORAGE_ERROR - Storage is error.
1087 * \par Prospective clients:
1088 * External/Native Apps using Messaging Services.
1090 * \par Related functions:
1093 * \par Known issues/bugs:
1100 * MSG_HANDLE_T msgHandle = NULL;
1103 * MSG_THREAD_VIEW_LIST_S threadViewList;
1105 * err = msg_get_thread_view_list(hMsgHandle, NULL, &threadViewList);
1107 * msg_release_thread_view_list(&threadViewList);
1111 /*================================================================================================*/
1112 void msg_release_thread_view_list(MSG_THREAD_VIEW_LIST_S *msg_thread_view_list);
1118 * Returns the common information list of messages with selected thread_id.
1121 * This API is used to get the common information list of messages with selected thread_id.
1123 * \par Typical use case:
1124 * Gets the common information list of messages with the selected thread id from the database.
1126 * \par Method of function operation:
1127 * Connects to the database and queries the common infomation of list messages with the provided thread id.
1129 * \par Sync (or) Async:
1130 * This is a Synchronous API.
1132 * \par Important notes:
1133 * - The memory for a list will be allocated in this function.
1134 * - Applications need to call msg_release_conversation_view_list to free the memory.
1135 * - However, if this function is failed, the memory for a list is NOT allocated in this function.
1137 * \param input - hMsgHandle is Message handle.
1138 * \param input - thread_id is the ID of the thread to be returned.
1139 * \param output - msg_conv_view_list is a pointer to an MSG_CONV_VIEW_LIST_S structure.
1141 * \return Return Type (int(MSG_ERROR_T)) \n
1142 * - MSG_SUCCESS - Success in operation.
1143 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
1144 * - MSG_ERR_STORAGE_ERROR - Storage is error.
1146 * \par Prospective clients:
1147 * External/Native Apps using Messaging Services.
1149 * \par Related functions:
1152 * \par Known issues/bugs:
1159 * MSG_HANDLE_T msgHandle = NULL;
1160 * MSG_ERROR_T err = MSG_SUCCESS;
1162 * MSG_CONV_VIEW_LIST_S convViewList;
1164 * err = msg_get_conversation_view_list(hMsgHandle, ThreadId, &convViewList);
1165 * if( err != MSG_SUCCESS )
1167 * printf("err [%d]", err);
1170 * msg_release_conversation_view_list(&convViewList);
1174 /*================================================================================================*/
1175 int msg_get_conversation_view_list(MSG_HANDLE_T handle, MSG_THREAD_ID_T thread_id, MSG_LIST_S *msg_conv_view_list);
1181 * Deletes all the Messages Sent/Received from the selected list.
1184 * This API is used to delete all the Messages Sent/Received from the selected list.
1186 * \par Typical use case:
1187 * Deletes all messages sent/received from the selected list.
1189 * \par Method of function operation:
1190 * Sets up the database connection and deletes all messages sent/received from a selected list.
1192 * \par Sync (or) Async:
1193 * This is a Synchronous API.
1195 * \par Important notes:
1196 * - If addr_info is NULL, nothing happens.
1198 * \param input - handle is Message handle.
1199 * \param input - thread_id is the ID of the thread to be deleted.
1201 * \return Return Type (int(MSG_ERROR_T)) \n
1202 * - MSG_SUCCESS - Success in operation.
1203 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
1204 * - MSG_ERR_STORAGE_ERROR - Storage is error.
1206 * \par Prospective clients:
1207 * External/Native Apps using Messaging Services.
1209 * \par Related functions:
1212 * \par Known issues/bugs:
1219 * MSG_HANDLE_T msgHandle = NULL;
1220 * MSG_SYNCML_MESSAGE_S syncMLMsg;
1221 * MSG_SENDINGOPT_S sendingOpt = {0};
1225 * err = msg_open_msg_handle(&msgHandle);
1229 * err = msg_delete_thread_message_list(hMsgHandle, 0);
1230 * if( err != MSG_SUCCESS )
1232 * printf("err [%d]", err);
1238 /*================================================================================================*/
1239 int msg_delete_thread_message_list(MSG_HANDLE_T handle, MSG_THREAD_ID_T thread_id);
1245 * Adds a new folder.
1248 * This API is used to add a new folder.
1250 * \par Typical use case:
1251 * Adds a new folder with the specified folder info
1253 * \par Method of function operation:
1254 * Sets up the database connection and add a new folder to the folder table.
1256 * \par Sync (or) Async:
1257 * This is a Synchronous API.
1259 * \par Important notes:
1262 * \param - handle is Message handle.
1263 * \param - folder_info is a pointer to an MSG_FOLDER_INFO_S structure.
1265 * \return Return Type (int(MSG_ERROR_T)) \n
1266 * - MSG_SUCCESS - Success in operation.
1267 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
1268 * - MSG_ERR_STORAGE_ERROR - Storage is error.
1270 * \par Prospective clients:
1271 * External/Native Apps using Messaging Services.
1273 * \par Related functions:
1276 * \par Known issues/bugs:
1283 * MSG_HANDLE_T msgHandle = NULL;
1285 * MSG_FOLDER_INFO_S folderInfo;
1287 * err = msg_open_msg_handle(&msgHandle);
1289 * folderInfo.folderId = 1;
1290 * folderInfo.folderType = MSG_FOLDER_TYPE_USER_DEF;
1293 * err = msg_add_folder(hMsgHandle, &folderInfo);
1294 * if( err != MSG_SUCCESS )
1296 * printf("err [%d]", err);
1302 /*================================================================================================*/
1303 int msg_add_folder(MSG_HANDLE_T handle, const MSG_FOLDER_INFO_S *folder_info);
1309 * Updates the folder info.
1312 * This API is used to add a new folder.
1314 * \par Typical use case:
1315 * Adds a new folder with the specified folder info
1317 * \par Method of function operation:
1318 * Sets up the database connection and add a new folder to the folder table.
1320 * \par Sync (or) Async:
1321 * This is a Synchronous API.
1323 * \par Important notes:
1326 * \param - handle is Message handle.
1327 * \param - folder_info is a pointer to an MSG_FOLDER_INFO_S structure.
1329 * \return Return Type (int(MSG_ERROR_T)) \n
1330 * - MSG_SUCCESS - Success in operation.
1331 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
1332 * - MSG_ERR_STORAGE_ERROR - Storage is error.
1334 * \par Prospective clients:
1335 * External/Native Apps using Messaging Services.
1337 * \par Related functions:
1340 * \par Known issues/bugs:
1347 * MSG_HANDLE_T msgHandle = NULL;
1349 * MSG_FOLDER_INFO_S folderInfo;
1351 * err = msg_open_msg_handle(&msgHandle);
1353 * folderInfo.folderId = 2;
1354 * folderInfo.folderType = MSG_FOLDER_TYPE_USER_DEF;
1356 * err = msg_update_folder(msgHandle, &folderInfo);
1357 * if( err != MSG_SUCCESS )
1359 * printf("err [%d]", err);
1365 /*================================================================================================*/
1366 int msg_update_folder(MSG_HANDLE_T handle, const MSG_FOLDER_INFO_S *folder_info);
1372 * Deletes an exisiting folder.
1375 * This API is used to delete an existing folder.
1377 * \par Typical use case:
1378 * Deletes an existing folder.
1380 * \par Method of function operation:
1381 * Sets up the database connection and deletes an existing folder to the folder table.
1383 * \par Sync (or) Async:
1384 * This is a Synchronous API.
1386 * \par Important notes:
1389 * \param input - handle is Message handle.
1390 * \param input - folder_id is the ID of the folder to be deleted.
1392 * \return Return Type (int(MSG_ERROR_T)) \n
1393 * - MSG_SUCCESS - Success in operation.
1394 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
1395 * - MSG_ERR_STORAGE_ERROR - Storage is error.
1397 * \par Prospective clients:
1398 * External/Native Apps using Messaging Services.
1400 * \par Related functions:
1403 * \par Known issues/bugs:
1410 * MSG_HANDLE_T msgHandle = NULL;
1411 * err = msg_open_msg_handle(&msgHandle);
1414 * err = msg_delete_folder(hMsgHandle, MSG_INBOX_ID);
1415 * if( err != MSG_SUCCESS )
1417 * printf("err [%d]", err);
1423 /*================================================================================================*/
1424 int msg_delete_folder(MSG_HANDLE_T handle, MSG_FOLDER_ID_T folder_id);
1430 * Returns the information list of folders.
1433 * This API is used to get the information list of folders.
1435 * \par Typical use case:
1436 * Gets the folder list information.
1438 * \par Method of function operation:
1439 * Sets up the database connection and queries for the folder list information.
1441 * \par Sync (or) Async:
1442 * This is a Synchronous API.
1444 * \par Important notes:
1447 * \param input - handle is Message handle.
1448 * \param output - folder_list is a pointer to an MSG_FOLDER_LIST_S structure.
1450 * \return Return Type (int(MSG_ERROR_T)) \n
1451 * - MSG_SUCCESS - Success in operation.
1452 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
1453 * - MSG_ERR_STORAGE_ERROR - Storage is error.
1455 * \par Prospective clients:
1456 * External/Native Apps using Messaging Services.
1458 * \par Related functions:
1461 * \par Known issues/bugs:
1468 * MSG_HANDLE_T msgHandle = NULL;
1469 * MSG_FOLDER_LIST_S folderList;
1471 * err = msg_open_msg_handle(&msgHandle);
1474 * err = msg_get_folder_list(msgHandle, &folderList);
1475 * if( err != MSG_SUCCESS )
1477 * printf("err [%d]", err);
1481 * msg_release_folder_list(&folderList);
1484 /*================================================================================================*/
1485 int msg_get_folder_list(MSG_HANDLE_T handle, MSG_FOLDER_LIST_S *folder_list);
1492 * Releases the memory of a folder list.
1495 * This API is used to get the information list of folders.
1497 * \par Typical use case:
1498 * Gets the folder list information.
1500 * \par Method of function operation:
1501 * Sets up the database connection and queries for the folder list information.
1503 * \par Sync (or) Async:
1504 * This is a Synchronous API.
1506 * \par Important notes:
1507 * - If folder_list is NULL, nothing happens.
1508 * - If folder_list is invalid, undefined behavior happens.
1510 * \param input - folder_list is a pointer to an MSG_FOLDER_LIST_S structure.
1512 * \return Return Type (int(MSG_ERROR_T)) \n
1513 * - MSG_SUCCESS - Success in operation.
1514 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
1515 * - MSG_ERR_STORAGE_ERROR - Storage is error.
1517 * \par Prospective clients:
1518 * External/Native Apps using Messaging Services.
1520 * \par Related functions:
1523 * \par Known issues/bugs:
1530 * MSG_HANDLE_T msgHandle = NULL;
1531 * MSG_FOLDER_LIST_S folderList;
1533 * err = msg_open_msg_handle(&msgHandle);
1536 * err = msg_get_folder_list(msgHandle, &folderList);
1537 * if( err != MSG_SUCCESS )
1539 * printf("err [%d]", err);
1543 * msg_release_folder_list(&folderList);
1546 /*================================================================================================*/
1547 void msg_release_folder_list(MSG_FOLDER_LIST_S *folder_list);
1553 * Creates the specified number of messages in database.
1556 * This API is used to generate specified number of messages in the database
1558 * \par Typical use case:
1559 * Generate large number of messages in the database.
1561 * \par Method of function operation:
1562 * Creates the specified number of messages in database for specified message type in the specified folder
1564 * \par Sync (or) Async:
1565 * This is a Synchronous API.
1567 * \par Important notes:
1570 * \param input - handle is Message handle.
1571 * \param input - msg_type is one of enum _MSG_MESSAGE_TYPE_E.
1572 * \param input - folder_id is the folder for the test messages.
1573 * \param input - num_msg is the number of messages.
1575 * \return Return Type (int(MSG_ERROR_T)) \n
1576 * - MSG_SUCCESS Success in operation.
1577 * - MSG_ERR_INVALID_MSGHANDLE Parameter is invalid.
1578 * - MSG_ERR_INVALID_FOLDER_ID Storage is error.
1580 * \par Prospective clients:
1581 * External/Native Apps using Messaging Services.
1583 * \par Related functions:
1586 * \par Known issues/bugs:
1593 * MSG_HANDLE_T msgHandle = NULL;
1594 * MSG_FOLDER_LIST_S folderList;
1596 * err = msg_open_msg_handle(&msgHandle);
1599 * err = msg_generate_message(msgHandle, MSG_TYPE_SMS, MSG_INBOX_ID, 100);
1600 * if( err != MSG_SUCCESS )
1602 * printf("err [%d]", err);
1608 /*================================================================================================*/
1609 int msg_generate_message(MSG_HANDLE_T handle, MSG_MESSAGE_TYPE_T msg_type, MSG_FOLDER_ID_T folder_id, unsigned int num_msg);
1610 int msg_generate_sms(MSG_HANDLE_T handle, MSG_FOLDER_ID_T folder_id, unsigned int num_msg) DEPRECATED;
1616 * Returns the Message Data to be used by the Quick Panel.
1619 * This API is used to get the Message Datato be used by the Quick Panel.
1621 * \par Typical use case:
1622 * Quick panel needs the message information to show new message notification.
1624 * \par Method of function operation:
1625 * Connects to database and queries for information needed by the quick panel.
1627 * \par Sync (or) Async:
1628 * This is a Synchronous API.
1630 * \par Important notes:
1633 * \param input - handle is Message handle.
1634 * \param input - type is the type of message that Quick Panel need.
1635 * \param output - msg is a pointer to an msg_message_t structure.
1637 * \return Return Type (int(MSG_ERROR_T)) \n
1638 * - MSG_SUCCESS Success in operation.
1639 * - MSG_ERR_INVALID_MSGHANDLE Parameter is invalid.
1640 * - MSG_ERR_INVALID_FOLDER_ID Storage is error.
1642 * \par Prospective clients:
1643 * External/Native Apps using Messaging Services.
1645 * \par Related functions:
1648 * \par Known issues/bugs:
1655 * MSG_HANDLE_T msgHandle = NULL;
1656 * msg_message_t msgInfo;
1658 * err = msg_open_msg_handle(&msgHandle);
1661 * err = msg_get_quick_panel_data(msgHandle, MSG_QUICKPANEL_SMS, msgInfo);
1662 * if( err != MSG_SUCCESS )
1664 * printf("err [%d]", err);
1670 /*================================================================================================*/
1671 int msg_get_quick_panel_data(MSG_HANDLE_T handle, MSG_QUICKPANEL_TYPE_T type, msg_message_t msg);
1677 * Resets the Messaging database.
1680 * This API is used to reset the messaging database.
1682 * \par Typical use case:
1683 * Completely delete the messaging database.
1685 * \par Method of function operation:
1686 * Connects to database and deletes all the messaging tables.
1688 * \par Sync (or) Async:
1689 * This is a Synchronous API.
1691 * \par Important notes:
1694 * \param input - handle is Message handle.
1696 * \return Return Type (int(MSG_ERROR_T)) \n
1697 * - MSG_SUCCESS Success in operation.
1698 * - MSG_ERR_INVALID_PARAMETER Parameter is invalid.
1699 * - MSG_ERR_STORAGE_ERROR Storage is error.
1701 * \par Prospective clients:
1702 * External/Native Apps using Messaging Services.
1704 * \par Related functions:
1707 * \par Known issues/bugs:
1714 * MSG_HANDLE_T msgHandle = NULL;
1715 * MSG_ERROR_T err = MSG_SUCCESS;
1716 * err = msg_open_msg_handle(&msgHandle);
1719 * err = msg_reset_database(msgHandle);
1720 * if (err != MSG_SUCCESS)
1722 * printf("err [%d]", err);
1728 /*================================================================================================*/
1729 int msg_reset_database(MSG_HANDLE_T handle);
1735 * Returns the total size used for message contents.
1738 * This API is used to get the total size used for message contents.
1740 * \par Typical use case:
1741 * To get the total space used by message contents.
1743 * \par Method of function operation:
1744 * Uses linux system calls to query the space used by message contents.
1746 * \par Sync (or) Async:
1747 * This is a Synchronous API.
1749 * \par Important notes:
1752 * \param input - handle is Message handle.
1753 * \param output - memsize is a pointer to the size.
1755 * \return Return Type (int(MSG_ERROR_T)) \n
1756 * - MSG_SUCCESS Success in operation.
1757 * - MSG_ERR_INVALID_PARAMETER Parameter is invalid.
1758 * - MSG_ERR_STORAGE_ERROR Storage is error.
1760 * \par Prospective clients:
1761 * External/Native Apps using Messaging Services.
1763 * \par Related functions:
1766 * \par Known issues/bugs:
1773 * MSG_HANDLE_T msgHandle = NULL;
1775 * err = msg_open_msg_handle(&msgHandle);
1778 * err = msg_get_mem_size(msgHandle, &memsize);
1779 * if( err != MSG_SUCCESS )
1781 * printf("err [%d]", err);
1787 /*================================================================================================*/
1788 int msg_get_mem_size(MSG_HANDLE_T handle, unsigned int* memsize);
1794 * Return thread id in thread view object.
1797 * This API is used to get the thread id field in folder view object.
1799 * \par Typical use case:
1800 * Returns thread id value in thread view object.
1802 * \par Method of function operation:
1803 * Returns the threadId member of thread view object msg.
1805 * \par Sync (or) Async:
1806 * This is a Synchronous API.
1808 * \par Important notes:
1809 * - If msg_thread is NULL, nothing happens.
1810 * - If msg_thread is invalid, undefined behavior happens.
1812 * \param msg_thread_view_t input - msg_thread is a thread view object.
1814 * \return Return Type int (MSG_ERROR_T when negative, msg_id when positive) \n
1815 * - positive int thread id.
1816 * - MSG_ERR_NULL_POINTER msg_thread is NULL.
1818 * \par Prospective clients:
1819 * External/Native Apps using Messaging Services.
1821 * \par Related functions:
1824 * \par Known issues/bugs:
1831 * MSG_HANDLE_T msgHandle = NULL;
1832 * msg_thread_view_t msgThreadInfo;
1836 * err = msg_thread_view_get_thread_id(&msgThreadInfo);
1844 /*================================================================================================*/
1845 int msg_thread_view_get_thread_id(msg_thread_view_t msg_thread);
1851 * Return address value in thread view object.
1854 * This API is used to get the address value in thread view object.
1856 * \par Typical use case:
1857 * Returns address value in thread view object.
1859 * \par Method of function operation:
1860 * Returns the threadAddr member of thread view object msg.
1862 * \par Sync (or) Async:
1863 * This is a Synchronous API.
1865 * \par Important notes:
1866 * - If msg_thread is NULL, nothing happens.
1867 * - If msg_thread is invalid, undefined behavior happens.
1868 * - You do not need to free the return value. It will be freed when you call msg_release_thread_view_list().
1869 * - Also, the value is valid until msg_thread_view_t is freed by calling msg_release_thread_view_list().
1871 * \param msg_thread_view_t input - msg_thread is a thread view object.
1873 * \return Return Type int const char* (address value) \n
1874 * - const char* address value.
1875 * - NULL msg_thread is NULL.
1877 * \par Prospective clients:
1878 * External/Native Apps using Messaging Services.
1880 * \par Related functions:
1883 * \par Known issues/bugs:
1890 * MSG_HANDLE_T msgHandle = NULL;
1891 * msg_thread_view_t msgThreadInfo;
1892 * char* addr = NULL;
1895 * addr = msg_thread_view_get_address(&msgThreadInfo);
1896 * if(addr != 0 && strlen(addt) > 0)
1903 /*================================================================================================*/
1904 const char* msg_thread_view_get_address(msg_thread_view_t msg_thread);
1910 * Return display name value in thread view object.
1913 * This API is used to get the display name value in thread view object.
1915 * \par Typical use case:
1916 * Returns address value in thread view object.
1918 * \par Method of function operation:
1919 * Returns the threadName member of thread view object msg.
1921 * \par Sync (or) Async:
1922 * This is a Synchronous API.
1924 * \par Important notes:
1925 * - If msg_thread is NULL, nothing happens.
1926 * - If msg_thread is invalid, undefined behavior happens.
1927 * - You do not need to free the return value. It will be freed when you call msg_release_thread_view_list().
1928 * - Also, the value is valid until msg_thread_view_t is freed by calling msg_release_thread_view_list().
1930 * \param msg_thread_view_t input - msg_thread is a thread view object.
1932 * \return Return Type int const char* (display name) \n
1933 * - const char* display name.
1934 * - NULL msg_thread is NULL.
1936 * \par Prospective clients:
1937 * External/Native Apps using Messaging Services.
1939 * \par Related functions:
1942 * \par Known issues/bugs:
1949 * MSG_HANDLE_T msgHandle = NULL;
1950 * msg_thread_view_t msgThreadInfo;
1951 * char* disp_name = NULL;
1954 * disp_name = msg_thread_view_get_name(&msgThreadInfo);
1955 * if(disp_name != 0 && strlen(disp_name) > 0)
1962 /*================================================================================================*/
1963 const char* msg_thread_view_get_name(msg_thread_view_t msg_thread);
1969 * Return image path in thread view object.
1972 * This API is used to get the image path value in thread view object.
1974 * \par Typical use case:
1975 * Returns image path value in thread view object.
1977 * \par Method of function operation:
1978 * Returns the threadImagePath member of thread view object msg.
1980 * \par Sync (or) Async:
1981 * This is a Synchronous API.
1983 * \par Important notes:
1984 * - If msg_thread is NULL, nothing happens.
1985 * - If msg_thread is invalid, undefined behavior happens.
1986 * - You do not need to free the return value. It will be freed when you call msg_release_thread_view_list().
1987 * - Also, the value is valid until msg_thread_view_t is freed by calling msg_release_thread_view_list().
1989 * \param msg_thread_view_t input - msg_thread is a thread view object.
1991 * \return Return Type int const char* (thread image path) \n
1992 * - const char* thread image path.
1993 * - NULL msg_thread is NULL.
1995 * \par Prospective clients:
1996 * External/Native Apps using Messaging Services.
1998 * \par Related functions:
2001 * \par Known issues/bugs:
2008 * MSG_HANDLE_T msgHandle = NULL;
2009 * msg_thread_view_t msgThreadInfo;
2010 * char* img_path = NULL;
2013 * img_path = msg_thread_view_get_name(&msgThreadInfo);
2014 * if(img_path != 0 && strlen(img_path) > 0)
2021 /*================================================================================================*/
2022 const char* msg_thread_view_get_image_path(msg_thread_view_t msg_thread);
2028 * Return the message type field in thread view object.
2031 * This API is used to get the message type field value in thread view object.
2033 * \par Typical use case:
2034 * Returns the message type value in thread view object.
2036 * \par Method of function operation:
2037 * Returns the msgType member of thread view object msg.
2039 * \par Sync (or) Async:
2040 * This is a Synchronous API.
2042 * \par Important notes:
2043 * - If msg_thread is NULL, nothing happens.
2044 * - If msg_thread is invalid, undefined behavior happens.
2045 * - You do not need to free the return value. It will be freed when you call msg_release_thread_view_list().
2046 * - Also, the value is valid until msg_thread_view_t is freed by calling msg_release_thread_view_list().
2048 * \param msg_thread_view_t input - msg_thread is a thread view object.
2050 * \return Return Type (int (MSG_ERROR_T when negative, msg_type when positive)) \n
2051 * - positive int enum _MSG_MESSAGE_TYPE_E.
2052 * - EINVAL msg_thread is NULL.
2054 * \par Prospective clients:
2055 * External/Native Apps using Messaging Services.
2057 * \par Related functions:
2060 * \par Known issues/bugs:
2067 * MSG_HANDLE_T msgHandle = NULL;
2068 * msg_thread_view_t msgThreadInfo;
2069 * MSG_MESSAGE_TYPE_T msg_type;
2072 * msg_type = msg_thread_view_get_message_type(&msgThreadInfo);
2076 /*================================================================================================*/
2077 int msg_thread_view_get_message_type(msg_thread_view_t msg_thread);
2083 * Return data field in thread view object.
2086 * This API is used to get the data field value in thread view object.
2088 * \par Typical use case:
2089 * Returns data value in thread view object.
2091 * \par Method of function operation:
2092 * Returns the threadData member of thread view object msg.
2094 * \par Sync (or) Async:
2095 * This is a Synchronous API.
2097 * \par Important notes:
2098 * - If msg_thread is NULL, nothing happens.
2099 * - If msg_thread is invalid, undefined behavior happens.
2100 * - You do not need to free the return value. It will be freed when you call msg_release_thread_view_list().
2101 * - Also, the value is valid until msg_thread_view_t is freed by calling msg_release_thread_view_list().
2103 * \param msg_thread_view_t input - msg_thread is a thread view object.
2105 * \return Return Type int const char* (message data) \n
2106 * - const char* message data.
2107 * - NULL msg_thread is NULL.
2109 * \par Prospective clients:
2110 * External/Native Apps using Messaging Services.
2112 * \par Related functions:
2115 * \par Known issues/bugs:
2122 * MSG_HANDLE_T msgHandle = NULL;
2123 * msg_thread_view_t msgThreadInfo;
2124 * char* msg_data = NULL;
2127 * msg_data = msg_thread_view_get_data(&msgThreadInfo);
2128 * if(msg_data != 0 && strlen(msg_data) > 0)
2135 /*================================================================================================*/
2136 const char* msg_thread_view_get_data(msg_thread_view_t msg_thread);
2142 * Return time field in thread view object.
2145 * This API is used to get the time field value in thread view object.
2147 * \par Typical use case:
2148 * Returns time value in thread view object.
2150 * \par Method of function operation:
2151 * Returns the threadTime member of thread view object msg.
2153 * \par Sync (or) Async:
2154 * This is a Synchronous API.
2156 * \par Important notes:
2157 * - If msg_thread is NULL, nothing happens.
2158 * - If msg_thread is invalid, undefined behavior happens.
2159 * - You do not need to free the return value. It will be freed when you call msg_release_thread_view_list().
2160 * - Also, the value is valid until msg_thread_view_t is freed by calling msg_release_thread_view_list().
2162 * \param msg_thread_view_t input - msg_thread is a thread view object.
2164 * \return Return Type (time_t) \n
2165 * - time_t message time.
2166 * - NULL thread view object is NULL.
2168 * \par Prospective clients:
2169 * External/Native Apps using Messaging Services.
2171 * \par Related functions:
2174 * \par Known issues/bugs:
2181 * MSG_HANDLE_T msgHandle = NULL;
2182 * msg_thread_view_t msgThreadInfo;
2186 * msg_time = msg_thread_view_get_time(&msgThreadInfo);
2190 /*================================================================================================*/
2191 time_t* msg_thread_view_get_time(msg_thread_view_t msg_thread);
2197 * Return direction field in thread view object.
2200 * This API is used to get the direction field value in thread view object.
2202 * \par Typical use case:
2203 * Returns direction value in thread view object.
2205 * \par Method of function operation:
2206 * Returns the direction member of thread view object msg.
2208 * \par Sync (or) Async:
2209 * This is a Synchronous API.
2211 * \par Important notes:
2212 * - If msg_thread is NULL, nothing happens.
2213 * - If msg_thread is invalid, undefined behavior happens.
2215 * \param msg_thread_view_t input - msg_thread is a thread view object.
2217 * \return Return Type (time_t) \n
2218 * - positive int enum _MSG_DIRECTION_TYPE_E.
2219 * - MSG_ERR_NULL_POINTER msg_thread is NULL.
2221 * \par Prospective clients:
2222 * External/Native Apps using Messaging Services.
2224 * \par Related functions:
2227 * \par Known issues/bugs:
2234 * MSG_HANDLE_T msgHandle = NULL;
2235 * msg_thread_view_t msgThreadInfo;
2239 * direction = msg_thread_view_get_direction(&msgThreadInfo);
2243 /*================================================================================================*/
2244 int msg_thread_view_get_direction(msg_thread_view_t msg_thread);
2250 * Return contact id field in thread view object.
2253 * This API is used to get the contact id field value in thread view object.
2255 * \par Typical use case:
2256 * Returns contact id value in thread view object.
2258 * \par Method of function operation:
2259 * Returns the contactId member of thread view object msg.
2261 * \par Sync (or) Async:
2262 * This is a Synchronous API.
2264 * \par Important notes:
2265 * - If msg_thread is NULL, nothing happens.
2266 * - If msg_thread is invalid, undefined behavior happens.
2268 * \param msg_thread_view_t input - msg_thread is a thread view object.
2270 * \return Return Type (int (MSG_ERROR_T when negative, contact id when positive)) \n
2271 * - positive int contact id
2272 * - MSG_ERR_NULL_POINTER msg_thread is NULL.
2274 * \par Prospective clients:
2275 * External/Native Apps using Messaging Services.
2277 * \par Related functions:
2280 * \par Known issues/bugs:
2287 * MSG_HANDLE_T msgHandle = NULL;
2288 * msg_thread_view_t msgThreadInfo;
2292 * contact_id = msg_thread_view_get_contact_id(&msgThreadInfo);
2296 /*================================================================================================*/
2297 int msg_thread_view_get_contact_id(msg_thread_view_t msg_thread);
2303 * Return unread message count field in thread view object.
2306 * This API is used to get the unread message count field value in thread view object.
2308 * \par Typical use case:
2309 * Returns unread message count value in thread view object.
2311 * \par Method of function operation:
2312 * Returns the unreadCnt member of thread view object msg.
2314 * \par Sync (or) Async:
2315 * This is a Synchronous API.
2317 * \par Important notes:
2318 * - If msg_thread is NULL, nothing happens.
2319 * - If msg_thread is invalid, undefined behavior happens.
2321 * \param msg_thread_view_t input - msg_thread is a thread view object.
2323 * \return Return Type nt (MSG_ERROR_T when negative, unread message count when positive) \n
2324 * - positive int unread message count \n
2325 * - MSG_ERR_NULL_POINTER msg_thread is NULL.
2327 * \par Prospective clients:
2328 * External/Native Apps using Messaging Services.
2330 * \par Related functions:
2333 * \par Known issues/bugs:
2340 * MSG_HANDLE_T msgHandle = NULL;
2341 * msg_thread_view_t msgThreadInfo;
2345 * unread_count= msg_thread_view_get_unread_cnt(&msgThreadInfo);
2349 /*================================================================================================*/
2350 int msg_thread_view_get_unread_cnt(msg_thread_view_t msg_thread);
2357 * Return sms message count field in thread view object.
2360 * This API is used to get the sms message count field value in thread view object.
2362 * \par Typical use case:
2363 * Returns sms message count value in thread view object.
2365 * \par Method of function operation:
2366 * Returns the smsCnt member of thread view object msg.
2368 * \par Sync (or) Async:
2369 * This is a Synchronous API.
2371 * \par Important notes:
2372 * - If msg_thread is NULL, nothing happens.
2373 * - If msg_thread is invalid, undefined behavior happens.
2375 * \param msg_thread_view_t input - msg_thread is a thread view object.
2377 * \return Return Type int (MSG_ERROR_T when negative, sms message count when positive) \n
2378 * - positive int sms message count
2379 * - MSG_ERR_NULL_POINTER msg_thread is NULL.
2381 * \par Prospective clients:
2382 * External/Native Apps using Messaging Services.
2384 * \par Related functions:
2387 * \par Known issues/bugs:
2394 * MSG_HANDLE_T msgHandle = NULL;
2395 * msg_thread_view_t msgThreadInfo;
2399 * sms_count= msg_thread_view_get_sms_cnt(&msgThreadInfo);
2403 /*================================================================================================*/
2404 int msg_thread_view_get_sms_cnt(msg_thread_view_t msg_thread);
2410 * Return mms message count field in thread view object.
2413 * This API is used to get the mms message count field value in thread view object.
2415 * \par Typical use case:
2416 * Returns mms message count value in thread view object.
2418 * \par Method of function operation:
2419 * Returns the mmsCnt member of thread view object msg.
2421 * \par Sync (or) Async:
2422 * This is a Synchronous API.
2424 * \par Important notes:
2425 * - If msg_thread is NULL, nothing happens.
2426 * - If msg_thread is invalid, undefined behavior happens.
2428 * \param msg_thread_view_t input - msg_thread is a thread view object.
2430 * \return Return Type int (MSG_ERROR_T when negative, mms message count when positive) \n
2431 * - positive int sms message count
2432 * - MSG_ERR_NULL_POINTER msg_thread is NULL.
2434 * \par Prospective clients:
2435 * External/Native Apps using Messaging Services.
2437 * \par Related functions:
2440 * \par Known issues/bugs:
2447 * MSG_HANDLE_T msgHandle = NULL;
2448 * msg_thread_view_t msgThreadInfo;
2452 * mms_count= msg_thread_view_get_mms_cnt(&msgThreadInfo);
2456 /*================================================================================================*/
2457 int msg_thread_view_get_mms_cnt(msg_thread_view_t msg_thread);
2463 * Search messages or addresses which including a string that applcation want to find.
2466 * This API is used to search messages or addresses from storage.
2468 * \par Typical use case:
2469 * Search messages or addresses from storage.
2471 * \par Method of function operation:
2472 * search messages or addresses from storage.
2474 * \par Sync (or) Async:
2475 * This is a Synchronous API.
2477 * \par Important notes:
2480 * \param input - MSG_HANDLE_T handle is Message handle.
2481 * \param input - search_string is the string to search.
2482 * \param output - msg_thread_view_list is a pointer to an MSG_THREAD_VIEW_LIST_S structure.
2484 * \return Return Type int (MSG_ERROR_T) \n
2485 * - MSG_SUCCESS Success in operation.
2486 * - MSG_ERR_INVALID_PARAMETER Parameter is invalid.
2487 * - MSG_ERR_STORAGE_ERROR Storage is error.
2489 * \par Prospective clients:
2490 * External/Native Apps using Messaging Services.
2492 * \par Related functions:
2495 * \par Known issues/bugs:
2502 * MSG_HANDLE_T msgHandle = NULL;
2503 * MSG_ERROR_T err = MSG_SUCCESS;
2505 * char* search_string = "hello";
2506 * MSG_THREAD_VIEW_LIST_S threadViewList;
2508 * err = msg_search_message_for_thread_view(&msgHandle, search_string, &threadViewList);
2510 * if( err != MSG_SUCCESS )
2512 * printf("err [%d]", err);
2518 /*================================================================================================*/
2519 int msg_search_message_for_thread_view(MSG_HANDLE_T handle, const char *search_string, MSG_THREAD_VIEW_LIST_S *msg_thread_view_list);
2525 * Search messages or addresses which including a string that applcation want to find.
2528 * This API is used to search messages or addresses from storage.
2530 * \par Typical use case:
2531 * Search messages or addresses from storage.
2533 * \par Method of function operation:
2534 * search messages or addresses from storage.
2536 * \par Sync (or) Async:
2537 * This is a Synchronous API.
2539 * \par Important notes:
2542 * \param input - MSG_HANDLE_T handle is Message handle.
2543 * \param input - search_string is the string to search.
2544 * \param input - offset is the offset of the search result.
2545 * \param input - limit is the limit of the search result.
2546 * \param output - msg_list is a pointer to an MSG_LIST_S structure.
2548 * \return Return Type int (MSG_ERROR_T) \n
2549 * - MSG_SUCCESS Success in operation.
2550 * - MSG_ERR_INVALID_PARAMETER Parameter is invalid.
2551 * - MSG_ERR_STORAGE_ERROR Storage is error.
2553 * \par Prospective clients:
2554 * External/Native Apps using Messaging Services.
2556 * \par Related functions:
2559 * \par Known issues/bugs:
2566 * MSG_HANDLE_T msgHandle = NULL;
2567 * MSG_ERROR_T err = MSG_SUCCESS;
2569 * MSG_LIST_S msg_list;
2573 * MSG_SEARCH_CONDITION_S searchCon;
2575 * searchCon.msgType = MSG_TYPE_SMS;
2576 * searchCon.folderId = MSG_INBOX_ID;
2577 * searchCon.pSearchVal = "keyString";
2578 * searchCon.pAddressVal = "01000000000";
2581 * err = msg_search_message(hMsgHandle, &searchCon, offset, limit, &msgList);
2583 * if( err != MSG_SUCCESS )
2585 * printf("err [%d]", err);
2591 /*================================================================================================*/
2592 int msg_search_message(MSG_HANDLE_T handle, const MSG_SEARCH_CONDITION_S *msg_search_conditions, int offset, int limit, MSG_LIST_S *msg_list);
2598 * Free the memory of msg_message_t, which is created by msg_new_message().
2601 * This API is used to release memory created by message creation.
2603 * \par Typical use case:
2604 * After using message object for send/save scenario, release message need to be called.
2606 * \par Method of function operation:
2607 * Frees the memory allocated to message object and deletes the object.
2609 * \par Sync (or) Async:
2610 * This is a Synchronous API.
2612 * \par Important notes:
2615 * \param msg_message_t input - message object to be destroyed .
2617 * \return Return Type (int(MSG_ERROR_T)) \n
2618 * - MSG_SUCCESS - Successfully connected to Messaging Service \n
2619 * - MSG_ERR_NULL_POINTER - Input parameter is NULL.
2621 * \par Prospective clients:
2622 * External/Native Apps using Messaging Services.
2624 * \par Related functions:
2627 * \par Known issues/bugs:
2634 * MSG_HANDLE_T msgHandle = NULL;
2635 * MSG_ERROR_T err = MSG_SUCCESS;
2636 * msg_message_t msg;
2640 * err = msg_open_msg_handle(&msgHandle);
2644 * msg = msg_new_message();
2646 * err = msg_release_message(&msg);
2648 * if (err != MSG_SUCCESS)
2650 * sprintf(str, "msg_release_message() Fail [%d]", err);
2653 * return err; // if success, return OPERATION_SUCCESS. Or if fail, return related error code.
2659 /*================================================================================================*/
2660 int msg_release_message_list(MSG_LIST_S *msg_list);
2666 * Get message ID list that application wants to find by reference ID.
2669 * This API is used to get message ID list from storage.
2671 * \par Typical use case:
2672 * Get message ID list from storage.
2674 * \par Method of function operation:
2675 * Get message ID list from storage.
2677 * \par Sync (or) Async:
2678 * This is a Synchronous API.
2680 * \par Important notes:
2683 * \param input - MSG_HANDLE_T handle is Message handle.
2684 * \param input - ref_id is the reference id of message group.
2685 * \param output - msg_msgid_list is a pointer to an MSG_MSGID_LIST_S structure.
2687 * \return Return Type int (MSG_ERROR_T) \n
2688 * - MSG_SUCCESS Success in operation.
2689 * - MSG_ERR_INVALID_PARAMETER Parameter is invalid.
2690 * - MSG_ERR_STORAGE_ERROR Storage is error.
2692 * \par Prospective clients:
2693 * External/Native Apps using Messaging Services.
2695 * \par Related functions:
2698 * \par Known issues/bugs:
2705 * MSG_HANDLE_T msgHandle = NULL;
2706 * MSG_ERROR_T err = MSG_SUCCESS;
2708 * MSG_REFERENCE_ID_T refId = 0;
2709 * MSG_MSGID_LIST_S msgIdList;
2711 * err = msg_get_msgid_list(hMsgHandle, refId, &msgIdList);
2713 * if( err != MSG_SUCCESS )
2715 * printf("err [%d]", err);
2721 /*================================================================================================*/
2722 int msg_get_msgid_list(MSG_HANDLE_T handle, MSG_REFERENCE_ID_T ref_id, MSG_MSGID_LIST_S *msg_msgid_list);
2728 * Frees the memory of MSG_MSGID_LIST_S allocated in msg_get_msgid_list.
2731 * This API is used to free the memory of MSG_MSGID_LIST_S allocated in msg_get_msgid_list.
2733 * \par Typical use case:
2734 * To free the memory of MSG_MSGID_LIST_S and its members which was allocated in msg_get_msgid_list.
2736 * \par Method of function operation:
2737 * To free the memory of MSG_MSGID_LIST_S and its members which was allocated in msg_get_msgid_list.
2739 * \par Sync (or) Async:
2740 * This is a Synchronous API.
2742 * \par Important notes:
2743 * - If MSG_MSGID_LIST_S is NULL, nothing happens.
2744 * - If MSG_MSGID_LIST_S is invalid, undefined behavior happens.
2746 * \param input - MSG_MSGID_LIST_S structure.
2748 * \return Return Type (void) \n
2750 * \par Prospective clients:
2751 * External/Native Apps using Messaging Services.
2753 * \par Related functions:
2756 * \par Known issues/bugs:
2763 * MSG_HANDLE_T msgHandle = NULL;
2764 * MSG_ERROR_T err = MSG_SUCCESS;
2766 * MSG_REFERENCE_ID_T refId = 0;
2767 * MSG_MSGID_LIST_S msgIdList;
2769 * err = msg_get_msgid_list(hMsgHandle, refId, &msgIdList);
2771 * if( err != MSG_SUCCESS )
2773 * printf("err [%d]", err);
2777 * msg_release_msgid_list(&msgIdList);
2781 /*================================================================================================*/
2782 void msg_release_msgid_list(MSG_MSGID_LIST_S *msg_msgid_list);
2788 * Get reject message list that application wants to find by phone number.
2791 * This API is used to get reject message list from storage.
2793 * \par Typical use case:
2794 * Get reject message list from storage.
2796 * \par Method of function operation:
2797 * Get reject message list from storage.
2799 * \par Sync (or) Async:
2800 * This is a Synchronous API.
2802 * \par Important notes:
2805 * \param input - MSG_HANDLE_T handle is Message handle.
2806 * \param input - phone_num is the string of phone number to find.
2807 * \param output - msg_reject_msg_list is a pointer to an MSG_REJECT_MSG_LIST_S structure.
2809 * \return Return Type int (MSG_ERROR_T) \n
2810 * - MSG_SUCCESS Success in operation.
2811 * - MSG_ERR_INVALID_PARAMETER Parameter is invalid.
2812 * - MSG_ERR_STORAGE_ERROR Storage is error.
2814 * \par Prospective clients:
2815 * External/Native Apps using Messaging Services.
2817 * \par Related functions:
2820 * \par Known issues/bugs:
2827 * MSG_HANDLE_T msgHandle = NULL;
2828 * MSG_ERROR_T err = MSG_SUCCESS;
2830 * char* phone_num = "01030016057";
2831 * MSG_REJECT_MSG_LIST_S rejectMsgList;
2833 * err = msg_get_reject_msg_list(hMsgHandle, phone_num, &rejectMsgList);
2835 * if( err != MSG_SUCCESS )
2837 * printf("err [%d]", err);
2843 /*================================================================================================*/
2844 int msg_get_reject_msg_list(MSG_HANDLE_T handle, const char* phone_num, MSG_REJECT_MSG_LIST_S *msg_reject_msg_list);
2850 * Frees the memory of MSG_REJECT_MSG_LIST_S allocated in msg_get_reject_msg_list.
2853 * This API is used to free the memory of MSG_REJECT_MSG_LIST_S allocated in msg_get_reject_msg_list.
2855 * \par Typical use case:
2856 * To free the memory of MSG_REJECT_MSG_LIST_S and its members which was allocated in msg_get_reject_msg_list.
2858 * \par Method of function operation:
2859 * To free the memory of MSG_REJECT_MSG_LIST_S and its members which was allocated in msg_get_reject_msg_list.
2861 * \par Sync (or) Async:
2862 * This is a Synchronous API.
2864 * \par Important notes:
2865 * - If MSG_REJECT_MSG_LIST_S is NULL, nothing happens.
2866 * - If MSG_REJECT_MSG_LIST_S is invalid, undefined behavior happens.
2868 * \param input - MSG_REJECT_MSG_LIST_S structure.
2870 * \return Return Type (void) \n
2872 * \par Prospective clients:
2873 * External/Native Apps using Messaging Services.
2875 * \par Related functions:
2878 * \par Known issues/bugs:
2885 * MSG_HANDLE_T msgHandle = NULL;
2886 * MSG_ERROR_T err = MSG_SUCCESS;
2888 * char* phone_num = "01030016057";
2889 * MSG_REJECT_MSG_LIST_S rejectMsgList;
2891 * err = msg_get_reject_msg_list(hMsgHandle, phone_num, &rejectMsgList);
2893 * if( err != MSG_SUCCESS )
2895 * printf("err [%d]", err);
2899 * msg_release_reject_msg_list(&rejectMsgList);
2903 /*================================================================================================*/
2904 void msg_release_reject_msg_list(MSG_REJECT_MSG_LIST_S *msg_reject_msg_list);
2910 * Registers a callback function about the change of storage status to Message handle.
2913 * This API is used to register a callback function about the change of storage status "msg_storage_change_cb" to Message handle.
2915 * \par Typical use case:
2916 * Register a callback function about the change of storage status.
2918 * \par Method of function operation:
2919 * Adds the msg_storage_change_cb API to a callback function list.
2921 * \par Sync (or) Async:
2922 * This is a Synchronous API.
2924 * \par Important notes:
2925 * This function MUST be called after Message handle is opened.
2927 * \param input - handle is Message handle.
2928 * \param input - cb is a function to be called.
2929 * \param input - user_param is a pointer to user data.
2931 * \return Return Type (int(MSG_ERROR_T)) \n
2932 * - MSG_SUCCESS Success in operation.
2933 * - MSG_ERR_MSGHANDLE_NOT_CONNECTED Message handle is not connected.
2934 * - MSG_ERR_MEMORY_ERROR Memory is error.
2936 * \par Prospective clients:
2937 * External/Native Apps using Messaging Services.
2939 * \par Related functions:
2942 * \par Known issues/bugs:
2949 * int err = MSG_SUCCESS;
2951 * err = msg_reg_storage_change_callback(msgHandle, &storageCB, NULL);
2952 * if (err != MSG_SUCCESS)
2959 * void storageCB(MSG_HANDLE_T handle, MSG_THREAD_ID_T threadId, MSG_MESSAGE_ID_T msgId, void *user_param)
2966 /*================================================================================================*/
2967 int msg_reg_storage_change_callback(MSG_HANDLE_T handle, msg_storage_change_cb cb, void *user_param);
2973 * Gets the report status information of message.
2976 * This API is used to get the report status information of specified message.
2978 * \par Typical use case:
2979 * Gets the report status information of specified message from the database.
2981 * \par Method of function operation:
2982 * Sets up the database connection and Gets the report status information of specified message from the report table.
2984 * \par Sync (or) Async:
2985 * This is a Synchronous API.
2987 * \par Important notes:
2990 * \param input - handle is Message handle.
2991 * \param input - msg_id is the ID of the message.
2992 * \param output - report_status is a pointer to a MSG_REPORT_STATUS_INFO_S structure.
2994 * \return Return Type (int(MSG_ERROR_T)) \n
2995 * - MSG_SUCCESS - Success in operation.
2996 * - MSG_ERR_INVALID_PARAMETER - Parameter is invalid.
2997 * - MSG_ERR_STORAGE_ERROR - Storage is error.
2999 * \par Prospective clients:
3000 * External/Native Apps using Messaging Services.
3002 * \par Related functions:
3005 * \par Known issues/bugs:
3012 * MSG_HANDLE_T msgHandle = NULL;
3013 * MSG_REPORT_STATUS_INFO_S reportStatus;
3017 * err = msg_open_msg_handle(&msgHandle);
3021 * err = msg_get_report_status(msgHandle, msgID, &reportStatus)
3022 * if( err != MSG_SUCCESS )
3024 * printf("err [%d]", err);
3031 /*================================================================================================*/
3032 int msg_get_report_status(MSG_HANDLE_T handle, MSG_MESSAGE_ID_T msg_id, MSG_REPORT_STATUS_INFO_S *report_status);
3042 #endif // MAPI_STORAGE_H