update tizen source
[framework/messaging/msg-service.git] / plugin / mms_plugin / include / MmsPluginHttp.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 #ifndef MMSPLUGINHTTP_H
32 #define MMSPLUGINHTTP_H
33
34 #include <map>
35
36 #include "MsgDebug.h"
37 #include "MmsPluginTypes.h"
38 #include "MsgMutex.h"
39
40 #include <curl/curl.h>
41
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45
46
47 #ifdef __cplusplus
48 }
49 #endif
50
51 class MmsPluginHttpAgent
52 {
53         public:
54                 static MmsPluginHttpAgent *instance();
55
56
57                 void setHttpWaitingFlag(bool val);
58                 bool getHttpWaitingFlag();
59
60                 int cmdRequest(MMS_HTTP_CMD_TYPE_T cmdType);
61
62                 int setSession(mmsTranQEntity *qEntity);
63                 void clearSession();
64
65                 void SetMMSProfile();
66
67                 MMS_PLUGIN_HTTP_DATA_S *getHttpConfigData();
68                 MMS_PLUGIN_HTTP_CONTEXT_S *getMmsPldCd();
69
70                 MMS_PLUGIN_HTTP_DATA_S httpConfigData;
71
72         private:
73                 static MmsPluginHttpAgent *pInstance;
74
75
76                 MmsPluginHttpAgent();
77                 ~MmsPluginHttpAgent();
78
79                 bool waiting;
80
81                 MMS_PLUGIN_HTTP_CONTEXT_S mmsPlgCd;
82
83                 std::map<MMS_HTTP_CMD_TYPE_T,int(*)(MMS_PLUGIN_HTTP_DATA_S *)> httpCmdHandler;
84 };
85
86
87 #define MSG_MMS_HH_CONTENT_TYPE     "application/vnd.wap.mms-message"
88 #define MSG_MMS_HH_ACCEPT           "application/vnd.wap.mms-message, */*"
89 #define MSG_MMS_HH_CHARSET          "utf-8"
90 #define MSG_MMS_HH_LANGUAGE         "zh-cn, en"
91 #define MSG_MMS_HH_ENCODING         "deflate,gzip"
92
93 #define MSG_MMS_HH_USER_AGENT           "Tizen", "Mozilla/5.0 (Linux; U; Tizen 1.0; en-us) AppleWebKit/534.46 (KHTML, like Gecko) Mobile Tizen Browser/1.0"
94 #define MSG_MMS_WAP_PROFILE         ""
95
96 typedef unsigned int MMS_HTTP_HEADER_FIELD_T;
97
98 enum _MMS_HTTP_HEADER_FIELD_E {
99         MMS_HH_CONTENT_TYPE,
100         MMS_HH_HOST,
101         MMS_HH_ACCEPT,
102         MMS_HH_ACCEPT_CHARSET,
103         MMS_HH_ACCEPT_LANGUAGE,
104         MMS_HH_ACCEPT_ENCODING,
105         MMS_HH_USER_AGENT,
106         MMS_HH_WAP_PROFILE
107 };
108 void HttpHeaderInfo(curl_slist *responseHeaders, char *szUrl, int ulContentLen);
109 bool MsgMmsGetCustomHTTPHeader(MMS_HTTP_HEADER_FIELD_T httpHeaderItem, char *szHeaderBuffer);
110 void MsgMmsGetHost(char *szHost, int nBufferLen);
111
112 #endif