|
1 /* |
|
2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: Abstract base class for WV engine service APIs. |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 |
|
20 #ifndef M_simpleenginerequest_H |
|
21 #define M_simpleenginerequest_H |
|
22 |
|
23 |
|
24 // INCLUDES |
|
25 #include <e32base.h> |
|
26 #include "simplecommon.h" |
|
27 |
|
28 |
|
29 /** |
|
30 * Abstarct API for request handling in SIMPLE engine core and SIMPLE SIP LIB communication. |
|
31 * |
|
32 * @lib simpleengine |
|
33 * @since S60 v3.2 |
|
34 */ |
|
35 class MSimpleEngineRequest |
|
36 { |
|
37 public: |
|
38 |
|
39 /** Request type */ |
|
40 enum TSimpleRequest |
|
41 { |
|
42 /** None */ |
|
43 ENone=0, |
|
44 /** SIP Register */ |
|
45 ERegister, |
|
46 /** SIP Publish */ |
|
47 EStartPublish, |
|
48 /** SIP modify Publish */ |
|
49 EPublishModify, |
|
50 /** SIP Subscribe */ |
|
51 ESubscribe, |
|
52 /** SIP list Subscribe */ |
|
53 ESubscribeLista, |
|
54 /** SIP Subscribe Get (once) */ |
|
55 ESubscribeGet, |
|
56 /** SIP subscribe WINFO */ |
|
57 ESubscribeWinfo, |
|
58 /** SIP Unsubscribe */ |
|
59 ESubscribeStop, |
|
60 /** SIP Dialog (notify, status) */ |
|
61 EDialog, |
|
62 /** SIP Publish stop */ |
|
63 EStopPublish, |
|
64 /** Listen to event states */ |
|
65 EListenEvents, |
|
66 /** Destroy the object */ |
|
67 EDestroy, |
|
68 /** Destroy the object with a delay */ |
|
69 EDestroyStart, |
|
70 /** SIP Subscrption-state */ |
|
71 ESubscriptionState, |
|
72 /** SIP send IM */ |
|
73 ESendIM, |
|
74 /** SIP receive IM */ |
|
75 EReceiveIM |
|
76 }; |
|
77 |
|
78 /** SIP response/request message */ |
|
79 enum TSimpleSIPResponse |
|
80 { |
|
81 /** None */ |
|
82 EUnknownResponse=0, |
|
83 /** SIP NOTIFY */ |
|
84 ENotify, |
|
85 /** SIP status */ |
|
86 EStatus, |
|
87 /** ETag update only in status in refresh response */ |
|
88 EStatusETag |
|
89 }; |
|
90 |
|
91 /** NOTIFY response reason */ |
|
92 enum TSimpleResponseReason |
|
93 { |
|
94 /** unknown reason */ |
|
95 ENoReason, |
|
96 /** Application SHOULD re-subscribe later. */ |
|
97 EDeactivated, |
|
98 /** Application SHOULD re-subscribe later. */ |
|
99 EProbation, |
|
100 /** The subscription has been terminated due to change in |
|
101 authorization policy. |
|
102 Application SHOULD NOT attempt to re-subscribe. */ |
|
103 ERejected, |
|
104 /** The subscription has been terminated because it was not |
|
105 refreshed before it expired. Application MAY re-subscribe |
|
106 later. */ |
|
107 ETimeout, |
|
108 /** The subscription has been terminated because the notifier |
|
109 could not obtain authorization in a timely fashion. |
|
110 Application MAY re-subscribe later. */ |
|
111 EGiveup, |
|
112 /** The subscription has been terminated because the resource |
|
113 state which was being monitored no longer exists. |
|
114 Application SHOULD NOT attempt to re-subscribe. */ |
|
115 ENoresource |
|
116 }; |
|
117 |
|
118 /** SIP subscription-state */ |
|
119 enum TSimpleSipSubscriptionState |
|
120 { |
|
121 ESimpleStateNone=0, |
|
122 ESimpleStatePending, |
|
123 ESimpleStateActive, |
|
124 ESimpleStateTerminated |
|
125 }; |
|
126 |
|
127 |
|
128 /** |
|
129 * Destructor |
|
130 * @since S60 3.2 |
|
131 */ |
|
132 virtual void Destroy() = 0; |
|
133 |
|
134 /** |
|
135 * Request type accessor |
|
136 * @since S60 3.2 |
|
137 * @return request type |
|
138 */ |
|
139 virtual TSimpleRequest RequestType() = 0; |
|
140 |
|
141 /** |
|
142 * Request type accessor |
|
143 * @since S60 3.2 |
|
144 * @param aType request type |
|
145 */ |
|
146 virtual void ModifyType( TSimpleRequest aType ) = 0; |
|
147 |
|
148 /** |
|
149 * Complete the open request |
|
150 * @since S60 3.2 |
|
151 * @param aStatus result status |
|
152 */ |
|
153 virtual void Complete( TInt aStatus ) = 0; |
|
154 |
|
155 /** |
|
156 * Request data type accessor |
|
157 * @since S60 3.2 |
|
158 * @return request data content type |
|
159 */ |
|
160 virtual TPtrC8 RequestContentType() = 0; |
|
161 |
|
162 /** |
|
163 * Request data accessor |
|
164 * @since S60 3.2 |
|
165 * @return request data payload |
|
166 */ |
|
167 virtual TPtrC8 RequestData() = 0; |
|
168 |
|
169 /** |
|
170 * Response data type setter. |
|
171 * @since S60 3.2 |
|
172 * @param aData content that is NOT copied, ownership is transferred |
|
173 */ |
|
174 virtual void SetResponseContentType( HBufC8* aData ) = 0; |
|
175 |
|
176 /** |
|
177 * Response data MIME multipart boundary setter. |
|
178 * @since S60 3.2 |
|
179 * @param aData boundary |
|
180 */ |
|
181 virtual void SetResponseBoundaryL( const TDesC8& aData ) = 0; |
|
182 |
|
183 /** |
|
184 * Response data MIME multipart start content-id setter |
|
185 * @since S60 3.2 |
|
186 * @param aData content-id |
|
187 */ |
|
188 virtual void SetResponseStartL( const TDesC8& aData ) = 0; |
|
189 |
|
190 /** |
|
191 * Response data setter. |
|
192 * @since S60 3.2 |
|
193 * @param aData content that is to be copied. |
|
194 */ |
|
195 virtual void SetResponseDataL( const TDesC8& aData ) = 0; |
|
196 |
|
197 /** |
|
198 * Response method setter. |
|
199 * @since S60 3.2 |
|
200 * @param aMethod a method |
|
201 */ |
|
202 virtual void SetResponseMethod( TSimpleSIPResponse aMethod ) = 0; |
|
203 |
|
204 /** |
|
205 * Aux data setter. |
|
206 * @since S60 3.2 |
|
207 * @param aData data |
|
208 */ |
|
209 virtual void SetAux( TInt aData ) = 0; |
|
210 |
|
211 /** |
|
212 * Server response/request method accessor |
|
213 * @return SIP method |
|
214 */ |
|
215 virtual TSimpleSIPResponse ResponseMethod() = 0; |
|
216 |
|
217 /** |
|
218 * Response data type accessor |
|
219 * @since S60 3.2 |
|
220 * @return content type |
|
221 */ |
|
222 virtual TPtrC8 ResponseContentType() = 0; |
|
223 |
|
224 /** |
|
225 * Response data MIME multipart boundary getter. |
|
226 * @since S60 3.2 |
|
227 * @return data boundary |
|
228 */ |
|
229 virtual TPtrC8 ResponseBoundary( ) = 0; |
|
230 |
|
231 /** |
|
232 * Response data MIME multipart start content-id getter |
|
233 * @since S60 3.2 |
|
234 * @return start content-id |
|
235 */ |
|
236 virtual TPtrC8 ResponseStart( ) = 0; |
|
237 |
|
238 /** |
|
239 * Response data accessor |
|
240 * @since S60 3.2 |
|
241 * @return response data payload |
|
242 */ |
|
243 virtual TPtrC8 ResponseData() = 0; |
|
244 |
|
245 /** |
|
246 * Refresh time accessor |
|
247 * @since S60 3.2 |
|
248 * @return refresh time in seconds, 0 means query once |
|
249 */ |
|
250 virtual TUint RefreshTime() = 0; |
|
251 |
|
252 /** |
|
253 * Refresh time setter |
|
254 * @since S60 3.2 |
|
255 * @param aTime time in seconds, 0 means query once |
|
256 */ |
|
257 virtual void SetRefreshTime( TUint aTime) = 0; |
|
258 |
|
259 /** |
|
260 * Remote URI accessor |
|
261 * @since S60 3.2 |
|
262 * @return remote URI |
|
263 */ |
|
264 virtual TPtrC8 RemoteURI() = 0; |
|
265 |
|
266 /** |
|
267 * Remote URI setter |
|
268 * @since S60 3.2 |
|
269 * @param aURI remote URI |
|
270 */ |
|
271 virtual void SetRemoteURIL( const TDesC8& aURI ) = 0; |
|
272 |
|
273 /** |
|
274 * Get refresh parameter |
|
275 * @since S60 3.2 |
|
276 * return ETrue if refresh |
|
277 */ |
|
278 virtual TBool IsRefresh() = 0; |
|
279 |
|
280 /** |
|
281 * Refresh parameter setter |
|
282 * @since S60 3.2 |
|
283 * @param aRefresh refresh boolean value |
|
284 */ |
|
285 virtual void SetRefresh( TBool aRefresh ) = 0; |
|
286 |
|
287 /** |
|
288 * Operation id getter |
|
289 * @since S60 3.2 |
|
290 * @return operation id |
|
291 */ |
|
292 virtual TInt OpId( ) = 0; |
|
293 |
|
294 /** |
|
295 * auxiliary parameter needed sometimes |
|
296 * @since S60 3.2 |
|
297 * @return aux number |
|
298 */ |
|
299 virtual TInt Aux() = 0; |
|
300 |
|
301 /** |
|
302 * SIP Response reason setter |
|
303 * @since S60 3.2 |
|
304 * @param aReason reason |
|
305 */ |
|
306 virtual void SetResponseReason( TSimpleResponseReason aReason ) = 0; |
|
307 |
|
308 /** |
|
309 * SIP Response reason getter |
|
310 * @since S60 3.2 |
|
311 * @return aReason reason |
|
312 */ |
|
313 virtual TSimpleResponseReason ResponseReason() = 0; |
|
314 |
|
315 /** |
|
316 * Set SIP-ETag value |
|
317 * |
|
318 * @since S60 3.2 |
|
319 * @param aTag tag |
|
320 */ |
|
321 virtual void SetETagL( const TDesC8& aTag ) = 0; |
|
322 |
|
323 /** |
|
324 * get SIP-ETag value |
|
325 * |
|
326 * @since S60 3.2 |
|
327 * @return SIP-ETag value. |
|
328 */ |
|
329 virtual TPtrC8 ETag() = 0; |
|
330 |
|
331 /** |
|
332 * IM message recipient setter |
|
333 * |
|
334 * @since S60 5.0 |
|
335 * @param aRecipientId recipient ID |
|
336 */ |
|
337 virtual void SetRecipientL( const TDesC8& aRecipientId ) = 0; |
|
338 |
|
339 /** |
|
340 * IM message recipient getter |
|
341 * |
|
342 * @since S60 5.0 |
|
343 * @return recipient ID |
|
344 */ |
|
345 virtual TPtrC8 Recipient() = 0; |
|
346 |
|
347 }; |
|
348 |
|
349 #endif |
|
350 |
|
351 // End of File |