2 * Copyright 2012-2013 Samsung Electronics Co., Ltd
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
8 * http://floralicense.org/license/
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.
17 #ifndef SMS_PLUGIN_CBMSG_HANDLER_H
18 #define SMS_PLUGIN_CBMSG_HANDLER_H
21 /*==================================================================================================
23 ==================================================================================================*/
29 #include "MsgTextConvert.h"
30 #include "SmsPluginTypes.h"
34 #include <tapi_common.h>
36 #include <ITapiNetText.h>
40 /*==================================================================================================
42 ==================================================================================================*/
43 typedef map<unsigned char, string> cbPageMap;
46 typedef struct _CB_PAGE_INFO_S
48 unsigned char geoScope;
49 unsigned char updateNum;
50 unsigned short msgCode;
52 unsigned char totalPages;
54 unsigned char pageCnt;
55 unsigned int totalSize;
60 /*==================================================================================================
62 ==================================================================================================*/
63 class SmsPluginCbMsgHandler
66 static SmsPluginCbMsgHandler* instance();
68 void handleCbMsg(TelSmsCbMsg_t *pCbMsg);
69 void handleEtwsMsg(TelSmsEtwsMsg_t *pEtwsMsg);
72 SmsPluginCbMsgHandler();
73 virtual ~SmsPluginCbMsgHandler();
75 static SmsPluginCbMsgHandler* pInstance;
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 );
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);
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);
96 vector<CB_PAGE_INFO_S> pageList;
98 MsgTextConvert textCvt;
101 #endif //SMS_PLUGIN_CBMSG_HANDLER_H