Fix issue : fail to make thumbnail
[platform/core/messaging/msg-service.git] / include / proxy / MsgHandle.h
1 /*
2  * Copyright (c) 2014 Samsung Electronics Co., Ltd. All rights reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (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://www.apache.org/licenses/LICENSE-2.0
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 MSG_HANDLE_H
18 #define MSG_HANDLE_H
19
20 #ifndef __cplusplus
21 #error "This is a C++ header file; it requires C++ to compile."
22 #endif
23
24 /*==================================================================================================
25                                          INCLUDE FILES
26 ==================================================================================================*/
27 #include "MsgStorageTypes.h"
28 #include "MsgTransportTypes.h"
29 #include "MsgFilterTypes.h"
30 #include "MsgSettingTypes.h"
31 #include "MsgCmdTypes.h"
32 #include "MsgInternalTypes.h"
33 #include "MsgIpcSocket.h"
34 #include "MsgMutex.h"
35
36 /*==================================================================================================
37                                      CLASS DEFINITIONS
38 ==================================================================================================*/
39
40 class MsgHandle
41 {
42         public:
43                 MsgHandle();
44                 virtual ~MsgHandle();
45
46                 /* Control */
47                 void openHandle();
48                 void closeHandle(MsgHandle* pHandle);
49
50                 /* Transport */
51                 msg_error_t submitReq(MSG_REQUEST_S* pReq);
52
53                 msg_error_t regSentStatusCallback(msg_sent_status_cb onStatusChanged,  void *pUserParam);
54                 msg_error_t regSmsMessageCallback(msg_sms_incoming_cb onMsgIncoming, unsigned short port, void *pUserParam);
55                 msg_error_t regMmsConfMessageCallback(msg_mms_conf_msg_incoming_cb onMMSConfMsgIncoming, const char *pAppId, void *pUserParam);
56                 msg_error_t regSyncMLMessageCallback(msg_syncml_msg_incoming_cb onSyncMLMsgIncoming, void *pUserParam);
57                 msg_error_t regLBSMessageCallback(msg_lbs_msg_incoming_cb onLBSMsgIncoming, void *pUserParam);
58                 msg_error_t regPushMessageCallback(msg_push_msg_incoming_cb onPushMsgIncoming, const char *pAppId, void *pUserParam);
59                 msg_error_t regCBMessageCallback(msg_cb_incoming_cb onCBIncoming, bool bSave, void *pUserParam);
60                 msg_error_t regSyncMLMessageOperationCallback(msg_syncml_msg_operation_cb onSyncMLMsgOperation, void *pUserParam);
61                 msg_error_t regReportMessageCallback(msg_report_msg_incoming_cb onReportMsgCB, void *pUserParam);
62
63                 msg_error_t operateSyncMLMessage(msg_message_id_t msgId);
64
65                 /* Storage */
66                 int addMessage(MSG_MESSAGE_HIDDEN_S *pMsg, const MSG_SENDINGOPT_S *pSendOpt);
67                 msg_error_t addSyncMLMessage(const MSG_SYNCML_MESSAGE_S *pSyncMLMsg);
68                 msg_error_t updateMessage(const MSG_MESSAGE_HIDDEN_S *pMsg, const MSG_SENDINGOPT_S *pSendOpt);
69                 msg_error_t updateReadStatus(msg_message_id_t MsgId, bool bRead);
70                 msg_error_t setConversationToRead(msg_thread_id_t ThreadId);
71                 msg_error_t updateProtectedStatus(msg_message_id_t MsgId, bool bProtected);
72                 msg_error_t deleteMessage(msg_message_id_t MsgId);
73                 msg_error_t deleteAllMessagesInFolder(msg_folder_id_t FolderId, bool bOnlyDB);
74                 msg_error_t deleteMessagesByList(msg_id_list_s *pMsgIdList);
75                 msg_error_t moveMessageToFolder(msg_message_id_t MsgId, msg_folder_id_t DestFolderId);
76                 msg_error_t moveMessageToStorage(msg_message_id_t MsgId, msg_storage_id_t DestStorageId);
77                 msg_error_t countMessage(msg_folder_id_t FolderId, MSG_COUNT_INFO_S *pCountInfo);
78                 msg_error_t countMsgByType(const MSG_MESSAGE_TYPE_S *pMsgType, int *pMsgCount);
79                 msg_error_t countMsgByContact(const MSG_THREAD_LIST_INDEX_INFO_S *pAddrInfo, MSG_THREAD_COUNT_INFO_S *pMsgThreadCountList);
80                 msg_error_t getMessage(msg_message_id_t MsgId, MSG_MESSAGE_HIDDEN_S *pMsg, MSG_SENDINGOPT_S *pSendOpt);
81                 msg_error_t getConversationViewItem(msg_message_id_t MsgId, MSG_CONVERSATION_VIEW_S *pConv);
82                 msg_error_t addFolder(const MSG_FOLDER_INFO_S *pFolderInfo);
83                 msg_error_t updateFolder(const MSG_FOLDER_INFO_S *pFolderInfo);
84                 msg_error_t deleteFolder(msg_folder_id_t FolderId);
85                 msg_error_t getFolderList(msg_struct_list_s *pFolderList);
86
87                 msg_error_t getThreadViewList(const MSG_SORT_RULE_S *pSortRule, msg_struct_list_s *pThreadViewList);
88                 msg_error_t getConversationViewList(msg_thread_id_t ThreadId, msg_struct_list_s *pConvViewList);
89                 msg_error_t deleteThreadMessageList(msg_thread_id_t thread_id, bool include_protected_msg);
90                 msg_error_t getQuickPanelData(msg_quickpanel_type_t Type, MSG_MESSAGE_HIDDEN_S *pMsg);
91                 msg_error_t resetDatabase();
92                 msg_error_t getMemSize(unsigned int* memsize);
93
94                 msg_error_t getAddressList(const msg_thread_id_t threadId, msg_struct_list_s *pAddrList);
95
96                 /* Filter */
97                 msg_error_t addFilter(const MSG_FILTER_S *pFilter);
98                 msg_error_t updateFilter(const MSG_FILTER_S *pFilter);
99                 msg_error_t deleteFilter(msg_filter_id_t FilterId);
100                 msg_error_t getFilterList(msg_struct_list_s *pFilterList);
101                 msg_error_t setFilterOperation(bool bSetFlag);
102                 msg_error_t getFilterOperation(bool *pSetFlag);
103                 msg_error_t setFilterActivation(msg_filter_id_t filter_id, bool active);
104
105                 /*setting */
106                 msg_error_t getSMSCOption(msg_struct_t msg_struct);
107                 msg_error_t setSMSCOption(msg_struct_t msg_struct);
108                 msg_error_t getCBOption(msg_struct_t msg_struct);
109                 msg_error_t setCBOption(msg_struct_t msg_struct);
110                 msg_error_t getSmsSendOpt(msg_struct_t msg_struct);
111                 msg_error_t setSmsSendOpt(msg_struct_t msg_struct);
112                 msg_error_t getMmsSendOpt(msg_struct_t msg_struct);
113                 msg_error_t setMmsSendOpt(msg_struct_t msg_struct);
114                 msg_error_t getMmsRecvOpt(msg_struct_t msg_struct);
115                 msg_error_t setMmsRecvOpt(msg_struct_t msg_struct);
116                 msg_error_t getPushMsgOpt(msg_struct_t msg_struct);
117                 msg_error_t setPushMsgOpt(msg_struct_t msg_struct);
118                 msg_error_t getVoiceMsgOpt(msg_struct_t msg_struct);
119                 msg_error_t setVoiceMsgOpt(msg_struct_t msg_struct);
120                 msg_error_t getGeneralOpt(msg_struct_t msg_struct);
121                 msg_error_t setGeneralOpt(msg_struct_t msg_struct);
122                 msg_error_t getMsgSizeOpt(msg_struct_t msg_struct);
123                 msg_error_t setMsgSizeOpt(msg_struct_t msg_struct);
124
125                 /*Backup & Restore */
126                 msg_error_t backupMessage(msg_message_backup_type_t type, const char *backup_filepath);
127                 msg_error_t restoreMessage(const char *backup_filepath);
128                 msg_error_t getVobject(msg_message_id_t MsgId, void** encodedData);
129                 /* ETC */
130                 msg_error_t searchMessage(const char *pSearchString, msg_struct_list_s *pThreadViewList);
131
132
133                 msg_error_t dbSelectWithQuery(const char *query, char ***db_res, int *row_count, int *col_count);
134                 void dbFree(char **db_res);
135
136                 msg_error_t getRejectMsgList(const char *pNumber, msg_struct_list_s *pRejectMsgList);
137                 msg_error_t regStorageChangeCallback(msg_storage_change_cb onStorageChange, void *pUserParam);
138                 msg_error_t getReportStatus(msg_message_id_t msg_id, msg_struct_list_s *report_list);
139                 msg_error_t getThreadIdByAddress(msg_struct_list_s *pAddrList, msg_thread_id_t *pThreadId);
140                 msg_error_t getThreadIdByAddress(msg_list_handle_t msg_address_list, msg_thread_id_t *pThreadId);
141                 msg_error_t getThread(msg_thread_id_t threadId, MSG_THREAD_VIEW_S* pThreadInfo);
142                 msg_error_t getMessageList(const MSG_LIST_CONDITION_S *pListCond, msg_struct_list_s *pMsgList);
143                 msg_error_t getMediaList(const msg_thread_id_t thread_id, msg_list_handle_t *pMediaList);
144
145                 /* Push Event */
146                 msg_error_t addPushEvent(MSG_PUSH_EVENT_INFO_S *push_event);
147                 msg_error_t deletePushEvent(MSG_PUSH_EVENT_INFO_S *push_event);
148                 msg_error_t updatePushEvent(MSG_PUSH_EVENT_INFO_S *pSrc, MSG_PUSH_EVENT_INFO_S *pDst);
149
150                 void convertMsgStruct(const MSG_MESSAGE_INFO_S *pSource, MSG_MESSAGE_HIDDEN_S *pDest);
151                 void convertSendOptStruct(const MSG_SENDINGOPT_INFO_S* pSrc, MSG_SENDINGOPT_S* pDest, MSG_MESSAGE_TYPE_S msgType);
152
153                 void connectSocket();
154                 void disconnectSocket();
155
156         private:
157                 void write(const char *pCmd, int CmdSize, char **ppEvent);
158                 void read(char **ppEvent);
159                 void generateConnectionId(char *ConnectionId);
160                 void convertMsgStruct(const MSG_MESSAGE_HIDDEN_S *pSource, MSG_MESSAGE_INFO_S *pDest);
161                 void convertSendOptStruct(const MSG_SENDINGOPT_S* pSrc, MSG_SENDINGOPT_INFO_S* pDest, MSG_MESSAGE_TYPE_S msgType);
162                 int getSettingCmdSize(MSG_OPTION_TYPE_T optionType);
163                 bool CheckEventData(char *pEventData);
164
165                 char mConnectionId[20];
166                 short mCounter;
167
168                 char mCookie[MAX_COOKIE_LEN];
169
170                 MsgIpcClientSocket mClientSock;
171                 MsgMutex mx;
172 };
173
174 #endif /* MSG_HANDLE_H */
175