Modify flora license version.
[platform/core/messaging/msg-service.git] / plugin / mms_plugin / include / MmsPluginTypes.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 MMS_PLUGIN_TYPES_H
18 #define MMS_PLUGIN_TYPES_H
19
20 #include "MsgTypes.h"
21 #include "MsgInternalTypes.h"
22
23 #define IN        /*! Pfrefix*/
24 #define OUT       /*! Pfrefix*/
25 #define INOUT     /*! Pfrefix*/
26
27 #define RETRY_MAX 1
28 #define MAX_MMSC_URL_LEN        100
29 #define HTTP_REQUEST_LEN   1024
30 #define MAX_URL_LENGTH 1024
31 #define MAX_IPV4_LENGTH 30
32
33
34 typedef unsigned int MMS_NET_ERROR_T;
35 typedef unsigned int MMS_PDU_TYPE_T;
36 typedef unsigned char MMS_HTTP_CMD_TYPE_T;
37 typedef unsigned int E_MMS_CONNECTION_MODE;
38 typedef unsigned int E_MMS_NETWORK_ACCESS_POINT;
39
40 enum _MMS_NET_ERROR_E {
41         eMMS_SUCCESS = 0,
42         eMMS_CM_OPEN_SUCCESS,
43         eMMS_CM_OPEN_FAILED,
44         eMMS_CM_CLOSE_IND,
45         eMMS_CM_CLOSE_RSP,
46         eMMS_CM_CLOSE_FAILED,   //5
47         eMMS_CM_KILL_RSP,
48         eMMS_CM_KILL_FAILED,
49
50         eMMS_HTTP_SESSION_INIT,
51         eMMS_HTTP_SESSION_CLOSED,
52         eMMS_HTTP_SESSION_OPEN_FAILED, //10
53         eMMS_HTTP_SENT_SUCCESS,
54         eMMS_HTTP_CONF_SUCCESS,
55         eMMS_HTTP_ERROR_NETWORK,
56         eMMS_HTTP_CONF_RECEIVED_TIMEOUT,
57         eMMS_HTTP_RECV_DATA,    //15
58         eMMS_HTTP_EVENT_RECV_DATA_PROGRESS,
59         eMMS_HTTP_EVENT_RECV_DATA_ERROR,
60         eMMS_HTTP_EVENT_SENT_ACK_COMPLETED,
61         eMMS_HTTP_ERROR_UNKNOWN,
62         eMMS_EXCEPTIONAL_ERROR, //20
63
64         eMMS_UNKNOWN
65 };
66
67 enum _MMS_PDU_TYPE_E {
68         eMMS_SEND_REQ = 0,
69         eMMS_SEND_CONF,
70         eMMS_NOTIFICATION_IND,
71         eMMS_NOTIFYRESP_IND,
72         eMMS_RETRIEVE_AUTO_CONF,
73         eMMS_ACKNOWLEDGE_IND,
74         eMMS_DELIVERY_IND,
75         eMMS_READREC_IND,
76         eMMS_READORIG_IND,
77         eMMS_READREPORT_REQ,
78         eMMS_READREPORT_CONF,   //10
79         eMMS_FORWARD_REQ,
80         eMMS_FORWARD_CONF,
81         eMMS_RETRIEVE_AUTO,
82         eMMS_RETRIEVE_MANUAL,
83         eMMS_RETRIEVE_MANUAL_CONF,
84         eMMS_CANCEL_REQ,
85         eMMS_CANCEL_CONF,
86         eMMS_DELETE_REQ,
87         eMMS_DELETE_CONF,
88         eMMS_MBOX_STORE_REQ,    // 20
89         eMMS_MBOX_STORE_CONF,
90         eMMS_MBOX_VIEW_REQ,
91         eMMS_MBOX_VIEW_CONF,
92         eMMS_MBOX_UPLOAD_REQ,
93         eMMS_MBOX_UPLOAD_CONF,
94         eMMS_MBOX_DELETE_REQ,
95         eMMS_MBOX_DELETE_CONF,
96 };
97
98 enum _MMS_HTTP_CMD_TYPE_E {
99         eHTTP_CMD_REGISTER = 0,
100         eHTTP_CMD_DEREGISTER,
101         eHTTP_CMD_INIT_SESSION,
102         eHTTP_CMD_CANCEL_SESSION,
103         eHTTP_CMD_CLOSE_SESSION,
104         eHTTP_CMD_DELETE_SESSION,
105         eHTTP_CMD_POST_TRANSACTION,
106         eHTTP_CMD_GET_TRANSACTION,
107         eHTTP_CMD_DELETE_TRANSACTION
108 };
109
110 typedef struct _mmsTranQEntity {
111         bool isCompleted;
112         msg_request_id_t reqID;
113         int msgId;
114         unsigned int sessionId;
115         char transactionId[MMS_TR_ID_LEN + 1];
116
117         MMS_PDU_TYPE_T eMmsPduType;
118         MMS_HTTP_CMD_TYPE_T eHttpCmdType;
119
120         MMS_PDU_TYPE_T eMmsTransactionStatus;
121
122         int postDataLen;
123         char *pPostData;
124
125         int getDataLen;
126         char *pGetData;
127 } mmsTranQEntity;
128
129 typedef struct  _MMSC_CONFIG_DATA_S {
130         char mmscUrl[MAX_URL_LENGTH + 1];                       /** if break, change it to NETPM_HOME_URL_LEN_MAX   */
131         char httpProxyIpAddr[MAX_IPV4_LENGTH + 1];      /**   HTTP Proxy's URL or IP address */
132
133         unsigned int proxyPortNo;       /** MMS HTTP proxy Port number  */
134         E_MMS_CONNECTION_MODE connectionMode;   /**   Values must be from ENUM list -\ref E_MMS_CONNECTION_MODE  */
135         E_MMS_NETWORK_ACCESS_POINT networkAccessPoint;  /**   Values must be from \ref E_MMS_NETWORK_ACCESS_POINT  */
136         unsigned int bAutoRetrieveFlag; /**  Value's shall be true or false */
137         unsigned int profileId;                 /** Profile is for CM Conn open*/
138 } MMSC_CONFIG_DATA_S;
139
140 typedef struct _MMS_PLUGIN_HTTP_DATA_S {
141         int profileId;
142         int profileCount;
143         int currentProfileId;
144         int sessionId;
145         int transactionId;
146         void *session;
147         void *sessionHeader;
148         MMSC_CONFIG_DATA_S mmscConfig;
149 } MMS_PLUGIN_HTTP_DATA_S;
150
151 typedef struct _MMS_PLUGIN_HTTP_CONTEXT_S {
152         char *recv_header_buf ;
153         int header_bufsize;
154         unsigned char *final_content_buf; // Final Concatenated Buffer
155         unsigned long ulContentLength;  // Content Leght Value received in HTTP OK Header
156         unsigned long bufOffset; /** < Incremented once received Content_receiving or Content_received Event */
157 } MMS_PLUGIN_HTTP_CONTEXT_S;
158
159
160
161 #endif //MMS_PLUGIN_TYPES_H
162