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