update tizen source
[framework/messaging/msg-service.git] / include / common / MsgPluginInterface.h
1 /*
2 *
3 * Copyright (c) 2000-2012 Samsung Electronics Co., Ltd. All Rights Reserved.
4 *
5 * This file is part of msg-service.
6 *
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>
13 *
14 * PROPRIETARY/CONFIDENTIAL
15 *
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.
21 *
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.
28 *
29 */
30
31  /**
32  *      @file           MsgPluginInterface.h
33  *      @brief          Defines plug-ins API of messaging framework
34  *      @version        1.0
35  */
36
37 #ifndef MSG_PLUGIN_INTERFACE_H
38 #define MSG_PLUGIN_INTERFACE_H
39
40 /**
41  *      @section                Introduction
42  *      - Introduction : Overview on Messaging Plug-in API
43  *      @section                Program
44  *      - Program : Messaging Plug-in API Reference
45  */
46
47 /*==================================================================================================
48                                          INCLUDE FILES
49 ==================================================================================================*/
50 #include "MsgTransportTypes.h"
51 #include "MsgStorageTypes.h"
52 #include "MsgSettingTypes.h"
53 #include "MsgInternalTypes.h"
54
55
56 #ifdef __cplusplus
57 extern "C"
58 {
59 #endif
60
61 /**
62  *      @ingroup        MESSAGING_FRAMEWORK
63  *      @defgroup       MESSAGING_PLUGIN_API    Messaging Plug-in API
64  *      @{
65  */
66
67 /*==================================================================================================
68                                          TYPE DEFINES
69 ==================================================================================================*/
70 typedef struct _MSG_PLUGIN_HANDLER_S MSG_PLUGIN_HANDLER_S;
71
72 typedef struct _MSG_PLUGIN_LISTENER_S MSG_PLUGIN_LISTENER_S;
73
74
75 /*==================================================================================================
76                                      FUNCTION PROTOTYPES
77 ==================================================================================================*/
78
79  /**
80
81  * \par Description:
82  * A Prototype of the function which will be called when the plug-in is loaded at Message Framework.
83  * ALL Plug-in SHOULD implement this function.
84  *
85  * \par Purpose:
86  * Create plug-in handle for Message Framework.
87  * Message Framework will able to reach plugin functions by handle.
88  *
89  * \par Typical use case:
90  * Create plug-in handle.
91  *
92  * \par Method of function operation:
93  * Set handle information by plug-in.
94  *
95  * \par Sync (or) Async:
96  * This is a Synchronous API.
97  *
98  * \par Important notes:
99  *      This function MUST be implement by plug-ins..
100  *
101  * \param input - handle is Message handle.
102  *
103  * \return Return Type (int(MSG_ERROR_T)) \n
104  * - MSG_SUCCESS                                        Success in operation.
105  * - MSG_ERR_NULL_POINTER               Plug-in handle is invalid.
106  *
107  * \par Prospective clients:
108  * Internal/Plug-ins.
109  *
110  * \par Related functions:
111  * None
112  *
113  * \par Known issues/bugs:
114  * None
115  *
116  */
117 /*================================================================================================*/
118 MSG_ERROR_T MsgPlgCreateHandle(MSG_PLUGIN_HANDLER_S *pPluginHandle);
119
120
121  /**
122
123  * \par Description:
124  * A Prototype of the function which will be called when the plug-in is finalized at Message Framework.
125  * ALL Plug-in SHOULD implement this function.
126  *
127  * \par Purpose:
128  * Destroy plug-in handle for Message Framework.
129  *
130  * \par Typical use case:
131  * Destroy plug-in handle.
132  *
133  * \par Method of function operation:
134  * Remove handle information by plug-in.
135  *
136  * \par Sync (or) Async:
137  * This is a Synchronous API.
138  *
139  * \par Important notes:
140  *      This function MUST be implement by plug-ins..
141  *
142  * \param input - handle is Message handle.
143  *
144  * \return Return Type (int(MSG_ERROR_T)) \n
145  * - MSG_SUCCESS                                        Success in operation.
146  * - MSG_ERR_NULL_POINTER               Plug-in handle is invalid.
147  *
148  * \par Prospective clients:
149  * Internal/Plug-ins.
150  *
151  * \par Related functions:
152  * None
153  *
154  * \par Known issues/bugs:
155  * None
156  *
157  */
158 /*================================================================================================*/
159 MSG_ERROR_T MsgPlgDestroyHandle(MSG_PLUGIN_HANDLER_S *pPluginHandle);
160
161
162
163
164 // Control API
165  /**
166
167  * \par Description:
168  * A Prototype of the function which will be called when the plug-in is loaded at Message Framework.
169  * ALL Plug-in SHOULD implement this function.
170  *
171  * \par Purpose:
172  * Initializing plug-in.
173  * Precede jobs must done in this function.
174  *
175  * \par Typical use case:
176  * Initializing plug-in.
177  *
178  * \par Method of function operation:
179  * Make up pre-works for plug-in.
180  *
181  * \par Sync (or) Async:
182  * This is a Synchronous API.
183  *
184  * \par Important notes:
185  *      This function MUST be implement by plug-ins..
186  *
187  * \return Return Type (int(MSG_ERROR_T)) \n
188  * - MSG_SUCCESS                                        Success in operation.
189  * - MSG_ERR_PLUGIN_REGEVENT    Plug-in's error during operations.
190  *
191  * \par Prospective clients:
192  * Internal/Plug-ins.
193  *
194  * \par Related functions:
195  * None
196  *
197  * \par Known issues/bugs:
198  * None
199  *
200  */
201 /*================================================================================================*/
202 typedef MSG_ERROR_T (*MsgPlgInitialize)();
203
204
205  /**
206
207  * \par Description:
208  * A Prototype of the function which will be called when the plug-in is loaded at Message Framework.
209  * ALL Plug-in SHOULD implement this function.
210  *
211  * \par Purpose:
212  * Create plug-in handle for Message Framework.
213  * Message Framework will able to reach plugin functions by handle.
214  *
215  * \par Typical use case:
216  * Create plug-in handle.
217  *
218  * \par Method of function operation:
219  * Set handle information by plug-in.
220  *
221  * \par Sync (or) Async:
222  * This is a Synchronous API.
223  *
224  * \par Important notes:
225  *      This function MUST be implement by plug-ins..
226  *
227  * \param input - handle is Message handle.
228  *
229  * \return Return Type (int(MSG_ERROR_T)) \n
230  * - MSG_SUCCESS                                        Success in operation.
231  * - MSG_ERR_NULL_POINTER               Plug-in handle is invalid.
232  *
233  * \par Prospective clients:
234  * Internal/Plug-ins.
235  *
236  * \par Related functions:
237  * None
238  *
239  * \par Known issues/bugs:
240  * None
241  *
242  */
243 /*================================================================================================*/
244 typedef MSG_ERROR_T (*MsgPlgFinalize)();
245
246
247  /**
248
249  * \par Description:
250  * A Prototype of the function which will be called when the plug-in is loaded at Message Framework.
251  * ALL Plug-in SHOULD implement this function.
252  *
253  * \par Purpose:
254  * Regist listeners to handle incomming messages..
255  * .
256  *
257  * \par Typical use case:
258  * Regist listeners.
259  *
260  * \par Method of function operation:
261  * Set listener informations in plug-in.
262  *
263  * \par Sync (or) Async:
264  * This is a Synchronous API.
265  *
266  * \par Important notes:
267  *      This function MUST be implement by plug-ins..
268  *
269  * \param input - listener is callback listeners.
270  *
271  * \return Return Type (int(MSG_ERROR_T)) \n
272  * - MSG_SUCCESS                                        Success in operation.
273  *
274  * \par Prospective clients:
275  * Internal/Plug-ins.
276  *
277  * \par Related functions:
278  * None
279  *
280  * \par Known issues/bugs:
281  * None
282  *
283  */
284 /*================================================================================================*/
285 typedef MSG_ERROR_T (*MsgPlgRegisterListener)(MSG_PLUGIN_LISTENER_S *pListener);
286
287
288  /**
289
290  * \par Description:
291  * A Prototype of the function which will be called when Message Framework has to check sim card status.
292  * SMS Plug-in SHOULD implement this function.
293  *
294  * \par Purpose:
295  * Checking sim card status  for Message Framework.
296  *
297  * \par Typical use case:
298  * To check sim card status.
299  *
300  * \par Method of function operation:
301  * Check SIM card status and return result of sim card is changed or not.
302  *
303  * \par Sync (or) Async:
304  * This is a Synchronous API.
305  *
306  * \par Important notes:
307  *      This function MUST be implement by plug-ins..
308  *
309  * \param output - bChanged is a boolean type value which shows sim card status.
310  *
311  * \return Return Type (int(MSG_ERROR_T)) \n
312  * - MSG_SUCCESS                                        Success in operation.
313  *
314  * \par Prospective clients:
315  * Internal/Plug-ins.
316  *
317  * \par Related functions:
318  * None
319  *
320  * \par Known issues/bugs:
321  * None
322  *
323  */
324 /*================================================================================================*/
325 typedef MSG_ERROR_T (*MsgPlgCheckSimStatus)(MSG_SIM_STATUS_T *pStatus);
326
327
328  /**
329
330  * \par Description:
331  * A Prototype of the function which will be called when Message Framework has to check device status.
332  * SMS Plug-in SHOULD implement this function.
333  *
334  * \par Purpose:
335  * Create plug-in handle for Message Framework.
336  * Message Framework will able to reach plugin functions by handle.
337  *
338  * \par Typical use case:
339  * Create plug-in handle.
340  *
341  * \par Method of function operation:
342  * Set handle information by plug-in.
343  *
344  * \par Sync (or) Async:
345  * This is a Synchronous API.
346  *
347  * \par Important notes:
348  *      This function MUST be implement by plug-ins..
349  *
350  * \param input - handle is Message handle.
351  *
352  * \return Return Type (int(MSG_ERROR_T)) \n
353  * - MSG_SUCCESS                                        Success in operation.
354  * - MSG_ERR_NULL_POINTER               Plug-in handle is invalid.
355  *
356  * \par Prospective clients:
357  * Internal/Plug-ins.
358  *
359  * \par Related functions:
360  * None
361  *
362  * \par Known issues/bugs:
363  * None
364  *
365  */
366 /*================================================================================================*/
367 typedef MSG_ERROR_T (*MsgPlgCheckDeviceStatus)();
368
369
370 // Transport API
371  /**
372
373  * \par Description:
374  * A Prototype of the function which will be called when Message Framework has to submit a message to send.
375  * ALL Plug-in SHOULD implement this function.
376  *
377  * \par Purpose:
378  * Send message..
379  *
380  * \par Typical use case:
381  * To send messages.
382  *
383  * \par Method of function operation:
384  * Convert message data to raw message data.
385  * Send raw message data to selected network.
386  *
387  * \par Sync (or) Async:
388  * This is a Synchronous API.
389  *
390  * \par Important notes:
391  *      This function MUST be implement by plug-ins.
392  *
393  * \param input - pReqInfo is message data to send.
394  * \param input - bReqCb shows callback is required.
395  *
396  * \return Return Type (int(MSG_ERROR_T)) \n
397  * - MSG_SUCCESS                                        Success in operation.
398  * - MSG_ERR_PLUGIN_TRANSPORT   Exception is occured in plug-in.
399  *
400  * \par Prospective clients:
401  * Internal/Plug-ins.
402  *
403  * \par Related functions:
404  * None
405  *
406  * \par Known issues/bugs:
407  * None
408  *
409  */
410 /*================================================================================================*/
411 typedef MSG_ERROR_T (*MsgPlgSubmitRequest)(MSG_REQUEST_INFO_S *pReqInfo, bool bReqCb);
412
413
414 // Storage API
415  /**
416
417  * \par Description:
418  * A Prototype of the function which will be called when Message Framework has to save a message to SIM card.
419  * SMS Plug-in SHOULD implement this function.
420  *
421  * \par Purpose:
422  * Save a message to SIM card.
423  *
424  * \par Typical use case:
425  * To save a message to SIM card..
426  *
427  * \par Method of function operation:
428  * Convert message data to raw message data.
429  * Save the raw message data to SIM card.
430  *
431  * \par Sync (or) Async:
432  * This is a Synchronous API.
433  *
434  * \par Important notes:
435  *      This function MUST be implement by plug-ins.
436  *
437  * \param input - pMsgInfo is the information of message.
438  * \param output - pSimIdList is the list of messages saved in SIM card.
439  *
440  * \return Return Type (int(MSG_ERROR_T)) \n
441  * - MSG_SUCCESS                                                Success in operation.
442  * - MSG_ERR_PLUGIN_SIM_MSG_FULL        SIM card's capacity for SMS message is full.
443  * - MSG_ERR_PLUGIN_STORAGE             Exception is occured in plug-in.
444  *
445  * \par Prospective clients:
446  * Internal/Plug-ins.
447  *
448  * \par Related functions:
449  * None
450  *
451  * \par Known issues/bugs:
452  * None
453  *
454  */
455 /*================================================================================================*/
456 typedef MSG_ERROR_T (*MsgPlgInitSimMessage)();
457
458
459 // Storage API
460  /**
461
462  * \par Description:
463  * A Prototype of the function which will be called when Message Framework has to save a message to SIM card.
464  * SMS Plug-in SHOULD implement this function.
465  *
466  * \par Purpose:
467  * Save a message to SIM card.
468  *
469  * \par Typical use case:
470  * To save a message to SIM card..
471  *
472  * \par Method of function operation:
473  * Convert message data to raw message data.
474  * Save the raw message data to SIM card.
475  *
476  * \par Sync (or) Async:
477  * This is a Synchronous API.
478  *
479  * \par Important notes:
480  *      This function MUST be implement by plug-ins.
481  *
482  * \param input - pMsgInfo is the information of message.
483  * \param output - pSimIdList is the list of messages saved in SIM card.
484  *
485  * \return Return Type (int(MSG_ERROR_T)) \n
486  * - MSG_SUCCESS                                                Success in operation.
487  * - MSG_ERR_PLUGIN_SIM_MSG_FULL        SIM card's capacity for SMS message is full.
488  * - MSG_ERR_PLUGIN_STORAGE             Exception is occured in plug-in.
489  *
490  * \par Prospective clients:
491  * Internal/Plug-ins.
492  *
493  * \par Related functions:
494  * None
495  *
496  * \par Known issues/bugs:
497  * None
498  *
499  */
500 /*================================================================================================*/
501 typedef MSG_ERROR_T (*MsgPlgSaveSimMessage)(const MSG_MESSAGE_INFO_S *pMsgInfo, SMS_SIM_ID_LIST_S *pSimIdList);
502
503
504  /**
505
506  * \par Description:
507  * A Prototype of the function which will be called when Message Framework has to delete a message in SIM card.
508  * SMS Plug-in SHOULD implement this function.
509  *
510  * \par Purpose:
511  * delete a message in SIM card.
512  *
513  * \par Typical use case:
514  * To save a message to SIM card..
515  *
516  * \par Method of function operation:
517  * delete a message data in SIM card which is indexed by ID.
518  *
519  * \par Sync (or) Async:
520  * This is a Synchronous API.
521  *
522  * \par Important notes:
523  *      This function MUST be implement by plug-ins.
524  *
525  * \param input - SimMsgId is the index of the message to delete.
526  *
527  * \return Return Type (int(MSG_ERROR_T)) \n
528  * - MSG_SUCCESS                                                Success in operation.
529  * - MSG_ERR_PLUGIN_STORAGE             Exception is occured in plug-in.
530  *
531  * \par Prospective clients:
532  * Internal/Plug-ins.
533  *
534  * \par Related functions:
535  * None
536  *
537  * \par Known issues/bugs:
538  * None
539  *
540  */
541 /*================================================================================================*/
542 typedef MSG_ERROR_T (*MsgPlgDeleteSimMessage)(MSG_SIM_ID_T SimMsgId);
543
544
545  /**
546
547  * \par Description:
548  * A Prototype of the function which will be called when Message Framework has to set read status of  message in SIM card.
549  * SMS Plug-in SHOULD implement this function.
550  *
551  * \par Purpose:
552  * Set read status of SIM cad message.
553  *
554  * \par Typical use case:
555  * To set read status of SIM card message.
556  *
557  * \par Method of function operation:
558  * Save the given read status to SIM card message.
559  *
560  * \par Sync (or) Async:
561  * This is a Synchronous API.
562  *
563  * \par Important notes:
564  *      This function MUST be implement by plug-ins.
565  *
566  * \param input - SimMsgId is the index of the message to set read status.
567  *
568  * \return Return Type (int(MSG_ERROR_T)) \n
569  * - MSG_SUCCESS                                                Success in operation.
570  * - MSG_ERR_PLUGIN_STORAGE             Exception is occured in plug-in.
571  *
572  * \par Prospective clients:
573  * Internal/Plug-ins.
574  *
575  * \par Related functions:
576  * None
577  *
578  * \par Known issues/bugs:
579  * None
580  *
581  */
582 /*================================================================================================*/
583 typedef MSG_ERROR_T (*MsgPlgSetReadStatus)(MSG_SIM_ID_T SimMsgId);
584
585
586  /**
587
588  * \par Description:
589  * A Prototype of the function which will be called when Message Framework has to set read status of  message in SIM card.
590  * SMS Plug-in SHOULD implement this function.
591  *
592  * \par Purpose:
593  * Set read status of SIM cad message.
594  *
595  * \par Typical use case:
596  * To set read status of SIM card message.
597  *
598  * \par Method of function operation:
599  * Save the given read status to SIM card message.
600  *
601  * \par Sync (or) Async:
602  * This is a Synchronous API.
603  *
604  * \par Important notes:
605  *      This function MUST be implement by plug-ins.
606  *
607  * \param input - SimMsgId is the index of the message to set read status.
608  *
609  * \return Return Type (int(MSG_ERROR_T)) \n
610  * - MSG_SUCCESS                                                Success in operation.
611  * - MSG_ERR_PLUGIN_STORAGE             Exception is occured in plug-in.
612  *
613  * \par Prospective clients:
614  * Internal/Plug-ins.
615  *
616  * \par Related functions:
617  * None
618  *
619  * \par Known issues/bugs:
620  * None
621  *
622  */
623 /*================================================================================================*/
624 typedef MSG_ERROR_T (*MsgPlgSetMemoryStatus)(MSG_ERROR_T Error);
625
626
627 // Setting API
628  /**
629
630  * \par Description:
631  * A Prototype of the function which will be called when Message Framework has to save configuration of network to SIM card.
632  * SMS Plug-in SHOULD implement this function.
633  *
634  * \par Purpose:
635  * Save configuration information to SIM card.
636  *
637  * \par Typical use case:
638  * To save configuration information to SIM card.
639  *
640  * \par Method of function operation:
641  * Convert information data to raw data.
642  * Save raw data to SIM card.
643  *
644  * \par Sync (or) Async:
645  * This is a Synchronous API.
646  *
647  * \par Important notes:
648  *      This function MUST be implement by plug-ins.
649  *
650  * \param input - pSetting is information of configuration.
651  *
652  * \return Return Type (int(MSG_ERROR_T)) \n
653  * - MSG_SUCCESS                                        Success in operation.
654  * - MSG_ERR_PLUGIN_SETTING             Exception is occured in plug-in.
655  *
656  * \par Prospective clients:
657  * Internal/Plug-ins.
658  *
659  * \par Related functions:
660  * None
661  *
662  * \par Known issues/bugs:
663  * None
664  *
665  */
666 /*================================================================================================*/
667 typedef MSG_ERROR_T (*MsgPlgInitConfigData)(MSG_SIM_STATUS_T SimStatus);
668
669
670 // Setting API
671  /**
672
673  * \par Description:
674  * A Prototype of the function which will be called when Message Framework has to save configuration of network to SIM card.
675  * SMS Plug-in SHOULD implement this function.
676  *
677  * \par Purpose:
678  * Save configuration information to SIM card.
679  *
680  * \par Typical use case:
681  * To save configuration information to SIM card.
682  *
683  * \par Method of function operation:
684  * Convert information data to raw data.
685  * Save raw data to SIM card.
686  *
687  * \par Sync (or) Async:
688  * This is a Synchronous API.
689  *
690  * \par Important notes:
691  *      This function MUST be implement by plug-ins.
692  *
693  * \param input - pSetting is information of configuration.
694  *
695  * \return Return Type (int(MSG_ERROR_T)) \n
696  * - MSG_SUCCESS                                        Success in operation.
697  * - MSG_ERR_PLUGIN_SETTING             Exception is occured in plug-in.
698  *
699  * \par Prospective clients:
700  * Internal/Plug-ins.
701  *
702  * \par Related functions:
703  * None
704  *
705  * \par Known issues/bugs:
706  * None
707  *
708  */
709 /*================================================================================================*/
710 typedef MSG_ERROR_T (*MsgPlgSetConfigData)(const MSG_SETTING_S *pSetting);
711
712
713  /**
714
715  * \par Description:
716  * A Prototype of the function which will be called when Message Framework has to get configuration of network from SIM card.
717  * SMS Plug-in SHOULD implement this function.
718  *
719  * \par Purpose:
720  * Get configuration information from SIM card.
721  *
722  * \par Typical use case:
723  * To get configuration information from SIM card.
724  *
725  * \par Method of function operation:
726  * Convert raw data to information data.
727  * Get configuration data from SIM card.
728  *
729  * \par Sync (or) Async:
730  * This is a Synchronous API.
731  *
732  * \par Important notes:
733  *      This function MUST be implement by plug-ins.
734  *
735  * \param input - pSetting is information of configuration.
736  *
737  * \return Return Type (int(MSG_ERROR_T)) \n
738  * - MSG_SUCCESS                                        Success in operation.
739  * - MSG_ERR_PLUGIN_SETTING             Exception is occured in plug-in.
740  *
741  * \par Prospective clients:
742  * Internal/Plug-ins.
743  *
744  * \par Related functions:
745  * None
746  *
747  * \par Known issues/bugs:
748  * None
749  *
750  */
751 /*================================================================================================*/
752 typedef MSG_ERROR_T (*MsgPlgGetConfigData)(MSG_SETTING_S *pSetting);
753
754 // MMS API
755 /**
756
757 * \par Description:
758 * A Prototype of the function which will be called when Message Framework has to store MMS message.
759 * MMS Plug-in SHOULD implement this function.
760 *
761 * \par Purpose:
762 * Save MMS message to plug-in defined DB.
763 *
764 * \par Typical use case:
765 * To save MMS message to plug-in defined DB.
766 *
767 * \par Method of function operation:
768 * Convert MMS Message data to cetain format for plug-in.
769 * Save the certain format MMS message information to DB.
770 *
771 * \par Sync (or) Async:
772 * This is a Synchronous API.
773 *
774 * \par Important notes:
775 *  This function MUST be implement by plug-ins.
776 *
777 * \param input - pMsgInfo is information of MMS message.
778 * \param input - pSendOptInfo is information of sending option.
779 * \param output - pFileData is the file path of saved MMS message.
780 *
781 * \return Return Type (int(MSG_ERROR_T)) \n
782 * - MSG_SUCCESS                                   Success in operation.
783 * - MSG_ERR_PLUGIN_TRANSPORT   Exception is occured in plug-in.
784 *
785 * \par Prospective clients:
786 * Internal/Plug-ins.
787 *
788 * \par Related functions:
789 * None
790 *
791 * \par Known issues/bugs:
792 * None
793 *
794 */
795 /*================================================================================================*/
796 typedef MSG_ERROR_T (*MsgPlgAddMessage)(MSG_MESSAGE_INFO_S *pMsgInfo,  MSG_SENDINGOPT_INFO_S* pSendOptInfo, char* pFileData);
797
798
799 /**
800
801 * \par Description:
802 * A Prototype of the function which will be called when Message Framework has to process received MMS message indicator.
803 * MMS Plug-in SHOULD implement this function.
804 *
805 * \par Purpose:
806 * Process MMS message indicator.
807 *
808 * \par Typical use case:
809 * To process MMS message indicator.
810 *
811 * \par Method of function operation:
812 * Procces MMS Message indicator in options.
813 *
814 * \par Sync (or) Async:
815 * This is a Synchronous API.
816 *
817 * \par Important notes:
818 *  This function MUST be implement by plug-ins.
819 *
820 * \param input - pMsgInfo is information of MMS message.
821 * \param input - pRequest is information of request options.
822 * \param output - bRejects shows the reject status.
823 *
824 * \return Return Type (int(MSG_ERROR_T)) \n
825 * - MSG_SUCCESS                                   Success in operation.
826 * - MSG_ERR_PLUGIN_TRANSPORT   Exception is occured in plug-in.
827 *
828 * \par Prospective clients:
829 * Internal/Plug-ins.
830 *
831 * \par Related functions:
832 * None
833 *
834 * \par Known issues/bugs:
835 * None
836 *
837 */
838 /*================================================================================================*/
839 typedef MSG_ERROR_T (*MsgPlgProcessReceivedInd)(MSG_MESSAGE_INFO_S *pMsgInfo, MSG_REQUEST_INFO_S* pRequest, bool* bReject);
840
841
842 /**
843
844 * \par Description:
845 * A Prototype of the function which will be called when Message Framework has to update MMS message.
846 * MMS Plug-in SHOULD implement this function.
847 *
848 * \par Purpose:
849 * Update MMS message to plug-in defined DB.
850 *
851 * \par Typical use case:
852 * To update MMS message to plug-in defined DB.
853 *
854 * \par Method of function operation:
855 * Convert MMS Message data to cetain format for plug-in.
856 * Update the certain format MMS message information to DB.
857 *
858 * \par Sync (or) Async:
859 * This is a Synchronous API.
860 *
861 * \par Important notes:
862 *  This function MUST be implement by plug-ins.
863 *
864 * \param input - pMsgInfo is information of MMS message.
865 * \param input - pSendOptInfo is information of sending option.
866 * \param output - pFileData is the file path of saved MMS message.
867 *
868 * \return Return Type (int(MSG_ERROR_T)) \n
869 * - MSG_SUCCESS                                   Success in operation.
870 * - MSG_ERR_PLUGIN_TRANSPORT   Exception is occured in plug-in.
871 *
872 * \par Prospective clients:
873 * Internal/Plug-ins.
874 *
875 * \par Related functions:
876 * None
877 *
878 * \par Known issues/bugs:
879 * None
880 *
881 */
882 /*================================================================================================*/
883 typedef MSG_ERROR_T (*MsgPlgUpdateMessage)(MSG_MESSAGE_INFO_S *pMsgInfo, MSG_SENDINGOPT_INFO_S* pSendOptInfo, char* pFileData);
884
885
886 /**
887
888 * \par Description:
889 * A Prototype of the function which will be called when Message Framework has to get MMS message.
890 * MMS Plug-in SHOULD implement this function.
891 *
892 * \par Purpose:
893 * Get MMS message.
894 *
895 * \par Typical use case:
896 * To get MMS message.
897 *
898 * \par Method of function operation:
899 * Get MMS Message from certian plug-in defined DB.
900 *
901 * \par Sync (or) Async:
902 * This is a Synchronous API.
903 *
904 * \par Important notes:
905 *  This function MUST be implement by plug-ins.
906 *
907 * \param output - pMsg is information of MMS message.
908 * \param output - pSendOptInfo is information of sending options.
909 * \param output - pMmsMsg is information of MMS messages detail data.
910 * \param output - pDestMsg is file path of MMS message.
911 *
912 * \return Return Type (int(MSG_ERROR_T)) \n
913 * - MSG_SUCCESS                                   Success in operation.
914 * - MSG_ERR_PLUGIN_TRANSPORT   Exception is occured in plug-in.
915 *
916 * \par Prospective clients:
917 * Internal/Plug-ins.
918 *
919 * \par Related functions:
920 * None
921 *
922 * \par Known issues/bugs:
923 * None
924 *
925 */
926 /*================================================================================================*/
927 typedef MSG_ERROR_T (*MsgPlgGetMmsMessage)(MSG_MESSAGE_INFO_S* pMsg,    MSG_SENDINGOPT_INFO_S* pSendOptInfo, MMS_MESSAGE_DATA_S* pMmsMsg, char** pDestMsg);
928
929
930 /**
931
932 * \par Description:
933 * A Prototype of the function which will be called when Message Framework has to update reject status of MMS message.
934 * MMS Plug-in SHOULD implement this function.
935 *
936 * \par Purpose:
937 * Update reject status of MMS message.
938 *
939 * \par Typical use case:
940 * To update reject status of MMS message.
941 *
942 * \par Method of function operation:
943 * Update reject status of MMS Message from certian plug-in defined DB.
944 *
945 * \par Sync (or) Async:
946 * This is a Synchronous API.
947 *
948 * \par Important notes:
949 *  This function MUST be implement by plug-ins.
950 *
951 * \param input - pMsgInfo is information of MMS message.
952 *
953 * \return Return Type (int(MSG_ERROR_T)) \n
954 * - MSG_SUCCESS                                   Success in operation.
955 * - MSG_ERR_PLUGIN_TRANSPORT   Exception is occured in plug-in.
956 *
957 * \par Prospective clients:
958 * Internal/Plug-ins.
959 *
960 * \par Related functions:
961 * None
962 *
963 * \par Known issues/bugs:
964 * None
965 *
966 */
967 /*================================================================================================*/
968 typedef MSG_ERROR_T (*MsgPlgUpdateRejectStatus)(MSG_MESSAGE_INFO_S *pMsgInfo);
969
970
971 /**
972
973 * \par Description:
974 * A Prototype of the function which will be called when Message Framework has to compose read report for MMS message.
975 * MMS Plug-in SHOULD implement this function.
976 *
977 * \par Purpose:
978 * Compose read report for MMS message.
979 *
980 * \par Typical use case:
981 * To compose read report for MMS message.
982 *
983 * \par Method of function operation:
984 * Compose read report for MMS message.
985 * Send read report.
986 *
987 * \par Sync (or) Async:
988 * This is a Synchronous API.
989 *
990 * \par Important notes:
991 *  This function MUST be implement by plug-ins.
992 *
993 * \param input - pMsgInfo is information of MMS message.
994 *
995 * \return Return Type (int(MSG_ERROR_T)) \n
996 * - MSG_SUCCESS                                   Success in operation.
997 * - MSG_ERR_PLUGIN_TRANSPORT   Exception is occured in plug-in.
998 *
999 * \par Prospective clients:
1000 * Internal/Plug-ins.
1001 *
1002 * \par Related functions:
1003 * None
1004 *
1005 * \par Known issues/bugs:
1006 * None
1007 *
1008 */
1009 /*================================================================================================*/
1010 typedef MSG_ERROR_T (*MsgPlgComposeReadReport)(MSG_MESSAGE_INFO_S *pMsgInfo);
1011
1012  /**
1013
1014  * \par Description:
1015  * A Prototype of the function which will be called when Message Framework has to compose read report for MMS message.
1016  * MMS Plug-in SHOULD implement this function.
1017  *
1018  * \par Purpose:
1019  * Compose read report for MMS message.
1020  *
1021  * \par Typical use case:
1022  * To compose read report for MMS message.
1023  *
1024  * \par Method of function operation:
1025  * Compose read report for MMS message.
1026  * Send read report.
1027  *
1028  * \par Sync (or) Async:
1029  * This is a Synchronous API.
1030  *
1031  * \par Important notes:
1032  *      This function MUST be implement by plug-ins.
1033  *
1034  * \param input - pMsgInfo is information of MMS message.
1035  *
1036  * \return Return Type (int(MSG_ERROR_T)) \n
1037  * - MSG_SUCCESS                                        Success in operation.
1038  * - MSG_ERR_PLUGIN_TRANSPORT   Exception is occured in plug-in.
1039  *
1040  * \par Prospective clients:
1041  * Internal/Plug-ins.
1042  *
1043  * \par Related functions:
1044  * None
1045  *
1046  * \par Known issues/bugs:
1047  * None
1048  *
1049  */
1050 /*================================================================================================*/
1051 typedef MSG_ERROR_T (*MsgPlgRestoreMsg)(MSG_MESSAGE_INFO_S *pMsg, char* pRcvdBody, int rcvdBodyLen, char* filePath);
1052
1053
1054 // framework defined callbacks.
1055 typedef void (*MsgPlgOnSentStatus)(MSG_SENT_STATUS_S *pSentStatus);
1056 typedef void (*MsgPlgOnStorageChange)(MSG_STORAGE_CHANGE_TYPE_T storageChangeType, MSG_MESSAGE_INFO_S *pMsgInfo);
1057 typedef MSG_ERROR_T (*MsgPlgOnMsgIncoming)(MSG_MESSAGE_INFO_S *pMsgInfo);
1058 typedef MSG_ERROR_T (*MsgPlgOnInitSimBySat)(void);
1059 typedef MSG_ERROR_T (*MsgPlgOnSyncMLMsgIncoming)(MSG_SYNCML_MESSAGE_DATA_S *pSyncMLData);
1060 typedef MSG_ERROR_T (*MsgPlgOnLBSMsgIncoming)(MSG_LBS_MESSAGE_DATA_S *pLBSData);
1061 typedef MSG_ERROR_T (*MsgPlgOnMmsConfIncoming)(MSG_MESSAGE_INFO_S *pMsgInfo, MSG_REQUEST_ID_T *pRequest);
1062
1063
1064 /*==================================================================================================
1065                                          STRUCTURES
1066 ==================================================================================================*/
1067 struct _MSG_PLUGIN_LISTENER_S
1068 {
1069         MsgPlgOnSentStatus                      pfSentStatusCb;                 /** The function pointer of sent status callback. */
1070         MsgPlgOnStorageChange           pfStorageChangeCb;              /** The function pointer of storage change callback. */
1071         MsgPlgOnMsgIncoming                     pfMsgIncomingCb;                        /** The function pointer of receive message callback. */
1072         MsgPlgOnInitSimBySat                    pfInitSimBySatCb;                       /** The function pointer of init SIM callback. */
1073         MsgPlgOnSyncMLMsgIncoming       pfSyncMLMsgIncomingCb;  /** The function pointer of receive syncML message callback. */
1074         MsgPlgOnLBSMsgIncoming          pfLBSMsgIncomingCb;             /** The function pointer of receive LBS message callback. */
1075         MsgPlgOnMmsConfIncoming         pfMmsConfIncomingCb;    /** The function pointer of receive MMS conf */
1076 };
1077
1078
1079 struct _MSG_PLUGIN_HANDLER_S
1080 {
1081         MsgPlgInitialize                                pfInitialize;                           /**< The function pointer of initialize. */
1082         MsgPlgFinalize                                  pfFinalize;                             /**< The function pointer of finalize. */
1083         MsgPlgRegisterListener                  pfRegisterListener;                     /**< The function pointer of register listener. */
1084         MsgPlgCheckSimStatus                    pfCheckSimStatus;               /**< The function pointer of check SIM status. */
1085         MsgPlgCheckDeviceStatus         pfCheckDeviceStatus;            /**< The function pointer of check device status. */
1086         MsgPlgSubmitRequest                     pfSubmitRequest;                /**< The function pointer of submit request. */
1087         MsgPlgInitSimMessage                    pfInitSimMessage;                       /**< The function pointer of initialize SIM msg. */
1088         MsgPlgSaveSimMessage                    pfSaveSimMessage;               /**< The function pointer of save SIM msg. */
1089         MsgPlgDeleteSimMessage          pfDeleteSimMessage;             /**< The function pointer of delete SIM msg. */
1090         MsgPlgSetReadStatus                     pfSetReadStatus;                        /**< The function pointer of set read status. */
1091         MsgPlgSetMemoryStatus           pfSetMemoryStatus;              /**< The function pointer of set memory status. */
1092         MsgPlgInitConfigData                    pfInitConfigData;                       /**< The function pointer of initialize of setting. */
1093         MsgPlgSetConfigData                     pfSetConfigData;                        /**< The function pointer of save setting. */
1094         MsgPlgGetConfigData                     pfGetConfigData;                        /**< The function pointer of get setting. */
1095         MsgPlgRestoreMsg                                pfRestoreMsg;
1096         MsgPlgAddMessage                                pfAddMessage;                   /**< The function pointer of  add Message. */
1097         MsgPlgProcessReceivedInd                pfProcessReceivedInd;   /**< The function pointer of  Process Notification Ind. */
1098         MsgPlgUpdateMessage                     pfUpdateMessage;                /**< The function pointer of Update MMS Message */
1099         MsgPlgGetMmsMessage                     pfGetMmsMessage;
1100         MsgPlgUpdateRejectStatus                pfUpdateRejectStatus;
1101         MsgPlgComposeReadReport                 pfComposeReadReport;
1102 };
1103
1104 #ifdef __cplusplus
1105 }
1106 #endif
1107
1108 #endif