epoc32/include/mw/http/thttpevent.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:27:01 +0100
branchSymbian2
changeset 3 e1b950c65cb4
parent 2 epoc32/include/http/thttpevent.h@2fe1408b6811
child 4 837f303aceeb
permissions -rw-r--r--
Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
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__