Modify flora license version.
[platform/core/messaging/msg-service.git] / plugin / sms_plugin / include / SmsPluginCbMsgHandler.h
1 /*
2 * Copyright 2012-2013  Samsung Electronics Co., Ltd
3 *
4 * Licensed under the Flora License, Version 1.1 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *    http://floralicense.org/license/
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 #ifndef SMS_PLUGIN_CBMSG_HANDLER_H
18 #define SMS_PLUGIN_CBMSG_HANDLER_H
19
20
21 /*==================================================================================================
22                                          INCLUDE FILES
23 ==================================================================================================*/
24 #include <map>
25 #include <vector>
26
27 using namespace std;
28
29 #include "MsgTextConvert.h"
30 #include "SmsPluginTypes.h"
31
32 extern "C"
33 {
34         #include <tapi_common.h>
35         #include <TelSms.h>
36         #include <ITapiNetText.h>
37 }
38
39
40 /*==================================================================================================
41                                          VARIABLES
42 ==================================================================================================*/
43 typedef map<unsigned char, string> cbPageMap;
44
45
46 typedef struct _CB_PAGE_INFO_S
47 {
48         unsigned char           geoScope;
49         unsigned char           updateNum;
50         unsigned short          msgCode;
51         unsigned short          msgId;
52         unsigned char           totalPages;
53
54         unsigned char           pageCnt;
55         unsigned int            totalSize;
56         cbPageMap               data;
57 } CB_PAGE_INFO_S;
58
59
60 /*==================================================================================================
61                                      CLASS DEFINITIONS
62 ==================================================================================================*/
63 class SmsPluginCbMsgHandler
64 {
65 public:
66         static SmsPluginCbMsgHandler* instance();
67
68         void handleCbMsg(TelSmsCbMsg_t *pCbMsg);
69         void handleEtwsMsg(TelSmsEtwsMsg_t *pEtwsMsg);
70
71 private:
72         SmsPluginCbMsgHandler();
73         virtual ~SmsPluginCbMsgHandler();
74
75         static SmsPluginCbMsgHandler* pInstance;
76
77         void Decode2gCbMsg(TelSmsCbMsg_t *pCbMsg, SMS_CBMSG_PAGE_S *pCbPage);
78         void Decode3gCbMsg(TelSmsCbMsg_t *pCbMsg, SMS_CBMSG_PAGE_S *pCbPage);
79         void DecodeEtwsMsg(TelSmsEtwsMsg_t *pEtwsMsg, SMS_ETWS_PRIMARY_S *pEtwsPn);
80         unsigned short encodeCbSerialNum ( SMS_CBMSG_SERIAL_NUM_S snFields );
81
82         bool checkCbOpt(SMS_CBMSG_PAGE_S CbPage, bool *pJavaMsg);
83         unsigned char checkCbPage(SMS_CBMSG_PAGE_S CbPage);
84         void MakeCbMsg(SMS_CBMSG_PAGE_S CbPage, SMS_CBMSG_S *pCbMsg);
85         void convertCbMsgToMsginfo(SMS_CBMSG_S *pCbMsg, MSG_MESSAGE_INFO_S *pMsgInfo);
86         void convertEtwsMsgToMsginfo(SMS_CBMSG_PAGE_S EtwsMsg, MSG_MESSAGE_INFO_S *pMsgInfo);
87         int convertTextToUtf8 (unsigned char* outBuf, int outBufSize, SMS_CBMSG_S* pCbMsg);
88         void addToPageLiat(SMS_CBMSG_PAGE_S CbPage);
89         void removeFromPageList(SMS_CBMSG_PAGE_S CbPage);
90
91         void decodeCbMsgDCS(unsigned char dcsData, const unsigned char *pMsgData, SMS_CBMSG_DCS_S* pDcs);
92         void convertLangType(SMS_CBMSG_LANG_TYPE_T InType , MSG_CB_LANGUAGE_TYPE_T *pOutType);
93         unsigned long getRecvTime();
94         void getDisplayName(unsigned short      MsgId, char *pDisplayName);
95
96         vector<CB_PAGE_INFO_S> pageList;
97
98         MsgTextConvert textCvt;
99 };
100
101 #endif //SMS_PLUGIN_CBMSG_HANDLER_H
102