williamr@2
|
1 |
// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
|
williamr@2
|
2 |
// All rights reserved.
|
williamr@2
|
3 |
// This component and the accompanying materials are made available
|
williamr@2
|
4 |
// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
|
williamr@2
|
5 |
// which accompanies this distribution, and is available
|
williamr@2
|
6 |
// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
|
williamr@2
|
7 |
//
|
williamr@2
|
8 |
// Initial Contributors:
|
williamr@2
|
9 |
// Nokia Corporation - initial contribution.
|
williamr@2
|
10 |
//
|
williamr@2
|
11 |
// Contributors:
|
williamr@2
|
12 |
//
|
williamr@2
|
13 |
// Description:
|
williamr@2
|
14 |
//
|
williamr@2
|
15 |
|
williamr@2
|
16 |
|
williamr@2
|
17 |
|
williamr@2
|
18 |
/**
|
williamr@2
|
19 |
@file THTTPEvent.h
|
williamr@2
|
20 |
@warning : This file contains Rose Model ID comments - please do not delete
|
williamr@2
|
21 |
*/
|
williamr@2
|
22 |
|
williamr@2
|
23 |
#ifndef __THTTPEVENT_H__
|
williamr@2
|
24 |
#define __THTTPEVENT_H__
|
williamr@2
|
25 |
|
williamr@2
|
26 |
// System includes
|
williamr@2
|
27 |
#include <e32std.h>
|
williamr@2
|
28 |
|
williamr@2
|
29 |
/**
|
williamr@2
|
30 |
The HTTP UID. This UID is used for all events defined here.
|
williamr@2
|
31 |
@publishedAll
|
williamr@2
|
32 |
@released
|
williamr@2
|
33 |
*/
|
williamr@2
|
34 |
const TUint KHTTPUid = 0x1000A441;
|
williamr@2
|
35 |
|
williamr@2
|
36 |
/**
|
williamr@2
|
37 |
Wildcard Matching UID. When specified as part of an event then the UID event
|
williamr@2
|
38 |
part of the match will be ignored.
|
williamr@2
|
39 |
@publishedAll
|
williamr@2
|
40 |
@released
|
williamr@2
|
41 |
*/
|
williamr@2
|
42 |
const TUint KHTTPMatchAnyEventUid = 0x1000A44C;
|
williamr@2
|
43 |
|
williamr@2
|
44 |
/**
|
williamr@2
|
45 |
The base status code for transaction events. Any number above this but below
|
williamr@2
|
46 |
KSessionEventBaseStatus is a transaction event.
|
williamr@2
|
47 |
@publishedAll
|
williamr@2
|
48 |
@released
|
williamr@2
|
49 |
*/
|
williamr@2
|
50 |
const TInt KTransactionEventBaseStatus = 0;
|
williamr@2
|
51 |
|
williamr@2
|
52 |
/**
|
williamr@2
|
53 |
The base status code for transaction warning events.
|
williamr@2
|
54 |
@publishedAll
|
williamr@2
|
55 |
@released
|
williamr@2
|
56 |
*/
|
williamr@2
|
57 |
const TInt KTransactionWarningBaseStatus = 10000;
|
williamr@2
|
58 |
|
williamr@2
|
59 |
/**
|
williamr@2
|
60 |
The base status code for session events. Any number above this is a session
|
williamr@2
|
61 |
event.
|
williamr@2
|
62 |
@publishedAll
|
williamr@2
|
63 |
@released
|
williamr@2
|
64 |
*/
|
williamr@2
|
65 |
const TInt KSessionEventBaseStatus = 100000;
|
williamr@2
|
66 |
|
williamr@2
|
67 |
/**
|
williamr@2
|
68 |
The base status code for session warning events.
|
williamr@2
|
69 |
@publishedAll
|
williamr@2
|
70 |
@released
|
williamr@2
|
71 |
*/
|
williamr@2
|
72 |
const TInt KSessionWarningBaseStatus = 110000;
|
williamr@2
|
73 |
|
williamr@2
|
74 |
|
williamr@2
|
75 |
//##ModelId=3C4C18740294
|
williamr@2
|
76 |
class THTTPEvent
|
williamr@2
|
77 |
/**
|
williamr@2
|
78 |
A HTTP status message. Status messages consist of a UID and a
|
williamr@2
|
79 |
status code within that UID. Extension dlls that needs to create
|
williamr@2
|
80 |
new status messages should use their own UID and create status codes
|
williamr@2
|
81 |
within that UID.
|
williamr@2
|
82 |
@publishedAll
|
williamr@2
|
83 |
@released
|
williamr@2
|
84 |
*/
|
williamr@2
|
85 |
{
|
williamr@2
|
86 |
public:
|
williamr@2
|
87 |
|
williamr@2
|
88 |
/** The TStandardEvent type is used to specify a family of event types. Any
|
williamr@2
|
89 |
negative event number is used to convey error codes. All events are
|
williamr@2
|
90 |
incoming (originate with the origin server) unless otherwise indicated.
|
williamr@2
|
91 |
Outgoing messages will not be seen by the MHTTPTransactionCallback's
|
williamr@2
|
92 |
MHFRunL.
|
williamr@2
|
93 |
*/
|
williamr@2
|
94 |
enum TStandardEvent
|
williamr@2
|
95 |
{
|
williamr@2
|
96 |
/** Used when registering filter to indicate the filter is instrested
|
williamr@2
|
97 |
in ALL events, both transaction and session events.
|
williamr@2
|
98 |
*/
|
williamr@2
|
99 |
EAll = KRequestPending + 1,
|
williamr@2
|
100 |
/** Used when registering filters to indicate the filter is interested
|
williamr@2
|
101 |
in any transaction event, from any direction.
|
williamr@2
|
102 |
*/
|
williamr@2
|
103 |
EAnyTransactionEvent = KRequestPending,
|
williamr@2
|
104 |
/** Used when registering filters to indicate the filter is interested
|
williamr@2
|
105 |
in any session event.
|
williamr@2
|
106 |
*/
|
williamr@2
|
107 |
EAnySessionEvent = KSessionEventBaseStatus
|
williamr@2
|
108 |
};
|
williamr@2
|
109 |
|
williamr@2
|
110 |
/** The TTransactionEvents type defines the events that correspond to
|
williamr@2
|
111 |
transactions. Outgoing events originate from the client or from filters.
|
williamr@2
|
112 |
The clients do not send these explicitly since the API methods of
|
williamr@2
|
113 |
RHTTPTransaction do it on their behalf. Incoming events originate from
|
williamr@2
|
114 |
the protocol handler or from filters, and clients should handle these.
|
williamr@2
|
115 |
The ESucceeded and EFailed events are mutually exclusive, but one will
|
williamr@2
|
116 |
always be sent to the client as the final event for a transaction.
|
williamr@2
|
117 |
*/
|
williamr@2
|
118 |
enum TTransactionEvent
|
williamr@2
|
119 |
{
|
williamr@2
|
120 |
/** The transaction is being submitted. An outgoing event.
|
williamr@2
|
121 |
*/
|
williamr@2
|
122 |
ESubmit = KTransactionEventBaseStatus,
|
williamr@2
|
123 |
/** The transaction is being cancelled. An outgoing event.
|
williamr@2
|
124 |
*/
|
williamr@2
|
125 |
ECancel = KTransactionEventBaseStatus + 1,
|
williamr@2
|
126 |
/** A new part of request body data is available for transmission. An
|
williamr@2
|
127 |
outgoing event
|
williamr@2
|
128 |
*/
|
williamr@2
|
129 |
ENotifyNewRequestBodyPart = KTransactionEventBaseStatus + 2,
|
williamr@2
|
130 |
/** The transaction is being closed. An outgoing event.
|
williamr@2
|
131 |
*/
|
williamr@2
|
132 |
EClosed = KTransactionEventBaseStatus + 3,
|
williamr@2
|
133 |
/** All the response headers have been received. An incoming event.
|
williamr@2
|
134 |
*/
|
williamr@2
|
135 |
EGotResponseHeaders = KTransactionEventBaseStatus + 4,
|
williamr@2
|
136 |
/** Some (more) body data has been received (in the HTTP response). An
|
williamr@2
|
137 |
incoming event.
|
williamr@2
|
138 |
*/
|
williamr@2
|
139 |
EGotResponseBodyData = KTransactionEventBaseStatus + 5,
|
williamr@2
|
140 |
/** The transaction's response is complete. An incoming event.
|
williamr@2
|
141 |
*/
|
williamr@2
|
142 |
EResponseComplete = KTransactionEventBaseStatus + 6,
|
williamr@2
|
143 |
/** Some trailer headers have been received. An incoming event.
|
williamr@2
|
144 |
*/
|
williamr@2
|
145 |
EGotResponseTrailerHeaders = KTransactionEventBaseStatus + 7,
|
williamr@2
|
146 |
/** The transaction has succeeded. An incoming event.
|
williamr@2
|
147 |
*/
|
williamr@2
|
148 |
ESucceeded = KTransactionEventBaseStatus + 8,
|
williamr@2
|
149 |
/** The transaction has failed. This is a 'catch-all' for communicating
|
williamr@2
|
150 |
failures, and more details of the failure should have been notified
|
williamr@2
|
151 |
in previous messages or status codes. If the client could process
|
williamr@2
|
152 |
these then it is possible that it should not consider the transaction
|
williamr@2
|
153 |
a failure. For instance a browser that displays the body of 404
|
williamr@2
|
154 |
responses to the user would not consider a 404 response to be a
|
williamr@2
|
155 |
failure, as it would display it just like a 200 response even though
|
williamr@2
|
156 |
a 404 will be flagged as a 'failure'. An incoming event.
|
williamr@2
|
157 |
*/
|
williamr@2
|
158 |
EFailed = KTransactionEventBaseStatus + 9,
|
williamr@2
|
159 |
/** Generated from RHTTPTransaction::Fail(). A filter has failed in a
|
williamr@2
|
160 |
way that prevents it from using the normal event mechanism to inform
|
williamr@2
|
161 |
the client of the error. This probably means it's run out of memory.
|
williamr@2
|
162 |
An incoming event.
|
williamr@2
|
163 |
*/
|
williamr@2
|
164 |
EUnrecoverableError = KTransactionEventBaseStatus + 10,
|
williamr@2
|
165 |
/** An event that indicates that there is too much request data to be
|
williamr@2
|
166 |
sent. The transaction will subsequently be cancelled. An incoming
|
williamr@2
|
167 |
event.
|
williamr@2
|
168 |
*/
|
williamr@2
|
169 |
ETooMuchRequestData = KTransactionEventBaseStatus + 11,
|
williamr@2
|
170 |
|
williamr@2
|
171 |
|
williamr@2
|
172 |
/** If the returned status code for a transaciton is either 301, 302 or 307
|
williamr@2
|
173 |
and the requested method is NOT a GET or HEAD, then the filter sends the
|
williamr@2
|
174 |
client an event ERedirectRequiresConfirmation as stated in RFC2616.
|
williamr@2
|
175 |
|
williamr@2
|
176 |
On receiving this event, the transaction is already setup with the redirected URI
|
williamr@2
|
177 |
and the client is required to make the decision to whether to submit the
|
williamr@2
|
178 |
transaction or close the transaction.
|
williamr@2
|
179 |
|
williamr@2
|
180 |
If the requested method is GET or HEAD the transaction is automatically
|
williamr@2
|
181 |
redirected and this event is not used.
|
williamr@2
|
182 |
*/
|
williamr@2
|
183 |
ERedirectRequiresConfirmation = KTransactionEventBaseStatus + 12,
|
williamr@2
|
184 |
|
williamr@2
|
185 |
/** A transaction has been specified to use a proxy and the request
|
williamr@2
|
186 |
requires a tunnel to be establised to the origin server.
|
williamr@2
|
187 |
*/
|
williamr@2
|
188 |
ENeedTunnel = KTransactionEventBaseStatus + 13,
|
williamr@2
|
189 |
|
williamr@2
|
190 |
/** The client wishes to view the current cipher suite.
|
williamr@2
|
191 |
*/
|
williamr@2
|
192 |
EGetCipherSuite = KTransactionEventBaseStatus + 14,
|
williamr@2
|
193 |
|
williamr@2
|
194 |
/** The transaction's request is complete. An incoming event.
|
williamr@2
|
195 |
*/
|
williamr@2
|
196 |
ERequestComplete = KTransactionEventBaseStatus + 15,
|
williamr@2
|
197 |
|
williamr@2
|
198 |
/**An event to signal that 100 Continue response has been received.
|
williamr@2
|
199 |
*/
|
williamr@2
|
200 |
EReceived100Continue = KTransactionEventBaseStatus + 16,
|
williamr@2
|
201 |
|
williamr@2
|
202 |
/**An event to cancel the wait for a 100-Continue event.
|
williamr@2
|
203 |
*/
|
williamr@2
|
204 |
ECancelWaitFor100Continue = KTransactionEventBaseStatus + 17,
|
williamr@2
|
205 |
|
williamr@2
|
206 |
/**An event of Send Timeout for a Request.
|
williamr@2
|
207 |
*/
|
williamr@2
|
208 |
ESendTimeOut = KTransactionEventBaseStatus + 18,
|
williamr@2
|
209 |
|
williamr@2
|
210 |
/**An event of Receive Timeout for a Response.
|
williamr@2
|
211 |
*/
|
williamr@2
|
212 |
EReceiveTimeOut = KTransactionEventBaseStatus + 19
|
williamr@2
|
213 |
|
williamr@2
|
214 |
};
|
williamr@2
|
215 |
|
williamr@2
|
216 |
/** The TDirection type defines the direction of an event. An outgoing event
|
williamr@2
|
217 |
originates from the client or from filters. The clients do not send these
|
williamr@2
|
218 |
explicitly since the API methods of RHTTPTransaction or RHTTPSession do
|
williamr@2
|
219 |
it on their behalf. Incoming events originate from the protocol handler
|
williamr@2
|
220 |
or from filters, and clients should handle these.
|
williamr@2
|
221 |
*/
|
williamr@2
|
222 |
enum TDirection
|
williamr@2
|
223 |
{
|
williamr@2
|
224 |
/** An event originating with the client (e.g. start transaction).
|
williamr@2
|
225 |
*/
|
williamr@2
|
226 |
EOutgoing,
|
williamr@2
|
227 |
/** An event originating with the server (e.g. something received).
|
williamr@2
|
228 |
*/
|
williamr@2
|
229 |
EIncoming
|
williamr@2
|
230 |
};
|
williamr@2
|
231 |
|
williamr@2
|
232 |
/** The TTransactionWarning type indicates that something in a transaction
|
williamr@2
|
233 |
may be incorrect but the transaction may continue. It may also indicate
|
williamr@2
|
234 |
that something (e.g. a filter) may have performed an action that has
|
williamr@2
|
235 |
changed the transaction and that the client should be informed of this.
|
williamr@2
|
236 |
*/
|
williamr@2
|
237 |
enum TTransactionWarning
|
williamr@2
|
238 |
{
|
williamr@2
|
239 |
/** An event indicating that the transaction has been redirected and the
|
williamr@2
|
240 |
original origin server indicated that it was a permanent redirection.
|
williamr@2
|
241 |
The URI for the transaction is now the redirected location. A
|
williamr@2
|
242 |
permanent redirection may require further client behavior if the
|
williamr@2
|
243 |
request came from a stored URI. This is to avoid further redirections
|
williamr@2
|
244 |
on subsequent requests for this resource.
|
williamr@2
|
245 |
*/
|
williamr@2
|
246 |
ERedirectedPermanently = KTransactionWarningBaseStatus,
|
williamr@2
|
247 |
/** An event indicating that the transaction has been redirected and the
|
williamr@2
|
248 |
original server indicated that it was a temporary redirection.
|
williamr@2
|
249 |
*/
|
williamr@2
|
250 |
ERedirectedTemporarily = KTransactionWarningBaseStatus + 1,
|
williamr@2
|
251 |
/** An event generated by the Protocol Handler when it receives a Content-
|
williamr@2
|
252 |
Length value that does not match the actual length of the body data.
|
williamr@2
|
253 |
*/
|
williamr@2
|
254 |
EMoreDataReceivedThanExpected = KTransactionWarningBaseStatus + 2
|
williamr@2
|
255 |
};
|
williamr@2
|
256 |
|
williamr@2
|
257 |
public: // Methods
|
williamr@2
|
258 |
|
williamr@2
|
259 |
/** Constructor
|
williamr@2
|
260 |
@param aStatus The status value.
|
williamr@2
|
261 |
@param aUID The UID.
|
williamr@2
|
262 |
*/
|
williamr@2
|
263 |
//##ModelId=3C4C187402FB
|
williamr@2
|
264 |
inline THTTPEvent(TInt aStatus, TUint aUID = KHTTPUid);
|
williamr@2
|
265 |
|
williamr@2
|
266 |
/** Constructor (using a standard event and the HTTP UID)
|
williamr@2
|
267 |
@param aStatus The standard event to use.
|
williamr@2
|
268 |
*/
|
williamr@2
|
269 |
//##ModelId=3C4C18740304
|
williamr@2
|
270 |
inline THTTPEvent(TStandardEvent aStatus = EAnyTransactionEvent);
|
williamr@2
|
271 |
|
williamr@2
|
272 |
/** Constructor (using a transaction event and the HTTP UID)
|
williamr@2
|
273 |
@param aStatus The transaction event to use.
|
williamr@2
|
274 |
*/
|
williamr@2
|
275 |
//##ModelId=3C4C1874030C
|
williamr@2
|
276 |
inline THTTPEvent(TTransactionEvent aStatus);
|
williamr@2
|
277 |
|
williamr@2
|
278 |
/** Assigns a standard event code to an event object
|
williamr@2
|
279 |
@param aStatus The standard event.
|
williamr@2
|
280 |
@return The HTTP event object.
|
williamr@2
|
281 |
*/
|
williamr@2
|
282 |
//##ModelId=3C4C187402EF
|
williamr@2
|
283 |
inline THTTPEvent& operator=(TStandardEvent aStatus);
|
williamr@2
|
284 |
|
williamr@2
|
285 |
/** Assigns a transaction event code to an event object
|
williamr@2
|
286 |
@param aStatus The transaction event.
|
williamr@2
|
287 |
@return The HTTP event object.
|
williamr@2
|
288 |
*/
|
williamr@2
|
289 |
//##ModelId=3C4C187402F1
|
williamr@2
|
290 |
inline THTTPEvent& operator=(TTransactionEvent aStatus);
|
williamr@2
|
291 |
|
williamr@2
|
292 |
/** Equality operator
|
williamr@2
|
293 |
@param The HTTP event object to compare.
|
williamr@2
|
294 |
@return ETrue if the HTTP event objects are equal.
|
williamr@2
|
295 |
*/
|
williamr@2
|
296 |
//##ModelId=3C4C187402DA
|
williamr@2
|
297 |
inline TBool operator==(THTTPEvent aThat) const;
|
williamr@2
|
298 |
|
williamr@2
|
299 |
/** Inequality operator
|
williamr@2
|
300 |
@param The HTTP event object to compare.
|
williamr@2
|
301 |
@return ETrue if the HTTP event objects are not equal.
|
williamr@2
|
302 |
*/
|
williamr@2
|
303 |
//##ModelId=3C4C187402BD
|
williamr@2
|
304 |
inline TBool operator!=(THTTPEvent aThat) const;
|
williamr@2
|
305 |
|
williamr@2
|
306 |
/** Equality operator (compares with a standard event)
|
williamr@2
|
307 |
@param The standard event object to compare.
|
williamr@2
|
308 |
@return ETrue if the standard event objects are equal.
|
williamr@2
|
309 |
*/
|
williamr@2
|
310 |
//##ModelId=3C4C187402DC
|
williamr@2
|
311 |
inline TBool operator==(TStandardEvent aStatus) const;
|
williamr@2
|
312 |
|
williamr@2
|
313 |
/** Inequality operator (compares with a standard event)
|
williamr@2
|
314 |
@param The standard event object to compare.
|
williamr@2
|
315 |
@return ETrue if the standard event objects are not equal.
|
williamr@2
|
316 |
*/
|
williamr@2
|
317 |
//##ModelId=3C4C187402C7
|
williamr@2
|
318 |
inline TBool operator!=(TStandardEvent aStatus) const;
|
williamr@2
|
319 |
|
williamr@2
|
320 |
/** Equality operator (compares with a transaction event)
|
williamr@2
|
321 |
@param The transaction event object to compare.
|
williamr@2
|
322 |
@return ETrue if the transaction event objects are equal.
|
williamr@2
|
323 |
*/
|
williamr@2
|
324 |
//##ModelId=3C4C187402E4
|
williamr@2
|
325 |
inline TBool operator==(TTransactionEvent aStatus) const;
|
williamr@2
|
326 |
|
williamr@2
|
327 |
/** Inequality operator (compares with a transaction event)
|
williamr@2
|
328 |
@param The transaction event object to compare.
|
williamr@2
|
329 |
@return ETrue if the transaction event objects are not equal.
|
williamr@2
|
330 |
*/
|
williamr@2
|
331 |
//##ModelId=3C4C187402D0
|
williamr@2
|
332 |
inline TBool operator!=(TTransactionEvent aStatus) const;
|
williamr@2
|
333 |
|
williamr@2
|
334 |
/** @return ETrue if the event is a session event
|
williamr@2
|
335 |
*/
|
williamr@2
|
336 |
//##ModelId=3C4C187402BC
|
williamr@2
|
337 |
inline TBool IsSessionEvent() const;
|
williamr@2
|
338 |
|
williamr@2
|
339 |
public: // Attributes
|
williamr@2
|
340 |
|
williamr@2
|
341 |
/** The status value.
|
williamr@2
|
342 |
*/
|
williamr@2
|
343 |
//##ModelId=3C4C187402B4
|
williamr@2
|
344 |
TInt iStatus;
|
williamr@2
|
345 |
|
williamr@2
|
346 |
/** The UID.
|
williamr@2
|
347 |
*/
|
williamr@2
|
348 |
//##ModelId=3C4C187402AA
|
williamr@2
|
349 |
TUint iUID;
|
williamr@2
|
350 |
|
williamr@2
|
351 |
protected: // Attributes
|
williamr@2
|
352 |
/** Flag to indicate whether the event is a session event
|
williamr@2
|
353 |
*/
|
williamr@2
|
354 |
TBool iIsSessionEventFlag;
|
williamr@2
|
355 |
|
williamr@2
|
356 |
};
|
williamr@2
|
357 |
|
williamr@2
|
358 |
|
williamr@2
|
359 |
class THTTPSessionEvent : public THTTPEvent
|
williamr@2
|
360 |
/**
|
williamr@2
|
361 |
A HTTP session status message. Status messages consist of a UID and a
|
williamr@2
|
362 |
status code within that UID. Extension dlls that needs to create
|
williamr@2
|
363 |
new status messages should use their own UID and create status codes
|
williamr@2
|
364 |
within that UID.
|
williamr@2
|
365 |
@publishedAll
|
williamr@2
|
366 |
@released
|
williamr@2
|
367 |
*/
|
williamr@2
|
368 |
{
|
williamr@2
|
369 |
public: // Enumerations
|
williamr@2
|
370 |
/** The TSessionEvents type defines the evenst that correspond to the
|
williamr@2
|
371 |
of a session entity. Outgoing events originate from the client or from
|
williamr@2
|
372 |
filters. Incoming events originate from the protocol handler or from
|
williamr@2
|
373 |
filters, and clients should handle these.
|
williamr@2
|
374 |
*/
|
williamr@2
|
375 |
enum TSessionEvent
|
williamr@2
|
376 |
{
|
williamr@2
|
377 |
/** A session connection should be initiated. An outgoing event.
|
williamr@2
|
378 |
*/
|
williamr@2
|
379 |
EConnect = KSessionEventBaseStatus,
|
williamr@2
|
380 |
/** The session should be disconnected. An outgoing event.
|
williamr@2
|
381 |
*/
|
williamr@2
|
382 |
EDisconnect = KSessionEventBaseStatus + 1,
|
williamr@2
|
383 |
/** The session has been successfully connected. None of the client
|
williamr@2
|
384 |
requested capabilities were denied or reduced by the proxy. An
|
williamr@2
|
385 |
incoming event.
|
williamr@2
|
386 |
*/
|
williamr@2
|
387 |
EConnectedOK = KSessionEventBaseStatus + 2,
|
williamr@2
|
388 |
/** The session has been connected, but with one or more of the client
|
williamr@2
|
389 |
requested capabilities denied or reduced by the proxy. An incoming
|
williamr@2
|
390 |
event.
|
williamr@2
|
391 |
*/
|
williamr@2
|
392 |
EConnectedWithReducedCapabilities = KSessionEventBaseStatus + 3,
|
williamr@2
|
393 |
/** The session has been disconnected. This either confirms an earlier
|
williamr@2
|
394 |
EDisconnect event or indicates a forced disconnection by the proxy.
|
williamr@2
|
395 |
An incoming event.
|
williamr@2
|
396 |
*/
|
williamr@2
|
397 |
EDisconnected = KSessionEventBaseStatus + 4,
|
williamr@2
|
398 |
/** The authentication handshake succeeded with the automatic validation
|
williamr@2
|
399 |
of the (proxy) server certificate.
|
williamr@2
|
400 |
*/
|
williamr@2
|
401 |
EAuthenticatedOK = KSessionEventBaseStatus + 5,
|
williamr@2
|
402 |
/** The authentication handshake failed.
|
williamr@2
|
403 |
*/
|
williamr@2
|
404 |
EAuthenticationFailure = KSessionEventBaseStatus + 6,
|
williamr@2
|
405 |
/** The connection attempt to the proxy timed out.
|
williamr@2
|
406 |
*/
|
williamr@2
|
407 |
EConnectionTimedOut = KSessionEventBaseStatus + 7
|
williamr@2
|
408 |
};
|
williamr@2
|
409 |
|
williamr@2
|
410 |
/**
|
williamr@2
|
411 |
HTTP session warning events.
|
williamr@2
|
412 |
*/
|
williamr@2
|
413 |
enum TSessionWarning
|
williamr@2
|
414 |
{
|
williamr@2
|
415 |
/** The client has requested a transaction event that requires a session
|
williamr@2
|
416 |
to be connected or the connection to be initiated, but neither is
|
williamr@2
|
417 |
currently true. The transaction event will be left pending until the
|
williamr@2
|
418 |
session is connected. An incoming event.
|
williamr@2
|
419 |
*/
|
williamr@2
|
420 |
ENotConnected = KSessionWarningBaseStatus,
|
williamr@2
|
421 |
/** The proxy has sent some information that is not related to a
|
williamr@2
|
422 |
transaction and has no effect on the state of the session. The
|
williamr@2
|
423 |
information from the proxy is in the EProxyExceptionInfo property.
|
williamr@2
|
424 |
*/
|
williamr@2
|
425 |
EExceptionInfo = KSessionWarningBaseStatus + 1,
|
williamr@2
|
426 |
/** The client connection request was (permanently) redirected to a new
|
williamr@2
|
427 |
WAP proxy address. The client should check the EWspProxyAddress
|
williamr@2
|
428 |
property for the new address. The client's access-point database can
|
williamr@2
|
429 |
then be updated with this address. No notification is given of a
|
williamr@2
|
430 |
temporary redirection.
|
williamr@2
|
431 |
*/
|
williamr@2
|
432 |
ERedirected = KSessionWarningBaseStatus + 2,
|
williamr@2
|
433 |
/** The client has requested a session event that is not valid whilst
|
williamr@2
|
434 |
the WSP session is trying to establish a connection.
|
williamr@2
|
435 |
*/
|
williamr@2
|
436 |
EAlreadyConnecting = KSessionWarningBaseStatus + 3,
|
williamr@2
|
437 |
/** The client has requested a session event that is not valid whilst
|
williamr@2
|
438 |
the WSP session is in the Connected state.
|
williamr@2
|
439 |
*/
|
williamr@2
|
440 |
EAlreadyConnected = KSessionWarningBaseStatus + 4,
|
williamr@2
|
441 |
/** The client has requested a session event that is not valid whilst
|
williamr@2
|
442 |
the WSP session is trying to close the connection.
|
williamr@2
|
443 |
*/
|
williamr@2
|
444 |
EAlreadyDisconnecting = KSessionWarningBaseStatus + 5,
|
williamr@2
|
445 |
/** The client has requested a session event that is not valid whilst
|
williamr@2
|
446 |
the WSP session is in the Null (or disconnected) state.
|
williamr@2
|
447 |
*/
|
williamr@2
|
448 |
EAlreadyDisconnected = KSessionWarningBaseStatus + 6
|
williamr@2
|
449 |
};
|
williamr@2
|
450 |
|
williamr@2
|
451 |
public:
|
williamr@2
|
452 |
/** Constructor
|
williamr@2
|
453 |
@param aStatus The status value.
|
williamr@2
|
454 |
@param aUID The UID.
|
williamr@2
|
455 |
*/
|
williamr@2
|
456 |
inline THTTPSessionEvent(TInt aStatus, TUint aUID = KHTTPUid);
|
williamr@2
|
457 |
|
williamr@2
|
458 |
/** Constructor (using a standard event and the HTTP UID)
|
williamr@2
|
459 |
@param aStatus The standard event to use.
|
williamr@2
|
460 |
*/
|
williamr@2
|
461 |
inline THTTPSessionEvent(TStandardEvent aStatus = EAnySessionEvent);
|
williamr@2
|
462 |
|
williamr@2
|
463 |
/** Constructor (using a session event and the HTTP UID)
|
williamr@2
|
464 |
@param aStatus The session event to use.
|
williamr@2
|
465 |
*/
|
williamr@2
|
466 |
inline THTTPSessionEvent(TSessionEvent aStatus);
|
williamr@2
|
467 |
|
williamr@2
|
468 |
/** Assigns a session event code to an event object
|
williamr@2
|
469 |
@param aStatus The session event.
|
williamr@2
|
470 |
*/
|
williamr@2
|
471 |
//##ModelId=3C4C187402F9
|
williamr@2
|
472 |
inline THTTPSessionEvent& operator=(TSessionEvent aStatus);
|
williamr@2
|
473 |
|
williamr@2
|
474 |
/// Equality operator (compares with a session event)
|
williamr@2
|
475 |
//##ModelId=3C4C187402E6
|
williamr@2
|
476 |
inline TBool operator==(TSessionEvent aStatus) const;
|
williamr@2
|
477 |
|
williamr@2
|
478 |
/// Inequality operator (compares with a session event)
|
williamr@2
|
479 |
//##ModelId=3C4C187402D2
|
williamr@2
|
480 |
inline TBool operator!=(TSessionEvent aStatus) const;
|
williamr@2
|
481 |
};
|
williamr@2
|
482 |
|
williamr@2
|
483 |
#include <http/thttpevent.inl>
|
williamr@2
|
484 |
|
williamr@2
|
485 |
#endif // __THTTPEVENT_H__
|